8.3 Github

如果你是一名紧随潮流的编程技术人员,一定不会不知道Github——这个全球最大的编程社区及代码托管网站。Github以其开创性的全新开发协作方式,以及现成的海量免费代码资源,正在赢得全球越来越多极客的追捧。

Github在2008年成立于美国旧金山,联合创始人有三位。它最早是以“周末项目”的性质玩票登场的,上线一年后获得了第一个10万用户。2012年7月,Github筹得了1亿美金投资,估值7.5亿美元。同年,福布斯将其评选入全球十大科技公司。

00275.jpeg

Github网站

到了2013年,Github已拥有300万用户,创建了490万个代码仓库(Repositories)。年底时,代码仓库数量更是突破千万大关。当时的官方博客记载道:“代码仓库数量突破第一个100万,花费了将近4年时间……而从900万到1000万,仅用了48天。事实上,其中有550万个代码仓库都是在今年一年之内创建的。”

截至目前,Github的知名客户已包括白宫官方网站、亚马逊、Twitter、Facebook、LinkedIn等。随着Github的走红,它的吉祥物章鱼猫(Octocat)也成为流行文化符号,被印在了贴纸和T恤衫上,成为代码牛人自我标榜身份的象征。

00276.jpeg

Github吉祥物贴纸Octocat

Github早期究竟是如何发展起来的呢?

解决实际问题

说起Github就不得不提Git技术,这是Linux之父林纳斯·托瓦兹(Linus Torvalds)为Linux内核开发的一种版本控制工具,一经推出就迅速流行开来,打败了此前其他的固有解决方案,被视作版本控制软件的一次全新进化。Git虽然功能强大,理念前卫,但并不那么平易近人,普通开发人员上手还是有一定成本的。Github的创始人之一普雷斯顿·维尔纳(Preston Werner)就注意到了Git在协作开发方面的短板,于是在一次当地的编程会议之后邀约了克里斯·瓦茨特拉斯(Chris Wanstrath),二人在一间运动酒吧里讨论起改进Git的想法。在随后的周末业余时间里,他们开发出了Github。

Github从创立伊始,就瞄准了Git无法满足的需求,并且融入了自己的亮点特性,比如复制代码分支(Fork)、拉拽请求(Pull Requests)、合并代码(Merging)等。在Github之前,人们如果想协作编写代码,需要先手动下载他人提供的代码包,在本地编写完成后,通过电子邮件等以“补丁包”的形式发给原作者,原作者再从头到尾自行审验一遍“补丁包”,看是不是能够混合到原来的代码中而不会出错。

有了Github,这一切简化到极致。人们只需要从任何公开的代码仓库中复制代码到自己的账号下,就可以展开编辑,编辑完成后会有相应的改动记录;修改好的代码只需给原作者发一个拉拽请求,原作者如果检查改动记录没有问题,就能直接将代码合并到原文件中,从而实现了基于集体智慧的编程创作。

相比原来的解决方案,Github提供的服务不仅简化了操作步骤,而且将原本混乱的代码协作工作管理得井井有条,并且能量化追踪。现在任何人都能够将代码开源贡献给全世界,同时通过学习他人的代码提升自己的编程技巧。

网络效应积聚人气

Github的服务本身切中需求,吸引了最早一批的种子用户的入驻。这些敢于第一个吃螃蟹的先行者们,也都是一群嗅觉敏锐、头脑灵活、乐于尝试新鲜事物和公开分享的极客工程师,他们的活跃带动了社区氛围的提升。越来越多的人开始用Github托管自己的项目。而正是由于越来越多的开源代码被提交至Github,使得这里成为人们寻找编程灵感、翻查现成代码的不二选择。

在Github,新人们彼此经过交流,很快能学会如何在这里创建仓库、复制代码、提交问题反馈。更多人意味着更多的代码资源量,也意味着整个社区的价值对所有人而言变得更大。这正是网络效应的体现——“用的人越多就越好用”。与此同时,由于Github上高手云集,企业主也开始认可它对于发掘技术牛人的价值,猎头们甚至将一个工程师的Github个人资料页面作为衡量其能力的参考依据。这让人们更加乐于经营自己的页面,频繁地提交更多高质量的代码。也有人开始探寻一些“非主流”用法,比如在Github上写博客。所有这些花样百出的现象都显示出这里已经成为了极客们的乐园。

免费带动收费

每一家公司在业务有起色后都面临着盈利的问题,像Github这样提供文件存储和传输的服务,在每个月的账单上通常都是一笔不小的数额。创始人维尔纳此前在效力网络头像服务Gravatar时学到的经验之一,就是免费向用户提供高成本的服务却从不做任何盈利方面的打算,这完全等同于是在慢性自杀。

