
旅途提示:“人们在热闹的集市上购物,背景中耸立着大教堂”
我在 GitHub README 上发现了一篇非常有趣的文章,讲述了开源项目的真实情况。
如果有人跟你提起“开源项目”,你可能会想到开发者在GitHub上协作。一群人领导着项目,提交的拉取请求会被合并,项目受益于这种“众人拾柴火焰高”的开发模式。
事实证明,许多开源项目更倾向于另一种方案——大教堂。
大教堂?集市?这些术语出自埃里克·S·雷蒙德1997年出版的软件开发著作。他对比了两种模型:
- Cathedral 的源代码会随每个版本一起发布,但在版本发布间隙,它会由一个小型专属团队进行维护。
- 集市,始终提供最新的源代码
这两种模式都属于真正的开源开发。关键在于有多少人参与其中。虽然 Bazaar 模式取得了巨大的成功——例如 Linux 内核、BSD 项目等等——但规模较小的项目有时会因此受到影响。
为什么?因为开销太大。以下是BoltDB作者Ben Johnson的一段话:
“……我发现接受和维护第三方补丁导致我精疲力竭,最终不得不关闭这个项目,”他写道。“即使是很小的贡献,通常也需要我花费数小时进行充分的测试和验证。我感谢社区的参与,感谢大家报告错误或提出功能建议。我并非有意冷漠,但为了我自身的心理健康和项目的长远发展,我决定关闭这个项目,不再接受新的贡献。”
参与的人越多,做任何事情就越耗时:
- 补丁或功能验证
- 补丁的测试用例
- 与人交谈
- 与人争论
- 解释为什么特征 X 被特征 Y 拒绝被接受
- 更新文档
- 更新教程
等等。文章里还有很多其他好内容,所以如果你对软件开发或开源项目感兴趣,值得一读。