关于开源的一些想法
开源的本质
创作者的连接、信息的连接
优势
- 信息公开,方便证明商业上的可行性对于融资有益,孕育各自可能的商业模式
- 开源社区的形成可以帮助开发者协作、学习和分享,社区本身自发形成的各自约束和最佳实践对新人有教学意义
- 广泛参与,对质量提升有较大的价值
- 减少重复造轮子
- 更容易集思广益,引入最佳实践及先进的技术方案
- 用户基数大,可以量变产生质变,激发各种商业上的可能
- 有利于发现安全漏洞
缺点
- 版权之争,拿来主义的危害,第三方厂商不尊重原创和回馈社区
- 多数的项目依然是少数人的游戏,或者单纯的由某些公司主导社区,技术方向带有偏见
- 很容易暴露安全漏洞
开源项目选型的考虑
- 开源协议对于后续的修订及商业化的影响
- 社区活跃度
- 项目热度
- 项目的开发方法论及相关工具的采纳情况
- 是否有商业公司支持或者组织支持
参与开源的几个阶段
- 贡献者,参与项目相关问题的讨论提issue或者discussion,使用项目并反馈问题
- 首个PR,了解项目的提交规范、从good-first-issue中选择、或者从文档拼写错误开始,提交第一个PR
- 提交者,深度参与项目,可以开发特性并承担部分模块的开发工作
- 管理者,把握项目的发展方向和特性开发计划,资深开发者
组织与开源的互动
- 将核心代码开源,甚至直接将开发过程托管在开源平台
- 利用和整合开源项目并将这些能力商业化
- 支持开源社区,组织一些编程比赛或者支持一些开源项目
- 加入开源组织,提供支持
- 从开源社区寻找人才
组织内的开源文化建设
- 鼓励内部员工参与,建立开源社区的组织账号
- 建立公开的技术博客
- 建立不定期的技术分享交流会
- 选取有价值的内部项目进行开源运作
- 关注技术趋势
开源风险
开源是否有国界?
开源安全 OpenSSFR
其他
- 开源项目的开发方法论,包括开发流程、工具、质量保障、路线图和版本计划
参考资料
- 开源 维基百科
- 谷歌开源
- 什么是开源 红帽
- 开源意味着不问责,我们准备好应对比 Log4Shell 更大的安全危机了吗?
- The Open Source Software Security Foudation