hui-vue 的故事
背景
2022年3月8日15点,hui 的解决缺陷数量到达了 1000 个,这是一个值得纪念的日子;刚好最近 hui 的设计和研发团队可能会有一些变动。所以乘着这个时间我想回忆一下过去的人和事,可能都不在了,但对于我来说和这个 1000 的数字一样意义重大。

由于 hui 是公司的设计规范,而我们通常会把 hui-vue 这个库也叫做 hui,所以本文后面的 hui 都指的是 hui-vue 这个库。
hikly
这个名字应该没什么人知道了,说实话源码我都找不到了,综合安防之前的前身是楼宇,isc前身是8700,ly是楼宇的简称;当时还是用的jquery,backbone,underscore,extjs,等技术,这个是我在公司做的第一个组件库,大概用了也有2年多了吧,仅仅也只是给我们组用。直到有了统一软件架构后,这个库我也不怎么维护了。
vue 与 hui 1.x
统一软件当时最终定下来的是 vue 以及去除 ie8;
但在那时我推荐的是 vue,pbg 推荐的是 react,而海外用的是 angular;pbg主要政府都是ie8,当时 vue 不支持 ie8 了,而海外的话我个人觉得可能受谷歌影响比较重,就用的是angular。为了统一大家只能选一个。
当时我和ebg有个负责人池学舜工,一起有参加管理类的培训吧,学了一种投票的方案吧,具体叫什么我已经忘记了,就选出一些技术关键优缺点,然后进行删选,打分,最后选出最优的方案。最终vue分数最高,所以就选了vue。其实当时的vue优势还是蛮明显的,特别是在文档方面,以及上手难度上。
然后就开始了着手 hui 1.x 的开发(来自与 element-ui 1.4.7 版本),以及重构当时的 8700 平台到海燕(后面改名成isc,综合安防管理平台)。
代码地址
最早 hui 的代码没地方放,一开始是放在 内网链接无法访问,但没有 gitlab 好用,主要还是没有提issues的地方,所有的issues当时我都用wiki管理,地址是:内网链接无法访问;后面迁移到 内网链接无法访问,但不能所有人看到代码,所以最终放到了 内网链接无法访问;而这里非常感谢当时搭建iris的 魏震业 工,没有他的话iris肯定搭不起来。而我们后面也一起为了iris和公司抗争了几年,最后虽然还是被公司给收了,但是iris还是可以用的,也成为了公司认可的内源代码平台。
Dolphin Common 与 Everyone_is_designer 及其他
这个估计也没什么人知道了,也是 hui 1.x 时代的产物了,也可以说是 hui-pro 的前身;Dolphin Common 主要是和布局相关,Everyone_is_designer 简称 eid 主要放着一些组件库。8700 之后产品一开始叫海燕,后面改名叫海豚,最后才是叫isc的。所以 dolphin-common 的名字是由海豚而来,但我后面取名也都和产品名称解耦了,因为产品名字并不由我来决定,可能以后isc也不会叫isc。eid 的话原本还是说想做一些由创意的idea,让前端更接近设计测。但实际里面一些控件,在业务中也没法有效的实施。
还有一些有趣的项目:
- lego 的前身,common-preview
- json页面渲染器:Tangram
有些已经打不开了,我就不放上来了,当时这台服务器承载的东西太多,包括hui的网站,以及我们组一些同事的博客都在这上面;后面的事情大家应该也知道了,为了解耦这些服务我们有了 easy-serverless ,我也想它成为海康前端基建的底座;而 内网链接无法访问 所在的这台服务器存着我的一些回忆吧,当然还有2个可能有人在用的服务 easy-proxy 在线版本 和 easy-tool 所以一直没关,但估计也快了。
hui 2.x 与 hui-pro
hui 1.x 其实做了一年以后,我们当时海燕还是海豚的产品初步成型,后面有更多的部门和我们的产品会一起组装,那ui规范的话需要整个公司来统一。所以hui的规范重新调整,而我们也把 hui 从1.x升级到2.x。当时和我们一起做的比较多的是ebg,之前好像叫bbg。我也把 hui 调整到了2.x,把 dolphin-common 和 eid 整合成了 hui-pro,创建了 lego 以及 vessel。正式的做了一些共建。有了 ebg 的产品加持,其实那时候的 hui 才正式被整个公司所接纳。也是非常感谢 ebg 的同事们。
大概在 19 年 3 月的时候,迫于压力发布了 2.0.0(当时同时也发布了 isc 1.0 版本) ,但其实后续还有一些破坏性改动,所以我一直升级的是 2.0.x 版本,直到加入了测试用例,我才开始正式开始更新 2.x 版本。
技术栈的话,我当时开始接纳 vue-cli 以及 vuepress,特别是 vuepress 成为了 hui 的文档,并陆续被大家接纳。中间我们做了很多挣扎,特别是扒开 element-ui 的一些技术债,花了很长时间。这里我特别感谢我的前同事 朱献康,没有他的帮忙,hui 才能这么快的发布。
再后面的故事就是 2.x 的不断迭代了,直到我 close 了第 1000 个 issues。
hui 的彩蛋
这部分算番外篇了,在 hui 2.0 的时候,我就在官网引入彩蛋,我记得第一个彩蛋是愚人节做的。因为我们是3月发布,所以4月特地做了个彩蛋,还出了一些bug。
但愚人不算是一件体面的事情,所以到现在每年的儿童节和圣诞节,我都会在 hui 官网放一些彩蛋,很可惜,由于我个人比较懒,没有把以前的彩蛋给记录下来,但大家可以看我的 commit;有些彩蛋我解耦出插件了,比如这个:https://github.com/xxholly32/vuepress-plugin-christmas;而彩蛋每年是在儿童节和圣诞节前,一般是由我和当时的实习生或者应届生共同完成的,不过今年可能没有名额了,所以大家有兴趣参与的也可以在节日前夕提前提 issues 给我
当然彩蛋肯定是不会影响正式库的功能
致谢与展望
特别鸣谢一些给 hui 贡献过的人,无论是在职还是离职的:内网链接无法访问;以及 element-ui 团队,还有那些给 hui 提过 issues 的人,以及 hui 的用户。
还得感谢下 hui 这个项目,在其中我学到了很多工程化和前端的知识,没有这个项目我的技术可能还停留在只能写页面的层面。
1000 斩我觉得还是开始,未来路还有很远。仅以此文纪念下,也希望海康的基建能够越来越好。
最后的最后,hui 的发音是 /eɪtʃˈjuː ˈaɪ/,不要念成
灰