首页 -> 新闻中心 -> 云计算 -> 正文
开源信徒 李建盛:GitHub开源指南深度解读
2017-04-25

W020170420628323292273

能够留下来的都是真爱,非常感谢大家,肯定很疲惫,我这边给大家简单介绍一下开源指南,在今年的2月14日情人节的时候,全球最大的代码托管平台发布了一个很重要的,叫开源指南,我这边起的题目有点标题党,其实也不是深度的,只能在短短的时间内给大家起到一个抛砖引玉的作用。大家可以看到,我想以一句话来开启我今天的主要分享,在谷歌的开源总监说过一句话,如果离开了开源软件,我们现在所有的互联网将不复存在,这是非常具有震撼意义的。我介绍一下我自己,从三点,就是说我为什么叫开源信徒,就是我个人,我的职业生涯差不多有十多年,从一线的程序员做到技术管理,最后做着做着就说,经历了从一个小众到最后现在成为主流,然后我也接触一些开放式创新的思想,然后就开源是开放式创新的最佳重点,它也是为了软件开发方式的主要方向。那么我个人,我刚才也提到了就是说,我现在逐渐从代码转到,通过一些协作,一些演讲的方向,我偶尔还是会看一些代码,我为什么能敢去解读开源指南这样,最后就是说,我是以个人身份来参加这个演讲,但是我现在所在的公司也是,非常感谢这家公司能够允许我以个人的身份来参加这个分享。

