GitHub:代碼是程序員溝通最直接的手段

jopen 12年前發布 | 18K 次閱讀 Github

GitHub:代碼是程序員溝通最直接的手段

        如果不是 Andreessen horowitz 的投資,估計 GitHub 很難被福布斯、CNN、紐約時報等傳統媒體注意到。普通大眾之前不了解這個工具,是因為它距離記者的世界太遠了——GitHub 是一個程序員所使用的托管項目的服務。

        但在一些程序員眼里,它不僅是托管項目的地方,還是“開源”項目的大本營,而且是提高程序員“技術水平”和“技術品味”的地方,更是一個程序員社交的地方。

        目前托管在 GitHub 上項目的數量為 3263005 個,包括 Linux 的內核、Ruby on Rails、jQuery、Apache 和最近流行的 Node.js 等等程序員所熟知的開源項目和框架。

        為何 GitHub 如此受歡迎?

        優秀的項目管理工具

        Artodia 所繪制的圖簡單而清晰,展示了程序員使用 GitHub 管理項目的一般流程:

GitHub:代碼是程序員溝通最直接的手段

  • 首先,從原本的代碼倉庫(repository)中拷貝一份出來,創建一個分支(fork);
  • 然后,你可以在自己的分支下修改代碼;
  • 當你的修改完成之后,可以將自己修改過的分支與原來的代碼倉庫中“合并”在一起。“合并”并不是將自己的代碼復制粘貼,覆蓋原來的代碼倉庫,而是只更新那些修改過的部分,代碼倉庫其他部分不會收到影響;
  • 而若原本的代碼倉庫中發生了變動,這些變動也可以更新到程序員的分支中。

        這意味著:

  • GitHub 允許程序員方便的創立分支,實驗自己的新想法,而不必擔心自己的實驗會影響原本正在開發中的產品。
  • 程序員可以通過簡單的命令,讓自己的分支與代碼倉庫的代碼保持一致,不必擔心版本混亂的問題;

        程序員創建一個分支的時候,實際上是將原本的代碼倉庫拷貝出來,一份存放在 GitHub 的個人賬號下,一份保存在自己的電腦中。這意味著:

  • 程序員工作不必依賴網絡,即便是在脫網的環境下,也能夠順利工作,只要自己的電腦還有電;
  • 參與項目的程序員,每人都有一份項目代碼的備份,能夠避免代碼丟失。

        GitHub 能夠讓程序員毫無阻礙、隨時隨地地實驗自己的新想法,而且不會影響項目本身,這是它吸引大量程序員和開源項目入駐的原因。

        開源自由的文化

        重視開源,是 GitHub 的產品、公司以及社區的重要特征。不但有名的開源項目入駐 GitHub,其本身也完全由開源技術打造。

        GitHub 公司內部的文化相當崇尚開源精神,這個精神的核心是自由和平等。公司會在官方博客上歡迎每一位新加入的員工,配上大圖和一句話簡介,而且他們會讓員工挑選自己喜歡工作的地點,不管辦公室還是在家,或是其它。而且,公司的管理方式也非常寬松與自由。

        Wanstrath 告訴《華爾街日報》, 許多員工感覺沒有管理層的時候,自己能夠更容易獲得成長。一直以來,GitHub 是一個沒有 “老板”的公司,雖然 Wanstrath 的職位是 CEO,但他一直堅持名片上只印自己的名字。在 GitHub 工作,員工們一起討論項目的優先級,不必接受來自管理層的命令,每個員工都可以自由加入自己喜歡的項目。

        Preston-Werne 曾撰文一篇,表達:“開源(幾乎)是一切”的觀點:

  • 開源代碼是對個人和公司而言,是優秀的廣告,擁有很強的宣傳力;
  • 當你的開源項目流行開來,并吸引了很多人的注意,你會得到眾人的幫助,他們會幫你把工作完成得又快又好;
  • 如果你開放了一個有用的代碼,你會吸引聰明的人的注意,他們會根據你的代碼,創建一個分支;他們也可能會直接向你提意見;
  • 開源代碼是最好的簡歷,它證明你的技術實力;
  • 開源代碼能夠留住聰明的人;
  • 將自己的代碼開源,可以看到別人是如何使用自己的產品的,他們會如何改進,讓你認識到產品應該如何改進;
  • 將代碼開源可以減少重復做功。

        程序員的交流

        GitHub 吸引越來越多優秀的開源項目進駐。每個程序員能夠瀏覽這些優秀開源項目的代碼,從而提高自己的水平。

        在 GitHub 上,你可以通過 GitHub 自身的“頁面”功能,將自己的想法整理出來,給其他人看。而他人也能夠直接提交 issue,提出自己的意見,其它人則在 issue 下討論問題。你還可以通過 Follow 的功能,跟蹤其它項目最新的情況。

        當然,程序員之間的交流,最直接的就是“用產品說話”。如果你覺得一個產品原先的想法不是很好,但提意見又遭到反駁,那么你可以直接根據原來的版本,創建屬于自己的分支,開發出屬于自己的版本,實現自己的想法。

        Mac 上面有名的文本編輯器 Notational Velocity(簡稱 NV)是一個有趣的案例。自 2002 發布第一版以來,它就以簡潔的界面,方便易用而受到用戶的歡迎。不過,NV 之前一直缺乏用戶需的新特性,比如全屏模式、標記語言 MarkDown 語言等等。

        為了能夠實現自己的想法,2010 年不少程序員將 NV 的源代碼拷貝出來,創建自己的分支,具體可以看這張圖片:

GitHub:代碼是程序員溝通最直接的手段

        現在由 Brelt Terpstra 開發的分支版本 nvALT 2.0 是最有名的分支,它基本實現了當時 Terpstra 當時之所以創建分支的目標——成為一個簡潔的書寫、出版應用。有趣的是,這些分支也促進了 NV 的改進。

        從 NV 的例子中,除了能看出 GitHub 上,程序員能夠更好的表達自己的想法以外,還能看出程序員能夠很方便快速的參與一個開源項目:一切不過“Fork”一下而已。

        總結

        GitHub 原本的口號是“Git 代碼托管(git repository hosting)”,現在變為“Social Coding(社交化編程)”,更加符合自身的定位。

        代碼,是程序員溝通的最直接的手段。

        附上 2007 年 10 月 19 日,GitHub 第一次 Commit 的記錄,由 GitHub 創始人之一 Chris Wanstrath  發出:

GitHub:代碼是程序員溝通最直接的手段

        題圖來自 felixtriller

來自: ifanr 愛范兒

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!