每一位程序员,都可以贡献开源吗?

每一位程序员,都可以贡献开源吗?

刘天栋:近期举办的中国开源年会,大会主题叫“开源向善”,开源代表向善的力量。在座很多开发者可能会疑问:开源和向善有什么关系呢家常常说贡献开源成就自身,这是开源社的合作伙伴所共享的理念,因为它能透过贡献帮助到自己,这对所有的程序员来说也是关键。

曾与很多业界朋友,包括企业家和开发者沟通开源本质,有四个点最关键:向善心是核心。

一、开源是开放的,要有开放的心态来做这件事,公开透明是良好协作的基石。

二、是分享,乐于分享也是一切善举的开端,而不是闭门造车。举个例子,最近疫苗的研发中、许多机构加入了全球疫苗分配的组织,大家把好的疫苗第一时间分享到了疫情最严重的国家和地区,这是人类最伟大的情怀,这种精神在开源里面是最重要的。

三、是平等,大家都有平等的追求,这是开源社区健康的基础。

四、是协作,透过开放式的协作能逐步形成凝聚共识,是开源社区繁荣的秘诀。

一个好的开源的人要加入开源的行列里,首先要了解开源基本的四条本质,就是刚刚讲的:开放、分享、平等、协作。像阿帕奇基金会的治理是拥有原则的,他们的原则是阿帕奇之道,一个好的开源社区也要有完善的原则,开源社的原则是共识、共享、平等共治、协作共治。

谭中意:我从更简单的方面介绍一下,平常用的开源软件就是源码开放再加上国际认可的开源的License,这就是开源软件。而开源的本质是:它不是商业模式也不是软件,它就是一个多人协作的模式,只不过多人协作是在源码开放基础之上的。

开源本质就是源码开放基础设施上的多人协作模式,为了让这种协作能够长期健康的进行,产生了各种各样的附加层面。

比如能够让代码协同长期进行下去就会有知识产权的层面,就产生了各种许可证;为了让代码上下游可以工作得更好,就产生了开源社区;如何支持开源社区又产生各种各样基金会,基金会后面有各种各样商业公司支持,所以有各种各样商业模式。

但是这些都是围绕开源所衍生出来的一系列的方面,回到本质上说,它还是比较简单,就是大家坐在一起在开放的源码上一起来写代码。

   

王永和:两位在从文化哲学到代码再到开源软件项目关联的社区、法律等等都展开了精彩的讲述,如果纯粹从英文翻译的角度来看,很多人觉得开放源代码的项目就是开源软件。我早期接触的很多人或公司,他们都会认为开放了源代码本身就是开源软件,其实这样理解还是不够充分。

其实开源不仅仅是代码开源,项目的背后还有社区、委员会、以及相关的法律。我们在使用一款开源软件之前,如果对该项目的整个体系和组成部分能够有更深刻和全面的了解,会避免很多的坑,比如避免不小心踩到法律的陷井或是引起一些纠纷,毕竟这可能会涉及到公司的数字资产,历史上也发生过多次这样的教训。

所以,开发者在使用软件前首先要识别开源软件,那么要基于什么样的原则选择好的开源软件呢者说如何才称得上是一个好的开源软件个话题我们请中意老师来分享一下。

   

谭中意:首先开源软件是一定要用的,它像空气和水一样,只要是做开发就不可能不用开源软件。按照Linux基金会的统计,现在软件中只有10%不到的代码是工程师自己写的,90%以上的代码是各种开源软件组合在一起。

但开源软件需要谨慎使用,开源软件用起来后有各种各样的风险,有法律的风险、有安全漏洞、还有bug,这些使用不当都可能导致业务受损,它跟商业软件一样都是软件供应链的一部分,软件供应链需要有足够的质量保证。

用的时候也要考虑用途,如果是商业用途,尽量选择一个高质量的、有长期生命力的、多个公司在后面支持的开源软件,这样用起来更放心,这就是我的一点小看法。

   

02  如何选择开源软件/strong>

每一位程序员,都可以贡献开源吗?

刘天栋:我们在2014年成立开源社,2015年举办了第一次阿帕奇中国路演,每五年一次,2020年10月24日就是开源社办的第二次阿帕奇中国路演,在这五年内发生了什么呢/p>

2015年办 Apache 中国路演的时候,看到了很多本土的开源项目,也认识了很多人,当时 Apache 董事会的主席和高级官员也引入了中国,那天的会议很多人和他们面对面沟通。2015年的时候只要三个源自中国的项目,而到了 2020 年已经有 12 个从 ASF 毕业的源自中国的项目,另外还有 8 个项目正在孵化过程中。

如何才能够加入孵化器成为顶级项目间非常重要的理念就是:ASF 相信社区大于代码。中国技术不弱,各种技术大牛非常多,基数也比国外大很多,但为什么没有成功的基金会社区呢/p>