这是一家在中国落地的公司,谈到开源已成主流,在去年年底的时候,IDG下面的一个子网站,它列出了2017年的技术趋势,它把开源技术列为和人工智能,云计算安全以及VR并列的技术趋势之一,那么我就再往远了不说了,短短过去一个季度,我们把一些发生的事件简短的回顾一下,比如说我们中国的招商银行,以银牌会员加入Linux基金会,还有微软是GitHub的贡献者数量16419,它用事实证明他下了很大的决心做这件事情,然后刚才,由于时间关系,Twitter有一个很好的没给大家分享,就是开源为谷歌建了一个全新的站点,把谷歌十几年的精华,包括谷歌的项目,以及他们犯过的错误等等等等,大家可以去看,这个是非常重要的一层,还有就是我们知道,今年最火的,好像你如果不谈学习你就没法谈一样,那么我们知道,AI的整个机器学习框架几乎全能开展,Facebook,就在昨天,因为这几家是开会,昨天Facebook发布了它的积极学习框架,这个全部是开源,然后我们知道ATT曾经也是开源最大的,它可能就是说,回到上个世纪六七十年代,IBM也再去加入这块,也宣布了区块链及服务,等等等等,那么你把这些东西串起来,这就是大势所趋。那么既然是主流,加入主流这个事情,每个人都喜欢主流,那我该怎么加入呢?OK,开源指南,这是GitHub一个小的团队,还有其他的一些贡献者共同发起项目,大体分为十二个,其实我们这个主题刚才叫做开源治理论坛,法律问题IP问题,社区经营问题等等一系列,那么如果你把这些东西去串起来的话,其实是可以为主线的,那么我在这边做的工作就是把这些,比如说你怎么应该去参与到社区当中,然后你作为一个企业或者你怎么去开启一个项目,或者是我怎么去赚钱,这是很现实的问题,那么我这边就是以两个视角给大家解读一下,就是说如果你不管你是,在座的各位,其实从你个人角度来说,你首先是一个个人,你可能是一个程序员,你可能是写一个文档的,你可能是做测试,你可能是一个管理员,你可能是一个产品经理等等这些角色,不管你是什么样的角色,都是可以参与到开源这里面,然后我们其实都会分享到企业怎么去利用开源,包括之前讲的,开源大家怎么决定,企业这块大家看了就是说,不管你是什么样的企业,就其实已经绕过开源这个坎儿了,那么我们试图从两个视角把刚才列出的十二个标准串了,但是如果,首先是个人的路线,比如说我作为一个个人,我怎么能够参与到开源项目当中,它也是一个成长的过程,这边用一个图给大家表示一下阶梯状的,首先你得为社会做贡献,你得融入到这个社区里面,你才能去理解它,你才能去用它,你才能从这里边受益,行为准则,就是任何事情到底是以什么规矩,其实我们觉得为什么我们融入社区会很困难?其实有一些很简单的事情可以讲,然后接下来我会去讲赚钱,非常现实的问题,还有就是刚才我们给大家讲的,领导力治理,然后你最后成长为你可能是一个项目的维护者,这个是已经很高级别的了,比如说你帮助这个项目去成长,然后去让他有利于这个社会,然后当然最高级别,比如说LICENSE这样的人,我发起一个项目。OK这个是个很大的方面,扩展开来讲好几个小时都没问题,我尽量的精简,首先要解决一个问题,就是说我为什么要去为开源做贡献?就是说我们最直接的这种劳动雇佣关系,我去给这家公司,我付出我的劳动和我的时间,我换回我的靠生活的这种费用,那我去开源社区为什么?现在开源是主流了,我这里边给大家又举了,为什么要参与到社区,第一如果你是一个,不管你是一个什么样的状态,不管是刚走出社会的大学生,还是工作了好多年的,面临着这种变革的一个,究竟职场的人士,都会面临一个问题,其实我们都是学习,比如现在很简单的例子,原来是搞什么网络工程师的,现在有区块链,你可能觉得你必须去学习,就是我们生在这个时代,你不得不学习,这个是个非常重要的,那么开源项目是一个很好学习的地方,还有有的公司会发出就是说,我会去招一些人,专门去为这些,招一些人去开发开源项目,比如很大的大公司都会,包括刚才分享的LICENSE贡献率,等等这些大公司,其实他们都有专业的,你就在上游去做一些东西,那么还有就是,我是为了迎接挑战,这个世界上很多问题都是需要人去解决的,那么有很多人就是利用开源这样的平台我去解决一些问题,OK,还有就是说贡献的具体含义是什么,这个意味着你要付出大量的时间,而我们知道我们都是,可能即使是单身,你也有可能会陪一些亲戚,朋友,陪家人,如果你是在工作之外去做这个事情,贡献是要我们去花费你很大的精力和时间的,而且有很多东西是非常具有挑战性的。然后最后就是说,我怎么去参与到这个项目当中,那就是说现在这个项目很多,不管你是GitHub,或者是等等其他的一些重要项目,还有很大的基金会的项目,面临这么多的东西我怎么去找,有的是软件项目,还有的可能不是软件项目,我们可以,你要根据你回答的这些,上面两个问题之后,你去找项目,然后找完项目,要根据你自己所擅长的,比如开源做贡献不一定是代码,代码固然很重要,但是像写文档,做测试,取布道等等一系列事情都是非常有挑战的,而这些反而是非常缺的地方,这个时候你要根据自己的兴趣,比如说你是会画画,其实我们知道很多人会吐槽开源项目的这种艺术设计方面的事情,那你如果有这方面的兴趣和天赋,可以做这件事情。然后你怎么去,当你做完一件事情的时候,你怎么去提交成果?有的是用GitHub,有的是用其他的一些方式,这个当然大家要具体的事情,你要去,比如说GitHub这种流程,你要去详细的读一下这个东西,然后最最关键的,不是说你提交完一个事情,比如说你提交了一段文档,我也刚才提到了贡献的具体含义是什么?贡献意味着你要把这个事情当它整个生命周期里,你都要存在,除非你遇到特别的事情,即使遇到特别的事情,你也要很友好的把一些东西去交出去,这个是最最关键的,而我们就是,现实中会遇到很大的问题做不到的,就是说我在提交完之后,你要善后,如果你的代码有Bug,你需要修,如果你的文档有错误,你要去维护,如果别人因为你的问题去问的话,你也要去回复,这是非常关键的问题。其实听起来做贡献,好像我们现在串起来,其实我可以跟大家说,我遇到的很多人是无法下手的,这一点是非常重要的,然后接下来就讲这个行为准则,就是说任何事情它没有规矩是不可能的,就是说在开源社区有很多默认的一些规则,可能会有文化上的差异,或者什么,但是我们首先要学会尊重开源社区的行为准则,这个我有时候会吐槽,比如说我们面临的情况,比如说最近的很火的这个,所谓的共享单车这种,马路涯子上到处都是,或者是前几天还有这种破坏的,或者是比如说,总是有汽车去抢自行车道,等等这些,其实这些东西你在开源社区的行为准则里,很容易会看到,当然这个东西它一般就是说,比如我举一个最常见的,我们在社区经常讨论的问题就是说,比如说举个简单的,阿帕奇基金会有个默认的,就是凡是没有在这里面讨论过的问题,这个问题不存在,那如果按照我们的习惯就是说,我会遇到一个人,我会单聊,没有在IAC上,单独发一个邮件,这是一种非常不礼貌,或者粗鲁的行为,但是这个事情每天都会发,就是你会看到中国的团队都会发这样的,当然等等这些我就不一一列举了,我参与过的这些开源社区,都会遇到这个问题,接下来就是说你作为开源,我怎么赚到钱,这是所有人面临的问题,就是说现在开源已经成为主流,在开源里面做,就是你想赚钱是,不是一件什么特别难的事情,比如说你可以加入到,像华为,或者像一些外企,他们会有专门的就是说,这个职位,你是要参与到社区里面,这样的职位很具有挑战性,你也可以去尝试一下,当然绝大部分不是这样,那么这个时候怎么办呢?举个例子,有很多公司,我去拉风头,我去上市,比如国内有一个公司它这个就做得很好,还有就是说,比如说今天上午有一个叫OSchina,这个是程序员,或者是其他的软件设计,像猪八戒之类的,当然这些开源不开源具体不知道,就是说有一些平台,比如说像国外的,还有一些其实,比如说你可以去找一些社区上,其实有很多这个项目,最经典的案例是图像库,当年就是说什么叫修Bug,澳洲有个程序员,一周可能赚了一千美金,现在有很多渠道做这些事情,但是我这边要说的就是说,开源其实赚钱不是什么,因为开源对于个人最大的一个好处就是说,你所有的代码质量,贡献是整个互联网公开的,就是LICENSE有一句话嘛,闭嘴,给我你的代码,现在很多其实公司面试他就直接看代码,这个也是好的,但是我这个赚钱很重要,就是说我没有说,就是开源它本身和金钱是没有仇恨的,包括其实你要上升到最原始的软件,它也没说这个软件必须是不收费的。

