知识卡片

选开源项目:聚焦是否成熟,三个考察维度

普通读书笔记卡

内容

很多新的开源项目往往会宣称自己比以前的项目更优秀:性能更高、功能更强、引入更多新概念,看起来都很诱人,但实际上都有意无意地隐藏了一个负面问题——更不成熟。不管多厉害的程序员写出来的项目都会有bug,千万不要以为作者厉害就没有bug,Windows、Linux、MySQL的开发者都是顶级开发者,系统照样有很多bug。不成熟的开源项目应用到生产环境风险极大:轻则宕机,重则宕机后重启都恢复不了,更严重的是数据丢失都找不回来。书中再次以TT为例:真实遇到过异常断电后文件被损坏、重启也恢复不了的故障,还好当时每天有做备份,只能用1天前的数据恢复,当天的数据全部丢失,后来花了大量时间人力研究源码、自己写工具才恢复了部分数据——好在这些数据不是金融相关数据,丢失一部分问题不大,否则就是大麻烦。所以选择开源项目时,应尽量选择成熟的开源项目以降低风险,可以从三个方面考察一个开源项目是否成熟:版本号(除非特殊情况,不要选0.X版本的,至少选1.X版本的,版本号越高越好);使用的公司数量(开源项目通常会把采用自己项目的公司列在主页上,公司越大越好、数量越多越好);社区活跃度(看社区是否活跃,发帖数、回复数、问题处理速度等)。

参考来源

- 位置:《从零开始学架构》第48讲《再谈开源项目:如何选择、使用以及二次开发?》"选:如何选择一个开源项目"之"聚焦是否成熟"(源文件:_epub-src/OEBPS/text00003.html) - 结论依据:原文说明"不成熟的开源项目应用到生产环境,风险极大……所以在选择开源项目时,尽量选择成熟的开源项目,降低风险。你可以从这几个方面考察开源项目是否成熟:版本号……使用的公司数量……社区活跃度",并以TT断电文件损坏案例为佐证,直接支撑本卡结论。 - 原始内容:不成熟的开源项目应用到生产环境,风险极大:轻则宕机,重则宕机后重启都恢复不了,更严重的是数据丢失都找不回来……你可以从这几个方面考察开源项目是否成熟:版本号……使用的公司数量……社区活跃度:看看社区是否活跃,发帖数、回复数、问题处理速度等