本文描述了我的个人思考. 分三个部分.
最近 linux 的视频会议上, 提到了关于老一代程序员担心自己老了之后, 项目可能缺少维护的情况. 我认真思考了一下, 认为开源项目, 重在维护.
首先假定开源项目的一个目标是让更多的人更有效的使用. 并通过更多的使用反哺开源项目的发展.所以我们以几个维度评判开源项目的相对价值.
注意的是 三者并不都是独立的, 而是相互作用的.
我认为是维护大致有以下原因.
综上, 虽然我论述有重复的地方, 但是维护, 无疑是一个开源项目的命脉.
但是如何维护开源项目, 却是作者非常头疼的问题.
以最近的 redis 作者宣布退役 redis 维护为例.
我认为, 如果针对该维护行为, 有一个组织承担, 是更好的选择. 在开源界中, 我们通常称为社区 Community.
那么接下来, 讨论社区问题. 社区期望拥有什么功能
已经论述了关于维护的必要性, 但是维护描述的并不充分. 哪一些算维护, 哪一些属于开源社区的职能范围, 我的建议是, 先假设一部分, 进行讨论来推导.
我首先想到的是文档, 由于当我熟悉开源项目时, 我首要的行为是查看其官方文档. 故我第一个提出
下面我们思考开源组织在这上面的职能.
我认为, 文档包含使用说明和源码逻辑两个部分. 使用说明用于普及应用, 旨在降低使用门槛, 源码逻辑说明和设计用于降低贡献门槛(另一个, 架构设计如果有文档和图来表示, 也是学习的一部分)
开源组织的职能大致如下
如果一个开源组织希望维护文档, 我认为首要目的是降低阅读和使用门槛, 即能提供最简便的体验和使用途径. 即最重要的是使用文档. 业界可能通常以 Doc 命名.
关于使用门槛的论述: 如果使用门槛高, 那么用户基量必定减少, 而作为开源项目, 实际上设立门槛并不是一项非常有利的行为. 我们知道以公司类比, 公司招聘通常有各种门槛设立, 但是这种门槛也有概率过滤掉其迫切需要的人. 开源项目与公司不同的是, 他无迫切需要盈利, 计划盈亏的必要. 用户基量是其最优的催化剂.
故, 开发文档的简洁性最为必要, 开源组织应寻找最简化体验和方便的文档指导. 同时, 针对不同的环境, 不同的机器, 开源组织可以考虑添加不同的文档.
第二是设计文档, 如果之前说的是使用者的基量, 那么设计文档主要影响的是贡献者的基量. (贡献者通常是使用者转化来的)
如果一个开源组织希望维护设计文档, 那么需要的不止是试用然后记录操作用作操作文档的能力, 还有相应的开发能力. 设计文档不止是当前的设计, 架构当然蕴含着未来的改变, 设计文档可以是社区关于该开源项目未来价值的期望. 故我认为, 设计文档维护者, 应该是项目的核心贡献者.他们可能来自于社区, 共同商讨着项目的进一步开发与完善.
设计文档应当属于目标明确的文档, 目标明确应为明确某一项设计解决什么问题, 如此设计文档将通过问题分类将项目拆分成很多小的部分. 而这些小的部分, 正降低了开源项目的贡献门槛.
(例子, 如 各大项目的 design 目标.)
开源社区实际上也有维护代码的能力, 我按照当前开发者分为几个阶段.
之后我认为, 继续讨论的应在于, 如何能使开源爱好者更轻松的进入该架构中, 并最轻松的做出他想, 并能做出的贡献