记录:一个中台小玩意的故事

152 阅读6分钟

image.png

Happyboot是我特别想实现的中台前端框架,当时的目的就是想摆脱每次做项目都要从网上找开源项目的奇怪行为。我认为做项目不应该只是做项目,而是应该不断的积累和提升,这样才能做出心目中的东西。

遥想当年看到一个叫做musik的前端模板的时候,真的被惊艳到了!于是呢,当然赶快把它下载到磁盘里呀!不久后开始踏入社会,开始工作。那时候我还是一个java程序员,还在琢磨springboot和springcloud,以为啃下这2个大头就能一劳永逸了,哈哈(事实证明,发展的路上总是需要放弃一些东西!)。才工作3个月,我就立马转前端了,我要感谢下我的领导,在我试用期的时候没有压榨我!给了我很多时间学习vue前端开发,就这样踉踉跄跄的上手了vue的开发。不久就被安排开发公司里面的第一个数据可视化项目,算是给了领导们一个惊喜吧,效果还可以。这个时候我还在学习,摸出了musik模板,想用vue实现基于这个模板的中台开发框架,我开始造轮子了,哈哈。结果呢?你懂的呀!一堆烂代码,各种组件不知道如何实现。好在我有很大一段时间不需要开发中台项目,一直在和大屏、echart打交道。

做了一段时间后,我意识到一个严重的问题,项目每次都是在从零开始,没有一些好的积累,好的复用。

…………

一段时间过去了,本以为自己会一直从事数据可视化类工作,事实就是我会回归中台项目。 那时候iview和elementui刚出道,他们2个真的是并驾齐驱啊!好家伙!一时间github和gitee上面多了好多的中台框架,令人挑选不过来啊。选了半天,还是那个iview-admin最吸引我,当时觉得element的UI太大了!他的输入框真的好大啊,每次用我都要设置小尺寸,这就令人很烦了。快到碗里来吧iview-admin!好了就这样七改八改用上了这个中台框架。于是我就定制了一个我专用的开发模板。

…………

事实证明没有人能保证一个开源项目能及时更新,因为需要维护成本。 我很明白,不能过渡依赖应用层面的任何框架。特别是前端,他们的依赖库真的更新太快了太快了太快了! 学不动了啊哥!

…………

happyboot的研发想法终于萌生了,这次我放弃了钟爱的iview,因为他好像出了Pro版本,这不意味着收费开始了嘛,好!你收费是不?那劳资不用不就好了。连你的基础版我也不想用了。这时候只能转投element阵营了,还有国外的UI库真的很不适合国内使用啊,我是很喜欢的,但是用户和领导未必能接受,这就很烦!

好了!好了!废话别多了!说干就干!

这次开发中台框架我们一定要把框架核心逻辑抽离到一个文件里,这样不就符合了高内聚的原则了嘛!那具体咋落实呢?想来想去(当时只有vue2),想到了把逻辑和方法都封装在vuex里面,哈哈哈哈哈哈!我不管了,我就这么干了。别不信,等下,我马上上个图!图来了,看下面吧。

0F377CDF-4C7F-45F2-BE74-89923E0CB7F5.png

7A50B49C-BA35-4237-9282-AFBC0E3B51B2.png

图看完了,我们继续。

后来呢,写是写完了,就在一个项目里面试用了一波,总感觉还差点啥。虽然给同事们也培训过。

…………

vue3出来了,woc,又要开始学习了!@diao中diao(我大学同学,也是干前端的哈哈)该学习了啊! 趁此机会,我撸了一遍vue3的内容,当时vue3还有不少问题,我不管,我要用起来,有坑就填坑吧。于是就这样打了鸡血一样开始撸框架。当时封装的思想深入我心啊,我还是要好好封装这个框架。我想了一小段时间,我该咋封装才好,想来想去都不敢动手,妈的!洗澡的时候都被这件事困扰,很烦。

…………

不久后我开始用typescript和vue3开始开发纯粹的js库,这个库很简单就是把菜单、导航按钮、路由注入事情做掉,并且让使用者不再重复去做这些事情,而且使用者想使用什么UI库就用什么,不拘泥于UI库。断断续续写了3天,就这样了,提交到了npm库。那这个库叫happykit。既然叫做框架,那我可得为他立个门面啊,在腾讯云注册了一个happykit.org域名,为啥叫这个名字呢?我就像让使用者快乐点,节约一些重复开发的时间,并且为之而感到快乐。

很是抱歉啊,我的力量还是很微薄,我感染不了世界,那我先自嗨了,哈哈。

有了happykit,那肯定要来实现第一个基于happykit的中台框架,在我的带领下,和同事一起完成了happyboot,这次是基于elementPlus和vue3,还有很繁琐的typescript。甚至我们还为他实现了配套的接口开发框架,大概率是自己用用了,让别人去用,去推广还是很困难的,毕竟我们也不是什么大牛。还是看图有意思,上图:

happyboot-preview-1.png

happyboot-preview-3.png

哦!对了,那一年是牛年,所以我们找了一个像牛一样的图作为logo。我们是按照生肖来命名的,就像苹果会按照地理位置命名,安卓会按照食物命名。

…………

时隔一年

由于我岗位原因,前端开发接触的变少,我深知我还是要放弃一些东西,才能走的更远。

这个时候happykit几乎没改动,他依赖的库很久了,有一天终于下定决心,升级了他的所有依赖库,并且重新跑了一遍单元测试,还好,他没有坏掉,还好好的。我本身对于happykit的功能,并不想做调整,一个中台框架的底层还能玩出什么花来呢?既然再次捡起来,那么我也要把happyboot升级下。这次elementPlus下台了,webpack也要下台了,这次我们命名为happyboot-tiger,是的!你没听错,因为今年是虎年。

我为此列了一个重构计划,不拿出来展示了,感觉会被人笑话。经过一段时间的努力,雏形已经完成。这次我用上了听说很快的vite,用上了最新的vue3.2,用上了navieui,总之都是最新的了。你说我为什么不用element?他让我有点失望,老早就在说的夜间模式,搞了半年还没推出,库版本都不知道升级多少次了!

这次的宗旨就是:轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻轻!

还是看看图片吧,我编不出话来了!有兴趣的旁友,去happykit.org瞧瞧吧。

iShot2022-03-16-19.12.13.png

iShot2022-03-16-19.12.36.png

iShot2022-03-16-19.17.57.png