Browsed by
月度归档: 2021年9月

5W1H聊开源之Why——为什么要参与开源?

5W1H聊开源之Why——为什么要参与开源?

閱讀本文約花費: 7 (分鐘)中国开源的发展速度发展加快,个人和组织对于为开源作贡献有着前所未有的激情。据 《2020年IT行业项目管理调查报告》,约四成受访者以自己开发开源项目、为他人提交项目代码、作为成员开发维护项目、捐助开源项目等不同形式参与到开源项目中;在 《2021中国开源发展蓝皮书》中,参与过开源项目的比例为32%,且呈增长趋势,我国开源生态正迅速形成。 创建和维护那些被广泛使用的开源项目每年可能需要耗费数千小时,为什么开发者会愿意花费时间和精力编写这些免费公开的代码?为什么企业会愿意让他们的员工编写代码,开源让其他公司甚至是竞争对手都可以使用?个体参与开源会得到什么? 个人为什么要开源? 1.提升代码质量 参与开源项目是提升个人代码质量的好方法。一方面开源会激发程序员的“耻感”,一旦清楚这些代码是要公开给别人看的,就会自觉将代码写得更加整洁、干净,加更多注释。另一方面,如果项目有一定的影响力,其他关注、参与的程序员也会给予更多建议,这样可以博采众长,无形之中约束自己的代码规范,改进自己的代码质量。开源运动旗手 Eric S. Ray­mond 就曾说过:“只要经过足够多双眼睛的审查,所有的 Bug 都将失去藏身之地。这就是 Linus 定律。” 2.展示个人代码 一个小时的面试可能只能展示面试者掌握的某些底层基础或者前沿知识,但如果有开源项目傍身,…

Read More Read More

5W1H聊开源之Who——谁来参与开源?

5W1H聊开源之Who——谁来参与开源?

閱讀本文約花費: 6 (分鐘)上次Who的主体是谁“发明”了开源,这一次主体转换,来看看开源发明之后,还有哪些人为开源做贡献?作为普通程序员的我们,又能以怎样的形式参与到开源项目中? 很多人都以为参与开源是一件很高门槛的事情,必须要通过代码贡献才算是开源项目的参与者或贡献者,其实这是一个很大的理解误区。一个开源项目其实就是一个社区,在社区里面会包含各种各样的角色,开源项目的角色有Contributor(贡献者)、Committer(提交者)、Maintainer(维护者)、User(用户)。大多数人对参与开源的理解可能局限在狭义的前两者,而对于这个问题第一反应可能也是直接参与到开发中,才是参与了开源项目。 User 但实际上,除了最直接的Contributor和Committer,其他人也可以通过各种各样的方式对项目作出贡献。如禅道项目管理软件的用户们,就是以User的身份参与到了禅道这个开源项目中,对禅道的使用、标记、推荐乃至提交Bug、提供使用反馈,都是一种对开源项目的参与和贡献。 比如在 Linux 内核开发中,到 5.9 版本发展到现在已经有 2.4 万开发者参与其中。没错,他们当时都是这个开源项目的参与者。 Contributor 开源项目的代码、文档和作品都是由项目社区的成员创建、测试、使用、讨论和优化构成。这些过程可划分为各种任务,需要不同技能、不同参与程度及不同技术…

Read More Read More

5W1H聊开源之Who/When/Where——谁在何时何地“发明”了开源?

5W1H聊开源之Who/When/Where——谁在何时何地“发明”了开源?

