程序员人生 网站导航

GitHub中国游记之CSDN――Git+Code=Gold

栏目:互联网时间:2014-09-08 23:43:10

上一期GitHub中国游记中,我们在长城认识了Zach Holman和Danny Greg,了解了他们对编程学习环境的看法。第二天的下午,Zach和Danny来到了CSDN,接受了我们的采访。他们没有预料到将要面对的是一场两个多小时的“持久战”,Zach有一篇博文叫做Git和GitHub的秘密,CSDN准备为开发者挖出更多的秘密。


 ===Episode One: Why GitHub? === 

对于GitHub,好多人都在好奇,到底是什么让GitHub脱颖而出?代码托管?Pull Request?为了更好地促进访问,我们准备了啤酒,用另一种形式“拷问”Zach和Danny。

CSDN:如果现在有人做了一个和GitHub功能类似的网站,你觉得它会和GitHub一样突出么?你觉得GitHub脱颖而出的关键因素是什么?

Zach:首先,第一个问题的答案我觉得会产生一种竞争关系吧。第二个问题,我觉得GitHub突出重围的因素是我们这里有许多开源的项目,这些开源项目也正是我们能吸引到大量开发者的关键因素。

Danny:我觉得GitHub的爆发是由于那些大量的Rails的项目,这是对GitHub产生重大影响的关键点之一。关于这个问题,我一直在想Facebook和MySpace的例子。在Facebook诞生以前,大家认为没有人会离开MySpace,为什么要离开MySpace?看看现在,很少再有人使用MySpace了。在MySpace之前,还有Friendster。所以考虑到之前的无数案例,现在说GitHub会火多久,这个问题很难回答。

CSDN:所以对于GitHub来说,开源项目是最重要的。

Zach:可以这么说。打个比方,如果第二天你起来以后,突然出现了一个比GitHub更好的工具,我觉得这些项目也有可能会迁移走的。我们就有大麻烦啦,哈哈。

Danny:这不就是Facebook的例子么?Facebook的各项功能都要远胜于MySpace。套用一句话:如果有新事物比旧事物好10倍,人们会自然而然地投入到新事物的怀抱。所以说,如果有一个工具比GitHub好上10倍,人们自然会离开GitHub的,这很正常。

CSDN:能分享一下GitHub的技术架构么?

Zach:说实话,GitHub本身在技术上的选择不会给大家太多的惊喜。数据库方面用的是MySQL。首先,经历了5年,GitHub知道如何更好地扩展数据库。其次,我们的开发者也知道如何扩展数据库。大家一起出力,事情会好做一些。虽然如此,GitHub的稳定性也随着越来越多人的到来变得更加重要。其实在这方面真的没有太多惊喜,唯一好玩的地方就是我们使用Git的方式,用了那么半天,和我们自己的关系不是很大。还有一个就是我们几乎都是用Ruby on Rails做的网站,开发速度很快。


===Episode Two: Tough Questions=== 

CSDN:能谈谈scaling的问题么?

Zach:最开始只有github.com的时候,好多人都说,你们用的是Ruby on Rails,吞吐量的问题怎么解决?我当时真想说,Ruby on Rails不是导致速度受限的问题,数据到磁盘的读写速度才是硬伤。现在我们更新了一大批服务器,速度很快。

CSDN:公司的战略目标是什么?有什么憧憬?

Danny:天哪,咱们能说么?

Zach:没关系,哈哈。GitHub现在已经尝试帮助人们摆脱闭门造车,共同制作软件。GitHub的战略目标之一就是让人们在做其他事情的时候也用这种方式完成。GitHub希望提供的产品能够帮助人们在每件事上都能变得效率。一个人再有能力,创建一个公司也需要其他人的帮助。现在的开发工具,比十年前好多了。但是我要说,它们仍然很糟。我们还要走很长的一段路,才能帮助更多的人轻松上手,这算是我们的目标之一吧。

Danny:可以说,让GitHub成功的关键之一就是GitHub的协同工作功能。也正是这个功能,人们在编程的时候可以更加效率,最终来到了GitHub。我们希望把协同的功能做得越来越好。

CSDN:GitHub一直以一个十分正面的形象存在着,有没有犯错的时候,怎么处理的?

Zach:对于错误,我一直在回想我们犯错误的情景,有的时候感觉天要塌下来了,有的时候认为自己为什么要犯这么愚蠢的错误。当这种情景在脑中一遍一遍地穿越时,压力特别大。然而,当回忆这些事情的时候,我们都会把自己犯的错误无限放大。最正确的方式是一点一点地修复自己犯下的错误就好了。即使GitHub会出现一些小错误,到现在还没有一个人因为自己犯下的错误被开。犯错误的时候,没有人故意要把公司搞垮,都是抱着“尽力做到最好的初衷”去做事情。

Danny:来到GitHub之后,我对工作中犯错的看法也跟着改变了。我学到的是,如果犯了错,勇于承认,不要遮掩。我一直在假设,如果我要是犯了错,就算主动承认,肯定会受到一些指责。但当错误真的发生之后,我发现结果正好相反。犯错之后,我们会在Blog中承认,我们搞砸了。但是我们得到的回应大多数都是积极的。所以GitHub教会了我:拥有信念。

CSDN:穷追不舍一回,举个例子吧?

Zach:呃,可以啊,有一次我们数据库里的数据不小心被删除了。GitHub停运了20分钟到40分钟,我们在备份之后重新开启。在Blog中,我们一五一十地将这件事情的原委说得明明白白。令人意外的是,大多数用户表示包容。就像Danny说的,勇于承认错误就行了。试图掩盖事实的行为会使公司变烂。