关键还是在治理理念层面,就是社区大于代码的理念不够深入人心,我们之所以五年内从三个项目变成现在的二十个,就是经过 Apache 之道的洗礼,建立了社区大于代码理念,所以才能够成长这么快。

所以国内的程序员要打破思维,不要只相信技术,而是透过社区把自己的项目越做越好。自己是英雄的单个项目不会成功,只有帮助别人成为英雄,你的项目才会变成英雄,这就是社区大于代码的理解。

   

王永和:说得特别好,尤其是中国其实不缺顶级项目,缺的是好的开源治理理念和开源组织,以及社区环境。谭中意老师作为“开放原子开源基金会” TOC 副主席是不是有任重道远的感觉开放原子开源基金会的角度,如何为开发者、开源生态服务出一份力/p>

   

谭中意:10月24号,中国开源年会有一个话题叫:“终于来了,中国第一个开源基金会”。现在中国的开源风生水起,应该结合历史的大潮来看。随着中国国力的提升,尤其是IT行业开始接近国际一流水平,甚至是在同一个水平线上竞争,国人的信心开始大增。

也感谢阿帕奇基金会给我们提供非常好的指引,非常好的开源协同的理念教育,将社区大于代码的思想带到国内。现在随着经济社会科学的发展,加上政策法规的好转,国内开源的发展速度只会越来越快,而且以中国人的聪明才智和辛勤努力就没有处理不好的事情。

现在 Apache 软件基金会最大的用户社区已经是中国了,越来越多的人成为其 PMC、甚至成为它的 VP,我觉得小米的张铎就是很好的例子。

   

王永和:我们开源中国(OSCHINA) 服务过很多技术公司,在最近的三年里,国内很多公司开始陆续开源一些项目出来,这几年给我最大的感受就是:大家想明白了为什么要开源,以前有很多公司是为了开源而开源,这是最大的转变。

另外以前我们做开源,特别是对于大公司来说会比较忌讳开发者吐槽带有商业意图,而从我个人的看法,恰恰是因为有比较好的商业模式把这个项目的生态拉动起来后,才能成为开源软件更加繁华的动力

我们看到一些好的开源软件项目,会通过该项目把整个上下游生态带起来,所有围绕该项目的主体都可以获得商业价值和收益,这是开源软件往前走很好的思路,也是特别好的转变。

很多开源软件成就了技术创业公司,还做得风生水起,比如 Kyligence ,PingCap 等,他们的开源项目都加入了开源基金会的组织。未来我们会看到的是,有更多的基础软件项目开源出来,比如数据库、存储、计算等等一系列基础的、一般个人用户比较难去玩的,需要大公司投入的领域软件。我比较乐观,相信会有更美好的未来。

04  开发者如何参与开源/strong>

每一位程序员,都可以贡献开源吗?

  

Q:老师们如何评价现在 Github上高 star 大多是国内的面经和demo/strong>

王永和:判断一个东西的好坏,要看它的用户,毕竟用户多、它才有更多的应用,但很多靠刷的高也不一定是好东西。今天聊的第一个环节里面就说,各种类型的项目在参考的时候,可以从比较下载率、比较资源这里选择,而许多的用户的评价在无形中能帮助需要这个软件的人进行排雷与选择。如果说高 star 就是好的开源软件就要另说了,因为好的开源项目不光要考虑代码,它还有贡献值、成份、社区是否活跃、License是否适合业务等,需要从多方位进行考虑。

   

Q:想问一下,我们是创业型公司,怎么能将自己的项目加入到开源/strong>

刘天栋:创业型公司和其他的公司一样,现在中国的开源分两端,一是大公司带头,二是创业公司带头,中间部分(中小型公司)缺失了。个人觉得想把自己的项目加入到开源中,首先要雇一些开源高手,判断开源水平,优先看它能有多大的开源贡献,然后看看能帮程序员解决哪些棘手问题。同时也请多关注开源社、开源中国很多介绍开源项目如何从零开始,如何参与开源的文章,也欢迎你订阅开源社和开源中国的公众号,里面有很多深入浅出的回答。

另外创业公司如何加入开源就是了。不要等到投资人问的时候再来做,那太晚了。以前会觉得开源是头脑不清醒,为什么要把解决方案免费的供应给人家在投资人看的是你是否以开源开发模式和走向市场的方式,是不是走上新的道路,用开源的方式来做等。所以如果是创业公司,那么赶快开始开源吧,最简单的启动方式,就是找一个开源高手加入其中,提供较高的薪水哦!

Q:开源社区如何维持用户群的稳定不流失呢/strong>

刘天栋:明后天中国开源年会和 Apache 中国路演,特别请到了全球运营开源社社区的大师 Jono Bacon,他写了一本书《社区运营的艺术》,有一句话说:每一个加入社区的实际有贡献的成员,每加入一位,社区就壮大一份,运营一个社区很简单,就是一个一个的争取成员加入社区中来,而不是一片片的透过网络营销。社区是一点一滴打造出来的,没有捷径可走。

   

