做系统开发有几年,一直想把自己思考的东西沉淀一下,于是就有了这个系列。
写这篇文章的背景是我在做一个核心是流程引擎项目的业务项目,非互联网,而是传统制造业。
第一篇的主题是开源。
众所周知,如今开源成为了显学,我曾经很追捧开源的项目。在我的印象中,开源就是高质量的代名词,开源就是高大上,现在想来,我可能错了。
开源的项目有不少问题和缺陷。
第一,只把源代码丢上来,仅仅能跑而已。原理阐述和文档缺失很要命。
之前调研限流程序的时候,sentinel就缺乏对原理的阐述,浪费了我很久的时间。
也许很多项目并没有原理上的创新,只不过是产品层面的创新,比如api好用一些,那也是个亮点。
不理解开源项目,直接拿来用是一种常见的行为,但是也有很多隐患。
不读源代码,直接使用会完成技术负债。就类似于今天使用AI IDE编程一样,流行的叫vibe coding。自己不理解代码,直接拿来用的那种。
直接丢代码的开源项目,不说原理,其实挺让人没有什么信心的。
第二,开源的项目往往运营发展的过程中,会有很多无用或者过于复杂的特性,而我们不一定能控制其方向,因此谨慎使用开源项目。
很多开源项目的文档或者设计原理是很隐蔽的,害怕人们学了去,遮遮掩掩的,非常没意思,相比之下,学术期刊上发表的论文就敞亮多了,直接说明最核心的创新点。
很多开源项目确实也没有多少原理上的创新,他们更对的是针对用户的体验和效果,优化细节等等。