首页 > 范文大全 > 正文

GitHub 与社会化编程

开篇:润墨网以专业的文秘视角,为您筛选了一篇GitHub 与社会化编程范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

社会化的浪潮正席卷整个互联网,在软件开发领域也是如此。社会化是如何改变传统软件开发的?同时,版本控制的理念与开源的精神正通过 github 这样的社会化平台向更多的行业扩展,其未来的影响将不仅仅局限在开发领域。

在我理想的世界里,协同工作将比独立工作简单的多。在那个世界中,软件开发会是一个充满欣喜的过程,我认为 GitHub 正在推进这一愿景的实现。

GitHub CEO Wanstrath

最近 GitHub 因为两件事成为了媒体的焦点,其一是 Wired 的一篇关于 Github 的文章以 Github 上的 Repository 的形式进行了发行,这让人对 GitHub 未来更广泛的应用充满了期待。其二是一名俄罗斯黑客通过 Ruby on Rail 的漏洞获得了 GitHub 的顶级权限,可以对进入的项目进行随意的操作甚至彻底清空,这在开发者界造成了一场大恐慌,GitHub 的流行度也可见一斑。

GitHub不仅仅是版本控制

版本控制这个概念本身对于程序员来说并不新鲜,从 1982 年的 RCS,到 CVS、SVN,再到现在流行的 Git、Mercurial 等,但凡有规模的软件项目都会采用某种版本控制系统来追踪文件的变化、处理软件分支、避免版本混乱。只要拥有一台主机,任何人都能很容易的搭建自己的版本控制服务器。如果仅仅是提供一个支持版本控制的代码托管服务的话,那么其本身并无任何特色可言,但 GitHub 并不局限于此。

GitHub 的理念非常简单:社会化编程。像 Twitter 一样,每个人都可以在 GitHub 上自己的各种代码,以时间流的形式展现自己的开发进展,可以关注自己感兴趣的项目和开发者,发表评论,了解其最新的开发动态。但所谓的社会化,还不仅仅局限于此,GitHub 最重要的特征是以一种社交化、民主化的形式进行代码协作。

社会化如何改变编程

The power of GitHub I believe is that it allows programmers to share their work with their colleagues, learn from others, and work together with others.

GitHub 的最大优势在于程序员可以与他人分享各自的项目,彼此互相学习,并协同合作。

这段对于 GitHub 最大优势的描述在我看来正好总结了社会化对软件编程带来的最大变化。

1. 更好的分享已有的代码和算法

很多时候,我们并不需要从头去重建一套问题的算法,开放的社会化网络为我们寻求现有的解决方案提供了一个极佳的发现渠道。像jQuery、PhoneGap、Appcelerator's Titanium 等这样的框架为 Web、App 开发带来了无比的便利,而它们就是从 GitHub 这样的社会化平台上成长起来的。

2. 为开发者提供一个最好的成长平台:

像所有成功的社交网络一样,GitHub 上早期聚集的众多优秀的项目产生了一种网络效应,吸引到更多的项目加入 GitHub 中来。对于入门者来说,这是一个最好的提高自己技能的平台。GitHub 的开放、社会化属性让用户倾向于关注更多的项目、查看更多的代码,看到一个优秀项目是如何一步步成熟的,而这正是开发者成长中相当重要的一个环节:查看优秀的代码,学习其他开发者如何解决特定的问题,了解一个项目该如何扩展。

3. 民主化的代码分支与派生:

在传统的开源项目中,对代码进行分支并不是一件得到鼓励的事,Linux、Unix、Android 都是分支过多造成系统分裂的典型例子。在很多项目中,要想对项目进行某个分支,必须征得项目管理者的正式同意才能进行。

而在 Git 这样的分布式版本管理系统中,每个用户在本地都可以拥有项目的全部代码和修改历史,开发者无需任何批准即可实际进行代码分支开发并 Push 到自己的分支项目中去。如果自己的分支取得了预想的效果,用户可以将变动的代码向原始开发者进行提交请求,而原始开发者可以对这一分支的实际效果进行评估,确定代码的有效性后合并入主开发线,而不用担心第三方的无组织分支会对项目本身造成危害(这一过程被成为 Pull Request)。这使 GitHub 上的第三方开发者用户对修改和分支现有项目的积极性得到了大大的提高。

GitHub 员工 Zach Holman

社会化编程不仅仅是程序员的福音