幸运的是,Github在寻找商业模式的道路上并没有花太多功夫。早期的Github允许用户分别创建公开的代码仓库和私密的代码仓库,后者尤其为企业用户带来了方便。不久,有的企业用户邮件询问能否花钱享受更加定制化的私密代码仓库服务。从那一刻起,他们意识到Github恐怕不仅仅是能回收成本,更能成为一个真正的大生意。于是经过研究,创建公开的代码仓库继续保持免费,而创建私密的代码仓库则改为了收费——向那些乐意为此掏钱的人。

目前Github的收费模式已经非常成熟,免费用户允许创建最多10个公开的代码仓库,不能创建私密的,而付费用户则没有该限制,并且可享受更多专业服务。同时, Github也有专门为大型企业客户准备的付费服务,足以支撑百万级别的用户量,付费客户包括微软、沃尔玛、VMware等。

00277.jpeg

Github企业版页面

Github用这个收费策略,巧妙地向有高级需求且有付费能力的客户收到了钱,而并没有令绝大部分免费用户感到反感。

吸引金牌项目入驻

在Github诞生之前,即便是有开源想法的企业,要想将代码发布至整个网络,并接受全球无数网友的贡献,整个项目的维护成本是极其高昂的,需要驻派专门的人力来审阅更改后的代码,工作量之大令人望而生畏。而且,自建代码托管服务的门槛也不低,除了需要有专门的IT人员负责技术支持,还必须有硬件、带宽的投入。种种客观难题造成了许多公司不愿意在这方面持续投入。

有了Github,大公司托管代码的问题迎刃而解,于是我们惊喜地看到包括Twitter、雅虎等在内的巨头们在其上活跃贡献代码的身影。网友们得以一窥顶尖公司的技术达人是如何编程的,而已经实现盈利大公司也能通过这种方式回馈开源社区。

00278.jpeg

Twitter将自己的开源项目Bootstrap托管在了Github上

尽早交付

Github始终秉持着精益创业中“尽早交付”的重要理念。“我们学到了先交付,再修bug。与其遥遥无期地缓慢开发,不如快速交付一版,看用户们会怎样使用它。”瓦茨特拉斯解释说,“你不可能永远都是对的,也没有什么是完美的,所以尽早交付绝对是有百利而无一害。你可以看到人们实际是如何在网站上操作的,并且有针对性地做出应对。取消某个功能会招致反对吗?某个之前你未想到的功能是否有普遍性?你一直担心的那个Bug被别人撞上了吗?现在都能看得真真切切。”

其实从一开始创立,Github就是这样一个持续快速交付的产物,创始人一边开发,一边亲自体验试用,衡量它究竟好用不好用。最早的一批种子用户也是来自创始人身边的朋友。

打造高黏度社区

整个Github的社区黏度很高,这点毋庸置疑。平台上每天会产生海量次数的代码复制、提交、合并操作,不少开发者每周都会花大量时间沉浸其间,研究学习。Github也在通过不断探索产品特性来继续提升用户黏性,例如各种优质代码和开发者的发现入口,榜单就是其中之一。他们还推出了主页服务,允许每个开发者开设以自己用户账号命名的个人页面,提供形如xdash.github.io的二级域名。有人索性直接将独立博客程序架到这里,记录起了自己的衣食住行柴米油盐。这成为爱折腾的工程师追随Github的又一理由。

不断拓展的业务平台

由于完美地解决了多人协作交流之间的问题,Github如今已具有平台的效应,成为了行业标准。工程师求职投简历时,都会自觉附上Github主页链接,与编程开发相关的网站也常见到“用Github账户登录”的按钮。公司利用它物色有潜质的新人,个人也可以在这里实现有趣的想法。

创始人在访谈中谈到:“许多大公司的团队合作效率非常低下,我们想改变这一切。虽然Github是为了管理代码而生的,但如今也已在越来越多的场合里被广泛运用,比如管理图书、硬件项目、电路图,以及法律文书等任何可以以数字方式被记载下的内容。”

Github不仅是一种工具,更是一种自由、平等、分享精神的象征。人们相互借鉴,取长补短,通过点滴贡献聚沙成塔,共同创造出更美好的事物。这一颠覆传统的协作方式,最终将会从二进制的代码世界,逐步渗透到产品设计、医疗制造、电影电视、图书出版、音乐舞蹈、烹饪美食等任何创造性的行业,为这个世界带来更加无穷大的可能。