如果你用GitHub,可以這樣提高效率

轉載於:JerryC | 搬磚碼農

一年時間我們從幾個人的開發團隊發展到十幾人的團隊,最初的我們只有兩個後端加兩個前端,而且其中三個還是實習生。
但今時不同往日,現在我們有前端、後端、測試、運維、設計、產品、交互,成功集齊了七個兵種,可以召喚神龍,賜我們一個敏捷的開發團隊。
作爲一個敏捷性的開發團隊,我們要保持快速的迭代速度的同時保證高質量的代碼,這是一個艱鉅的過程。


版本管理 — Git~Hub

「開始的開始,我們還是孩子」(出自《北京路的日子》)

開始的開始,我們還是用着SVN,代碼存儲在公司的服務器中,只有一個分支,提交代碼無需審覈,無需單元測試。因爲我們只有幾個人……

作爲一個有逼格的團隊,後來我們用上了Git,並且把代碼遷移到Coding中去,然後引入了名爲「git flow」的工作流,關於這個工作流可以參考我們老大的文章:「企業級開發:Gitflow Workflow工作流」

Coding真的是一款很不錯的產品,可稱爲業屆良心。

爲什麼當初沒有直接用GitHub,因爲私有倉庫貴啊……

但,作爲一個有逼格的團隊,我們是不會滿足於此的。Coding自身的服務很不錯了,但是相對於GitHub的一些專業的第三方服務,缺少了那麼一些競爭力。我們當時想接入持續集成的服務,但是無奈找不到支持Coding的第三方服務,代碼Review也沒有一個更讓我們舒心的體驗,我承認我們要求比較高。再加上Coding的幾次down機,其中一次是我們準備發佈新版本的那一個下午…..

終於有一天,我們老大兩眼發光的跟我們說:我們要買GitHub的服務了,申請到資金了。

於是乎,我們浩浩蕩蕩的遷移代碼庫。

遷移到Github之後,我們開始接入各方工具,提高我們的工作效率(錢可不能白花啊)。

武裝GitHub — ZenHub

ZenHub
Project management inside GitHub
Transform your GitHub issues

正如Zenhub所說,這是一款項目管理工具,嵌入式集成到GitHub中。作爲插件,它的UI完全迎合了GitHub,以至於你難以分別出哪些功能是GitHub的,哪些功能是Zenhub的。

如果你用了ZenHub,它會提供給你:

  1. 一套任務面板,給不同的任務提供不同的泳道,直觀的展示每個任務的進度。於是乎我拋棄了Teambition。
  2. 一套個人的Todo List,如果有一個issue或者一個PR需要你來處理,但你現在沒有空,你可以把它添加到Todo List中,於是乎我又拋棄了Wunderlist。
  3. 一套項目圖標與統計,結合着Github自帶的項目圖表,這個提供更多維度的數據,但是個人感覺意義不太大。
  4. 再加一些小彩蛋,由於它是作爲插件形式嵌入到Github中的,所以會在很多地方提供一些這樣那樣的按鈕,等着你去發現了。

持續集成 — TravisCI

TravisCI
Test and Deploy with Confidence
Easily sync your GitHub projects with Travis CI and you’ll be testing your code in minutes!

不知道你有沒有好奇Github上的一些明星項目的這樣的標籤:

Build Status

這個是Express的構建狀態的標籤,格式是svg,它會根據Express的構建狀態改變。如果Express的某一次提交是沒有通過TravisCI構建的,他會變成 build failing。(有心人可以點擊這個標籤進去看看。)

我們加入TravisCI主要目的是用於自動化的單元測試,每一次Commit與PR,TravisCI都會從Github倉庫中拉取代碼,然後執行我們寫好的單元測試,通過與否會通過狀態展示出來。
合併的人如果看到build failing,就不會合並了,這在一定程度上保證與提高了代碼的質量。

TravisCI除了可以用來自動化單元測試,還可以自動化部署,可以設定,通過測試之後,就自動部署上線。

TravisCI對於公開倉庫是免費的,但對於私有倉庫是要收費的,而且價格也不便宜。
如果你覺得貴,這裏還有一個可以代替的:CircleCI
TravisCI可以做的,它都可以做得到,而且會提供一個免費的私有倉庫。

代碼Review — Reviewable

Reviewable
GitHub code reviews done right

如果你覺得Github自帶的Review還不夠滿足的話,可以嘗試一下這款產品。
當你提交一個PR之後,在你的PR中,會在你的評論框中嵌入這樣的按鈕

點擊進入Reviewable的頁面對應的PR進行review。

並且一個PR沒有完成Review之前,是會一直被警告,讓你警惕進行合併。

代碼覆蓋率 — Coveralls

Coveralls
We help you deliver code confidently by showing which parts of your code aren’t covered by your test suite. Free for open source repos. Pro accounts for private repos. Instant sign up through GitHub and Bitbucket.

在明星項目Express的Github項目主頁中,你可以看到這樣的標籤:

Coverage Status

結合着TravisCI的自動化單元測試,加上這個測試覆蓋率,提高你對項目的信心。

快速進行溝通 — Slack

Slack
A messaging app for teams who see through the Earth

相信大部分團隊都是使用微信進行溝通的,
再一次,最爲一個有逼格的團隊,我們使用了Slack進行團隊上的溝通,在Slack上,你可以創建頻道(Channel),不同Channel不同的人進行着不同的話題溝通。我們有設計的Channel、產品的Channel、開發的Channel。我最欣賞的是,Slack可以接入很多第三方服務,Github是其中一個。

接入Github之後,項目的每一個Commit、PR之類的動態信息,會被推送到聊天室中。

助你時刻掌控項目動態。

Slack接入Githu只是其中的一個小功能而已,更強大的在於Slack本身,利器如何用,待君慢慢體會。

,Slack有一個硬傷:不會科學上網,用不了呀。

最後

再一次,作爲一個有逼格的團隊,我們依然不會滿足現
狀。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章