Q:平时的工作基本是写业务代码,如何在找到值得开源的点/strong>

谭中意:写业务代码的同学不一定要把业务代码开源,这是不现实的。开源是写业务代码的时候肯定会用到各种各样的开源组件,用到开源组件时,有时间可以看一看源码,看看它的原理、架构和流程。一是熟悉它的流程、二是学习高手的代码功力,如果觉得有想法就贡献出来了,不用为了写开源代码而写开源代码,那样做起来会事倍功半。

Q:如何选取项目贡献代码,感觉自己写的代码水平不够,怎么办/strong>

谭中意:开源社区没有人会嘲笑你的代码水平低,如果对某一个开源项目感兴趣,可以先看看它的代码,如果觉得它有一些问题,你可以尝试去解决,然后大胆的提交出来就好了,不要怕被嘲笑,先去贡献了,社区会教你怎么怎么把它写得更好。

我在 2001 年给 mozilla 社区贡献第一个 patch 的时候,就出现了各种各样的问题。提交上去后第一个人说:你的代码格式不太好,于是我就改,第二个人说这个代码没有符合 mozilla 项目的组件调用模式,于是我再改,之后又有人说这个不应该在这个对象里面,应该在另外一个地方,就这样提交了三次以后,发觉自己对项目的理解加深了,自己的工程能力和工程意识也提升了。所以说不要怕,大胆去尝试,开源社区里面没人嘲笑你。

Q:什么代码才是合格开源代码/strong>

谭中意:只要有人用,就说明项目是有价值的,不要想一开始就写得很漂亮很完美,通过别人提的意见慢慢迭代就可以了。写代码最怕的就是:不能解决问题。要让别人也能做贡献,持续发展不断地把代码写得更好,所谓的好是可读性增强、更容易维护、更容易拓展,但没有什么代码一开始就特别特别好,做不到也没有必要。

Q:参与开源的动力如何持续下去/strong>

谭中意:想持续做一件事其实比较简单,就是从中得到好处、有成就感、有归属感。开源社区里面你所贡献的可以得到回馈,那么就有动力做下去,在一个社区里面能够找到归属感、找到朋友,可以找到价值就可以不断持续。

   

Q:如何让自己的代码质量能参与贡献/strong>

刘天栋:朱凯写了一本名为《ClickHouse 原理解析与实践应用》的书,源自于他当时在网上和开源社区里面问了很多“愚蠢”的问题,但很多人回答了,慢慢的别人提问他也会帮忙回答,于是总结这些问题写了这样的一本书,而他现在已经是大神级人物了。今年的中国开源年会里他也会有相关的演讲。

还有一个是李辉,他是 Flask 的专家,他讲到参与开源有三个忠告,首先不要交女朋友、第二不要工作、第三是提前宣布你想做的事情。不交女朋友是骗人的(他已经有女朋友了),其次不找工作,他是真的不找工作就为了参与开源,最后全职投入进去了,参与过程中也问了很多愚蠢的问题,最后把问题整理之后,解答了开发者的很多问题,想着这些问题如此有趣,写一本书吧,他立刻宣布要写一本,后来真写出来了。

所以不要怀疑自己写代码的质量,想到就开始做,先问傻的问题,然后参与文档和代码的贡献,慢慢就会变化为大神了。

   

Q:一个人如何开源/strong>

王永和:我总结起来,思路应该是:第一,为什么要开源对这件事感兴趣吗清楚开源是想获得什么,目的要搞清楚,不要到最后很辛苦又没有回报导致落差很大。

目标想清楚了以后再思考如何参与开源,不仅仅是参与别的项目中,也可以把自己的软件开源出来。至于怎么参与,可以参与早期的项目、参与日常使用中的开源项目,从代码开始研究,提 bug、修复代码等等。以我们的能力做一个笼子,让更多的优秀项目参与其中,项目成长起来你也跟着成长,一个人怎么开源,想清楚怎么开源、想好开源的方式、然后做就可以了。

Q:国内有哪些比较好的开源社区/strong>

王永和:开源社、开源中国都可以关注,很多开发者社区都不错,我们也投了一些,开源中国是正儿八经做了很多开源方面的工作。Gitee 现在应该是全球第二大的代码托管平台,首先它的网络要快一些;第二,因为它一开始就是设计给国内用户使用的,所以在语言、功能上针对很多中国开发者做了专门的定制。我们的原则是:具体的代码协作是自带了规范,不要破坏这样的规范,包括其指令和合作习惯都保持一致,大家再去使用就可以了。 

沙龙预告

今晚8点,国产开源数据库专场准时开播,分享腾讯云TBase在分布式HTAP领域的探索与实践,扫描下方二维码或点击文末「阅读原文」即可预约观看今晚直播~

每一位程序员,都可以贡献开源吗?

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91318 人正在系统学习中

来源:腾讯云开发者

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年9月25日
下一篇 2020年9月25日

相关推荐