LiteFlow开源一年多的总结
开端
以前提到我的开源项目,要么是发版注记,要么是框架介绍。
差不多持续进行开源迭代也有1年多的时间了,又到年末了。这次抛开技术本身,想聊聊关于LiteFlow框架的一些事情以及我在这一年多时间里开发迭代开源项目的一些过程和经验。
熟悉我的技术界的朋友应该知道,我主要的开源作品有2个。其中一个为GVP项目,但LiteFlow并不是那个GVP项目,但是我花在LiteFlow上的时间精力要多很多。没什么特别的原因,也不是因为我要去获得一些荣誉,只是纯粹的觉得这个项目更加好玩。涉及到的技术点也更加多而已。
LiteFlow其实从2017年就开发出第一版了,当时花了一个礼拜写出了1.0.0版本,功能相当简单,只是为了满足公司某个业务的单一编排场景,从写下第一行代码开始,我就决定这个项目未来的方向是要开源。所以从一开始它就没有历史包袱问题。
所幸,我也没辜负当初的决定。
起航
在2020年初的时候,LiteFlow进行了一次底层的重构。配置不太兼容以前了,索性把版本号直接更新到了2.0.0。
同时为了方便社区的小伙伴使用,当时花了1整天的时间研究了如何发布中央仓库,申请了yomahub.com域名。
至此,LiteFlow终于可以在中央仓库依赖到。
然后就是文档的完善,当时用了docsify来做主页,一开始的主页长这样
LOGO是网上找的。
所以我个人认为LiteFlow正式踏上开源之路时间在2020年初。
在完善好文档之后,LiteFlow随即又停滞了半年,在这半年里,我跑去做了另外一个开源项目。
LOGO
直到在2021月3月份的时候,决定重启这个项目的迭代。
第一件事就是改头换面,正式做一个官网。
花了700元请别人设计了LiteFlow的LOGO,用docusaurus搭了官网,仔细完善了文档。主页也就是你们现在看到的样子:
有人觉得暗黑系看着不习惯,没办法,我个人喜欢暗黑系。下一次改版的话,我肯定开放白天模式。
一直以来没聊过这个LOGO,这个LOGO叫一个朋友改了好几稿,改到后面都向我诉苦头发都要掉光了。。
曾经的提议的设计稿放出来给大家看看
可惜这些都被我否决了,总觉得太普通。
最后定稿成现在的样子。
LOGO就一个大风车形状,象征着流动,同时拼接的图形也象征着解耦。
迭代
从2021年3月开始,LiteFlow开始进入了迭代的频繁期。从2.3.0版本到目前的2.6.4之中,一共迭代了23个版本。包括3个大的里程碑版本。
在这23个版本中,LiteFlow逐渐支持了多个主要的特性:
支持多种配置语言,xml/json/yml
异步线程池的支持
兼容了全系springboot版本
动态平滑刷新机制
2种脚本语言的支持
SLOT分配机制的重写
异步线程模型的重写
扩展了表达式的丰富性,支持多种配置细节
重试特性的支持
私有传递特性
配置parser的重写
说下我每次迭代发版的过程:
我每个版本本除了开发完成外,还要对每一个功能点撰写测试用例,还要进行全量测试用例的验证。目前为止,LiteFlow拥有112个测试用例。
虽然还不是很多,有些好的项目动辄几百上千的测试用例。但是在之后,我会陆续补上更多的用例,来保证整个项目的质量。
所有的测试用例全部通过之后,我会撰写文档和更新日志,更新官网。这一过程少则10分钟,多则大半天,视更新特性而定。
然后就是进入到发版流程,发到中央仓库这一过程大约需要15分钟左右。
接下来就是推送代码到GIT托管仓库,然后打TAG,根据TAG打出Release版本,贴上更新日志。关闭正在进行中的issue。这个过程大概10分钟。
最后就是社区发通告,写发版注记。大版本的话,会同时更新到公众号里。水一篇注记还是花不了多少时间的。
是的,开源框架不是写好代码就完事的。还有很多琐碎的事情要做。我以后也会格外控制每次发版的质量,因为一旦一个Release版本出去之后,使用下来有大的没覆盖到的Bug问题就大了。得打小版本重新发,整个这过程又得重新来一遍。
社区
随着LiteFlow的功能的完善。关注的人越来越多。截止到目前,社区群已经有400多人了。Star数在前几天也突破了1k大关,目前为1.1K。
我知道这个社区的规模这个Star数还很少,还比不上很多优秀的项目,但是一路走过来,我都在用心维护着这个社区。我也明白一个良好的社区对于开源项目是有多么重要。
LiteFlow绝大多数的issue都是来自于社区使用者。我本身比较懒,精力又分散。社区使用者的问题,在我精力允许范围内,基本上每一个人每一个问题,我都会认真去无差别对待。基本上后面迭代的版本每一个版本的特性,都是来自于社区小伙伴,他们会给我提意见,会提供思路,会提PR参与进来,甚至于做PPT进行推广。
真的特别感谢你们。
在大家的支持下,LiteFlow虽然还不够好,但是已经在Gitee分类栏目下排第一了。
可能并不是LiteFlow很好,是因为同赛道的开源软件不多的原因。
组织
因为我的另外一个GVP项目的原因,所幸在开源群里认识了shenyu的作者肖宇,决定抱团取暖。LiteFlow于2021年3月份加入Dromara组织,之后这个组织也吸纳了很多优秀的java开源项目。
大家的初衷是一致的,就是推广java开源的生态,让更多人愿意为开源贡献一份力。
得益于组织的力量,LiteFlow获得了更多的人关注。感谢组织!
目前LiteFlow官网每月有6w次PV(点击)。其实这个数据有点不上台面,只是想告诉大家目前的一个情况。
LiteFlow也从组织内其他优秀的开源项目上学习了很多优秀的技术进行改善。
画饼
很遗憾的说一句,承诺于年底完成的UI编排这一目标肯定是完成不了了。
和大家交代一下原因。
并不是因为UI难做,而是因为在我细细考虑之后,发现如果支持bpm协议后,很多底层都需要重做。而且担心一下不能很好的控制住。
所以这个是我明年需要解决的一个大的问题。
虽然有点难且坎坷,但这个事情一定会去做。这个饼是不是能实现,请拭目以待。
最后
扯了那么多,只是想告诉大家这个开源框架在一年多时间内背后的故事和所走过的路。
算是对这一年多时间在LiteFlow这个开源项目上的总结吧。
愿来年我依旧延续年轻时最初的那份执着,一样的热血澎湃,一样的鲜衣怒马。
最后放上LiteFlow的相关链接地址,社区内的小伙伴请持续关注,第一次知道这个开源框架的小伙伴如有兴趣的也可以进社区讨论群。相关进群方式在官网有说明。
群里藏龙卧虎,有多位技术大佬和开源作者,不仅可以答疑解惑一些技术问题,还可以探讨职业和生活,唯一的缺点就是不开车。
官网:https://liteflow.yomahub.com
Gitee:https://gitee.com/dromara/liteFlow
Github:https://github.com/dromara/liteflow