关于法律保护,刚才林先生已经讲得很详细了,这边我就不说了,我提一句就是说,要遵循它这个原理的话,就是说知识产权是对开源是相当有好处的,就是说我们能把开源发展到今天,是得益于知识产权,你要尊重知识产权,如果你要像国内的地方文化,或者是怎么样凡是我得到的,我不认你,那这样其实是发展不起来的,而开源恰恰是因为知识产权,当一个个人,你在社区上混了很长时间的时候,你会上升到一个维护者,就是说我刚才提到的,你为开源做贡献,做完之后,你逐渐的成长,比如我们会听到,比如说讲,他说你会听到什么PTL,或者是你在什么BSD,BSD中国人很少了,或者是你在LICENSE下做一个模块驱动,或者是你在维护一个APP等等这些开源的,当你成长为维护者的时候,也有一些更多的责任,就是你能力,证明你能力强,那么你有需要去,更多的是你要把一些流程去文档化,你要去建立一些规则,这个时候要体现你自己的精神,这个要,就是比如说你培养新人等等,那么我刚才提到个人完了之后,提到企业,刚才两位老师已经论证了企业怎么去利用开源,或者是已经论证了到目前发展为止,谷歌拥抱开源,Appole拥抱开源,一个企业怎么参与到开源里面,我是不是告给市场部,让他两千美金买一个基金会,买一年,就好了呢?这是大家通常的做法,这个其实是,我今天不会提到,就简单说一下,我在开源之道写了一系列博客,文章里面我会论这个东西,今天我主要谈论的是就是说,你从零到打造一个受欢迎的社区,这样一个企业应该去做的事情,其实刚才林旅强先生已经讲得很好了,已经把这些东西都提到了,那我这边就是给大家送一下,GitHub的开源指南是怎么讲这个事情,首先你要去发起一个项目,发起一个项目就是说,我要全新的项目,比如说我们知道发起的项目,国外有很多了,阿帕奇基金会下面有那么多孵化的项目,那么你自己要发起项目,你是怎么办?然后刚才提到的就是说,社区重于代码,就是说一个开源社区的成功与否,社区是占极重要的部分,它甚至超越了你本身的技术问题,技术稍微架构上设计得有点问题,我可以去慢慢的弥补,但是如果你社区上没人,这个范例很多了,项目上可能就会失败,你需要打造一个受欢迎的社区。