CSDN:能不能分享一下GitHub的财务信息?

Danny:我嘞个去。

Zach:不能,哈哈。

===Episode Three: More and More Git and GitHub Secrets===

CSDN:CSDN也有自己的托管平台――CSDN CODE,你们如何看待一个国家提供一个更加本地化的服务?有没有什么在中国拓展的计划?

Zach:我们压力很大的,中国在GitHub上的流量年初的时候还排在第四、第五的位置,我们来之前已经蹿升到第二了,我们也会努力做好我们的产品。关于在中国拓展的计划,我们来这里参加Ruby大会,除了与开发者沟通以外,也会来和中国的大公司进行一些交流,了解一下情况。我们也希望和你们多接触。在以后,会有更多的同事来到中国。希望到时能与大家交换一下更多的代码托管和编程的经验。

CSDN:其实有好多网站和GitHub很相似,Git is not unique,到底是什么原因让GitHub比其他网站更强?

Danny:就像你说的,Git不是开发者喜爱GitHub的关键因素,开发者真正来到GitHub是因为GitHub上的协作功能和Pull Request等操作。除此之外,我们的社区里也有很多技术大牛,这也是将开发者聚集到一起的原因之一吧。


CSDN:现如今,GitHub的新功能,就算是小功能的发布,都能轻松登上Hacker News的头条,这暗示GitHub的技术影响力已经非常大了。你们怎么看?

Zach:这取决于如何定义“大的技术影响力”了。不管怎么样,GitHub能登上Hacker News的头条,肯定是因为越来越多的人们对我们在做的事感兴趣。我们内部通常把这些人称作“超级粉丝”。他们和普通粉丝的区别就是他们真的对GitHub的新功能感到兴奋。在加入GitHub之前,我就是个超级粉丝。加入之后,我们来到了世界各地,和开发者见面,就是要见到这些兴奋的超级粉丝。

Danny:我不这么认为,GitHub的目标不是如何扩大自身的影响力,而是做出更好的产品,帮助使用GitHub的开发者,让他们创造出更伟大的技术影响力。关于影响力,你走在大街上,问问路人知不知道GitHub,有几个人会知道呢?跟苹果这些公司相比,我们还有很长的路要走。

===Episode Four: Touch The Future===

CSDN:那么你们觉得哪家公司的技术影响力最大?

Danny:太巧了,刚回答完这个问题。可以回顾下历史,拿iPhone举例。每一代iPhone,都会彻头彻尾地颠覆上一代产品。再往前推,苹果的鼠标,尤其是Mithy系列的,彻底颠覆了人们使用电脑的方式。苹果如何改变技术,技术就如何改变世界。之前提到的Facebook也是。和苹果对世界的改变还不一样,Facebook改变了人们使用社交工具的方式,使社交网络的上手变得无比简单。

Zach:我也会选择苹果,原因就是苹果的一切。从设计,到开发,苹果始终对于创业公司有着深远的影响。 

CSDN:之前看过你写的关于招募员工和企业文化的博文,GitHub团队内部的组织结构是什么样的?

Zach:GitHub的团队组织特别扁平,换句话说,组与组之间,部门与部门之间合作是非常自然的。我们从某种意义上上来说没有经理,或者说每个人都是经理。有一些大师级别的程序员,他们想得要比你远、经历得比你多,你会很自然的把他当做这个团队的领袖,例如Linus Torvalds。我们希望工作的时候像是一个开源项目一样,大家彼此互相激励、互相贡献。

Danny:我觉得这种组织架构也会有一些比较有趣的化学反应,每一个小团队之间,彼此的工作方式是不同的。我所在的团队就和github.com的团队工作方式不一样,因为做原生产品和做Web产品的要求是不一样的。但重要的是,我们彼此信任。由于我们的组织架构比较扁平,我们团队之间共同工作的时候就可以轻松做出一些决定。

CSDN:这种组织架构在工作时会遇到什么挑战么?

Danny:说到挑战的话,我觉得团队与团队之间的交流是个问题。我们的领导一直在关注每个团队正在做的事情,大家也保持着积极的交流。假设你的同事告诉你,不要告诉其他部门的人你在做什么,那么这个公司的麻烦就来了。GitHub的员工都是对自己正在做的事情保持清醒状态,发现什么问题尽快与同事交流。

Zach:我觉得这种架构的挑战是个人事务的处理。在传统的公司,员工一般会直接和老板汇报,老板会指出你做错了什么,做对了什么。在GitHub,我们很少开例会。更多的原因是我们没有时间坐下来,互相总结谁搞砸了什么,谁该怎么做。有的时候新来的员工都会自己想,为什么没有一些总结性的会议。对待新员工,我们都会以聊天的形式和他们交流,告诉他们需要改进的地方。其实老板和员工之间的关系存在着一种不平等的因素,那就是老板可以开员工,反之则不然。而我们正在做的就是淡化或者消除这种不平等的观念,让领导和员工站在同一水平线,互相交流一下工作上的问题。

===The End===

采访持续了两个多小时,在这之后,GitHub在车库咖啡举办了Ruby大会的预热活动――GitHub Drinkup。在那里,GitHub与开发者进行了面对面的沟通。CSDN将在GitHub的最后一篇游记中为大家带来车库咖啡的故事。

本文为CSDN原创文章,未经允许不得转载,如需转载请联系market#csdn.net(#换成@)

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