閱讀本文約花費: 7 (分鐘)美国政治传播学家拉斯韦尔提出了5W传播模式,经过后人的不断运用和发展总结,形成了一套逐渐成熟的“5W1H”体系,即:对选定的项目、工序或操作,都要从原因(何因Why)、对象(何事What)、地点(何地Where)、时间(何时When)、人员(何人Who)、方法(何法How)等六个方面提出问题进行思考。 本系列文章就以5W1H体系来讲一讲开源的那些事。这一次,讲讲开源的Who/When/Where——谁在何时何地“发明”了开源? 微软的一封信 自上世纪第一台计算机问世以来,计算机产业是以硬件为主的商业模式,即硬件销售为主要收入来源,附带的软件并不收费且附有源代码,便于专业人员调试和修改。虽然现在都将软件著作权视为司空见惯,但当时的法律并不能给予这一新生事物充足的保护。后来,随着个人电脑的普及,人们对软件的需求扩大,出现了一批专门开发通用软件的公司,这样的软件公司需要对软件收费来获取利润。但软件收费与提供源代码显然是矛盾的,因为只要仍然提供源代码,就无法阻止用户或者竞争对手复制或改写软件代码。 1976年2月3日, Bill Gates发表了著名的《Open Letter to Hobbyists》(致电脑业余爱好者的一封公开信),在这封公开信中,BillGates明确提出软件应该具有“CopyRight”(版权)。这封公开信奠定了软件产品“CopyRig…

Read More Read More

5W1H聊开源之What——开源协议有哪些?

5W1H聊开源之What——开源协议有哪些?

閱讀本文約花費: 7 (分鐘)开源许可协议是指开源社区为了维护作者和贡献者的合法权利,保证软件不被一些商业机构或个人窃取,影响软件的发展而开发的协议。开源协议规定了用户在使用开源软件时的权利和责任,虽然不一定具备法律效力,但是当涉及软件版权纠纷时,也是非常重要的证据之一。 软件在追求“自由”的同时,不能牺牲程序员的利益,否则将会影响程序员的创造激情,因此世界上现在有 90 多种被开源促进组织(Open Source Initiative)认可的开源许可协议来保证开源工作者的权益(详细列表见: https://opensource.org/licenses/alphabetical)。 对于准备编写一款开源软件的开发人员,也非常建议先了解一下当前最热门的开源许可协议,选择一个合适的开源许可协议来最大限度保护自己的软件权益。 由宽松到严紧排序,常用的开源许可证有: MIT许可证BSD许可证Apache许可证LGPL许可证GPL许可证 MIT、BSD 许可证都源自大学,体现了简单、开放和包容的特点。 MIT、BSD、Apache 三者都支持闭源的后续开发。 GPL、LGPL 传染性开源,编译的代码里用了这里的代码,都必须开源。 具体选择可以参照乌克兰程序员 Paul Bagwell的这张分析图(阮一峰、小鱼周凌宇翻译): MIT协议 MIT 是十分宽松的许可协议,来源于大学,可…

Read More Read More

5W1H聊开源之What——开源是什么?

5W1H聊开源之What——开源是什么?

閱讀本文約花費: 5 (分鐘)美国政治传播学家拉斯韦尔提出了5W传播模式,经过后人的不断运用和发展总结,形成了一套逐渐成熟的“5W1H”体系,即:对选定的项目、工序或操作,都要从原因(何因Why)、对象(何事What)、地点(何地Where)、时间(何时When)、人员(何人Who)、方法(何法How)等六个方面提出问题进行思考。本系列文章就以5W1H体系来讲一讲开源的那些事儿。 What——开源是什么? 开源即开放源代码,Open source code,也称为源代码公开,指的是一种软件发布模式,一种基于去中心化、自组织式的软件开发模式运作的工作方式。这个模式中,软件是开源的最基本含义是:代码是公开的,任何人都可以去查看,修改以及使用。与开源相对的是闭源代码,闭源代码就是普通的商业版权软件,代码是封闭的,只有作者才能看到,出了问题也只有自己能修改。 开源软件就是公开源代码的软件。开源软件在发行的时候会附上软件的源代码,并授权允许用户更改、传播或者二次开发。 澄清关于开源的一些误解: 开源不意味着免费 开源软件和免费软件是两个概念,开源软件开放源代码,允许用户更改、传播、二次开发。免费软件是免费提供给用户使用,但不一定公开源代码,也不允许随意修改、二次发布等。比如我们常用的微信、QQ及大多数软件,我们可尽情使用,但如果自己添加或删除了一些功能、甚至发布在网上供人下载使用以此牟利的话…

Read More Read More

Scroll Up