一、开源的历史

提到开源,还有一个词叫自由软件,也就是 Free Software,Free ≠ 免费,更多强调的是自由。下图几个著名的操作系统 Linux、BSD 都是自由软件,自由软件保证大家学习、使用、修改、分发软件的自由。

1667958039454.jpg

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.” 社区通常指一群人互相交互和共享某些内容(开源项目)。

开源共同体的特点:

  1. 共同的兴趣、爱好
  2. 需要有一定的场所进行交流(Internet)
  3. 大家扮演不同的角色:用户、开发者、布道师

开源共同体的价值:

  1. 客户以及用户支持
  2. 商业宣传拓展,帮助客户成功
  3. 支持与教育 产品,技术支持
  4. 商业能力拓展

三、开源软件开发

01 上手开源项目的步骤

  1. 体验快速指南,具体了解该开源项目做了哪些事情
  2. 尝试自己编译源代码、部署运行,试图解决问题
  3. 在 IDE 中部署调试,了解其运作模式
  4. 结合官方文档熟悉项目架构
  5. 总结使用场景,学习笔记,发点文章
  6. 结合业务,参与社区交流

由于大家的目标是一致的,所以很多事情能够自然而然地发生。学会使用文档,通过文档交互、邮件列表等方式进行交流,传递项目相关知识,一步步互相了解,一步步往前走。

02 如何快速融入开源共同体

  1. 培养自己的好奇心,有足够的好奇心探究其工作原理(从一个好问题开始)
  2. 使用好搜索引擎,快速获取信息,了解其运行原理、架构等,并参与互动
  3. 围观开源开发记录,看看问题是如何解决的
  4. 在网上多混圈子,通过问问题或做贡献展示自我,结识更多的同道中人
  5. 找个项目做贡献成为 Committer

1667957476746.jpg

‍姜宁老师表示,前 Apache 软件基金会主席 Craig Russell 有一句话,翻译成中文是:“你待人如人之待你、谦虚有礼、达成申信、虚怀若谷、敢于担当、求同存异、同心协力、共创未来”。这是想参与并融入到开源共同体里的人需要注意的,可以此精神为指引。

image.png