揭秘,unibest诞生过程;浅谈,开源真不容易
揭秘,unibest诞生过程;浅谈,开源真不容易
大家好,我是 unibest
作者菲鸽,今天带给大家一篇新文章《揭秘,unibest诞生过程;浅谈,开源真不容易》。
unibest 背景
去年开始我接手了公司的一个 uni-app
项目,框架比较老旧,有 5
个痛点:
-
- 项目技术栈使用的是
vue2
+uView1.x
,没能使用用vue3
,这是一个小小的痛点。
- 项目技术栈使用的是
-
- 项目打包依赖
HBuilderX
,无法自动化CICD,也是一个痛点。
- 项目打包依赖
-
- 项目里面一堆魔法数字和字符串,并且没有任何注释和说明,巨大的痛点。
-
- 项目里面业务逻辑从来不写注释,根本不知道为啥要这样写,全靠猜,超级无敌大痛点。
-
- 项目我司找外包写的一个项目,中标团队是京东,京东又
包中包
找了另外一个外包公司,这个外包公司的程序员能力太差,架构水平低些,技术栈老旧;写出来的代码一坨屎,期间还换了几波人,最终成为屎山代码。
- 项目我司找外包写的一个项目,中标团队是京东,京东又
PS: 第5点,前端还好,还能玩得转。后端代码更加屎山,听后端说根本改不动,一个逻辑七弯八绕的,链路贼长;100多个微服务,只有30多个用得上,又不敢随意去掉;没有统一的网关服务;前后端通过 cookie 认证;等等...
听说是这个外包公司用这个架构接过项目,然后拿过来套用,结果业务需求千差万别,根本不适用。
不说了,扯远了。
回到 uni-app
这个项目,既然这么多痛点,我能做点啥呢?于是萌生了使用 vue3 + ts + 无需HBX
的项目框架,于是就着手写这个项目,后来加了不少功能,觉得是最好用的项目模板,于是就叫 unibest
了。
unibest 进程
前期
去年年底,任务稍微松一些,我有空腾出手来开始写这个项目,如下图项目初始化是在 2023-12-21<周四>
。那个时候很着迷,周末2天
也在公司搞,周末的 commit
更多,因为没有别的任务打扰。
那个时候一边写项目,一边趁热打铁输出文章,22号
和 23号
分别输出了2篇文章。
过了2周,期间我不断完善项目,增加新特性,增加新的demo,努力打造最好用的uniapp项目模板。在 01月09号
又输出了一篇 终
来整体介绍项目。
又过了10天,期间解决了不少BUG,另外还在不断完善项目,增加新特性,增加新的demo,在 01月18号
又输出了一篇 番外篇
,介绍项目之外,输出我对该项目的一些思考。
中期
经过上面4篇文章,项目写得差不多了,开始认真写项目的介绍,就是 README.md
文件,于是在5天后的 01月23号
输出了新的一篇文章。
因为要推送到 github
和 gitee
,以前都是设置 2个remote
,分别推送的,但我的梯子不行,经常推不上 github
,要重推好多次才行,有的时候还要等第二天再试,很浪费我的时间。于是想借助 gitee 同步代码的方式同步到 github,结果成功了,并且很容易,想着这个其他人也可能遇到,还是写出来吧,于是又输出了新的一篇文章。
年底任务不多,接着优化项目,5天后的 01月29号
推出了最重磅的一篇文章 🔥2024年最好用的 uniapp 开发模板,近一个月 star 数飙升!🔥
,收藏数 937
,成为前端收藏榜的第七位。
另外,当天是项目初始化后的 第40天
,才过这么点时间,github star
数就远超其他同类型的模板,可谓 后生可谓
。另外提一嘴,本项目之前一直叫 vue3 + ts + uniapp 开发模板
,是今天开始才取名为 unibest
的。
这里贴一张最新的 star history
对比图: 传送门
后面就过年了,那个时候也创建了第一个微信交流群,我还记得我在老家打扫卫生与群友聊天的一幕幕,老家后面就是一片竹林,门前是小片田野,远处是一条河,河对面是一座座山,风景不错,哈哈。群友的人数我看着涨的,那段时候每天都进来几个,不知不觉就满200人了,后面进来的人只能通过加好友邀请进群。
过年回来,有空我就在弄我的项目,那段时间为了处理部署项目问题,借用 github actions
完成 CICD
, 部署我的 unibest
项目,于是又写了一篇文章。
那个时候内置的 UI库
是 uni-ui
,毕竟是官方的,但是样式比较丑,且组件不多,于是跟群友讨论,群友介绍了一些 UI库
,我们在这些 UI库
里面筛选,那个时候选好了 uv-ui
,于是又输出了一篇文章。
多说一嘴,后来发现没有 ts 加持的 uv-ui 还是不太好编写代码,于是后来又改为了 wot-ui
。
项目持续火热,有好几个群友加进来成为开发者,还有一些不是开发者的需要PR,但是他们不懂,于是又诞生了PR篇。
那个时候群友有好几个需要 多语言
的,于是也为群友开发好了 多语言
接入,并提供了最佳实践,顺便还输出了未来对多语言的规划,文章如下:
顺便说下,我为此还设计了一个调查问卷,发到多个群里面看看到底有多少需要。调查出来的结果有点吓人,60
多个问答中有 1/3
的有 多语言
需要,一看就知道数据不准,估计是有 多语言
需要的人点进去填写问卷了,没有这个需要的懒得去点。但是也让我知道了,这 20
个人是有 多语言
需要的。
后期
接下来公司任务比较繁忙,每天都加班到8点半以后,基本没啥时间处理 unibest
,还有不少任务和想法没有完成。基本周末别人玩的时候,才有空写代码,写文章。
那个时候开了3个微信群了,新进来的群友总是会问一些问题,比如 route-block
,为啥有 pages.config.ts
又有 pages.json
,有啥区别,为啥 pages.json
的代码会被覆盖等问题。
群友问我有没有文档,嗯,时候写文档了。于是我又使用 vitePress
搞了个文档出来。
那个时候想通过脚手架生成项目,又在周末 fork
了 unihepler
团队的 create-uni
,快速实现了 create-unibest
,在此感谢 unihepler
团队。
经过几个周末的加班写代码,写文档,终于在周六的9号基本完成,并且在这天写了一篇文档介绍文章:
接下来,公司业务持续很忙,只能利用周末时间,断断续续写了一些 feature,在 3周
后的一个周末,又写了一篇介绍文档新功能的文章。
至此,文章基本写完了,一共输出了 13
篇文章。
文章太长了,剩下部分内容留着下次再写吧,晚安友友们~
最后还是贴几个链接,不然你们想要的都找不到~~
微信交流群 & 微信公众号
①②③群已满,下面是④群
unibest 链接地址
文档地址:codercup.github.io/unibest-doc…
github
地址:github.com/codercup/un…
gitee
地址:gitee.com/codercup/un…