一、开源的历史
提到开源,还有一个词叫自由软件,也就是 Free Software,Free ≠ 免费,更多强调的是自由。下图几个著名的操作系统 Linux、BSD 都是自由软件,自由软件保证大家学习、使用、修改、分发软件的自由。
2000 年左右,出现了各种各样的基金会,例如 Open Source、Mozilla、Apache 等,大家都在推广开源,也就是我们现在说的 Open Source。
近十年来,以 GitHub 为代表,Social Coding 慢慢发展起来,越来越多人通过相互协作的方式进行开源软件的开发。
二、开源共同体
01 开源的本质是开放、协作
开放:降低信息获取成本 协作:跨越各种界限进行协作
02 参与开源项目是最好的实践场所
开源共同体(社区)是什么?
“A community usually refers to a group of people who interact and share certain things (Open Source Project) as a group.” 社区通常指一群人互相交互和共享某些内容(开源项目)。
开源共同体的特点:
- 共同的兴趣、爱好
- 需要有一定的场所进行交流(Internet)
- 大家扮演不同的角色:用户、开发者、布道师
开源共同体的价值:
- 客户以及用户支持
- 商业宣传拓展,帮助客户成功
- 支持与教育 产品,技术支持
- 商业能力拓展
三、开源软件开发
01 上手开源项目的步骤
- 体验快速指南,具体了解该开源项目做了哪些事情
- 尝试自己编译源代码、部署运行,试图解决问题
- 在 IDE 中部署调试,了解其运作模式
- 结合官方文档熟悉项目架构
- 总结使用场景,学习笔记,发点文章
- 结合业务,参与社区交流
由于大家的目标是一致的,所以很多事情能够自然而然地发生。学会使用文档,通过文档交互、邮件列表等方式进行交流,传递项目相关知识,一步步互相了解,一步步往前走。
02 如何快速融入开源共同体
- 培养自己的好奇心,有足够的好奇心探究其工作原理(从一个好问题开始)
- 使用好搜索引擎,快速获取信息,了解其运行原理、架构等,并参与互动
- 围观开源开发记录,看看问题是如何解决的
- 在网上多混圈子,通过问问题或做贡献展示自我,结识更多的同道中人
- 找个项目做贡献成为 Committer
姜宁老师表示,前 Apache 软件基金会主席 Craig Russell 有一句话,翻译成中文是:“你待人如人之待你、谦虚有礼、达成申信、虚怀若谷、敢于担当、求同存异、同心协力、共创未来”。这是想参与并融入到开源共同体里的人需要注意的,可以此精神为指引。