然后这是一项非常具有挑战性的工作,它涉及到经济学,社会学,心理学,如果你是在本土做的话,你还会遇到面临强大的文化障碍,这是一个非常具有挑战性的工作,所以其实应该向他致敬的,这是一项非常具有挑战性的工作。你怎么找到用户?然后还是法律,然后最后还有你怎么去衡量你的项目,这个很关键,最后还是领导力,就是因为你最后要,你从这里边不管是对社会做有益的事情,对世界有益的事情,你最后肯定要有领导力,然后第一个就是发起一个开源项目,就像刚才一样,你还是需要问自己几个问题,为什么要开源?什么是开源?就是你要解释清楚这个问题,开源不是万能的,你不是说我辛辛苦苦开发了两年的东西,一开源大家一定会蜂拥而至,好多人现在就是这种想法,你那是错误的,现在开源你放进一个开源项目,石沉大海,根本看不见的,OK,你是不是应该熟悉这个,开源软件的方法论,那种参与,那种独立,那种透明,这些东西你能不能做到,然后你再问自己,然后你最后是要发起我自己的项目,这里边我再提到一个很关键的问题,就是说你要为项目命名和提高一个品牌,举个简单的例子,比如说我们知道,他们为什么没把项目的名字和公司的名字放到一块呢?但是你很可能会看到很多公司是一样的,这个是需要去做深入的研究和调查,你要去做这样的选择,品牌对于一个开源项目,对于你的商业产品非常重要,还有就是说,发起项目之前,列举项目其实我们今天的演讲嘉宾都提到过,比如说你的法律信息,等等一系列的事情,打造受欢迎的社区,这个更加关键,开源从来不会放在哪儿,自己去就成长了,开源也不会就说,就像你个人一样,你不努力是不可能成为高手的,编程高手,我在这边也不多讲了,给大家推荐两本书。这两本书是跟开源项目社区有关的,当然你要建立一个社区的话,这方面的书更多了,那就看嘛。你怎么去寻找用户,你要利用各种各样的机会,自己制造机会,让别人知道,现在就像我们生活中遇到的问题,你面临的是多而不是少,我们现在不是一个快发的问题,或者是其他的项目,所以说如果你要发起一个项目,你必须花更多的精力在各种场合下,线上的,线下的,比如线上的,国内的,国外的,线下的像本地的用户主等等这些系列要去做,而且要花大量的时间和精力去做,法律保护就不说了,衡量标准,我在这儿也是简单提一下,就是说一个项目的健康程度,就像我们的身体一样,你要定时去检查,你要去看,或者是家里养的宠物,你要定时的去给他,保证他的健康,那么这样你就要做出分析,是不是在社区经营上犯了一些错误,或者你这个软件设计上模块有一些问题,你在核心冲突解决上出现了问题,甚至比如说有人发觉,你的邮件列表上发出的问题没人理,包括比如说是不是有人在代码审核上忽略了一些东西,等等这些,你都要拿数据说话,这个必须做得,因为我们知道开源软件有个很大的东西,很大的功能就是说,抢夺人才,谁抢夺了人才,谁就掌握了未来,这个没话说,那么开源社区利用了人类高尚的一点,然后他会去,当然商业的这些,你必须去做到留住人才,否则你的项目就失败,你说你的技术很牛,如果你留不住人,一切都白搭,还有就是像维护者活跃度,我们看到,我不知道大家有没有像我一样去关注失败的项目,GitHub有90%的项目是失败的,甚至超过95%这样的数,只有5%成功了,这个数字是巨大的。最后这里就是偏一些设计上的问题,比如说我在一个项目里面,我应该分那些角色,或者是临时来得,因为这个社区就像一个集市一样,来来去去的人很多,什么人能成为这个,比如说你要不要设技术委员会,你在技术委员会是不是要设一些非技术上的董事会,在非董事会,你是不是要分一些个人的,然后如果有商业的话,是不是要把商业的,大公司赞助这些东西,这个涉及到很多的东西,这边我就不强调了,因为时间关系,最后给大家分享一句话,就是说这也是我们今天参加的这个云计算峰会,其实这个我说经历的开源的,没有这么多的,这么盛大的会议,上星期我看到了一个大众化区域副总裁的一句话,我非常感同身受,就说开源让中国与世界更加同步,大家一定要记住这句话,开源不是什么国产或者什么东西,那都是忽悠人,我们只能说开源跟世界更同步,因为我们要承认自己是比较Lou。非常感谢大家。

新闻搜索

覆盖全国各省会城市及海外城市的网速测试
→选择要测试的地区
→选择目标测试点