官术网_书友最值得收藏!

1.2 使用GitHub會帶來哪些變化

GitHub的出現已使當今世界的軟件開發現場發生了翻天覆地的變化。在這場可稱之為革命的變革當中,中國也毫不例外地受到了影響。本章中,我們將簡單介紹將GitHub導入日常開發后會帶來哪些變化,供尚未正式使用GitHub的開發者們加以了解。

●協作形式變化

此前,用于輔助多人協同工作的軟件層出不窮,然而它們中的大部分又一個個退出了歷史的舞臺。在這類軟件中,群件(Groupware)和CRM(Customer Relationship Management,顧客關系管理)等脫穎而出,被全世界的商業人士所用。您所在的公司想必也導入了這類軟件。

但是,在以程序員為代表的軟件開發者之間,一直都沒有一個用來輔助多人協同編程的關鍵性軟件。因此軟件開發者們往往要將版本管理系統、BUG跟蹤系統、代碼審查工具、郵件列表、IRC等眾多工具組合在一起,以實現多人協作。

開發者們已對這種軟件開發協作模式司空見慣,然而GitHub的出現為其帶來了巨大變化。下面,我們就來介紹GitHub的幾項功能。

在開發者之間引發化學反應的Pull Request

在GitHub這個聚集了世界各地軟件開發者的地方,有個在過去絕對是無法想象的事正在飛速地進行著——素未謀面的開發者們隔著半個地球的距離共同開發軟件。我們不妨稱之為開發者之間的化學反應吧。這種事成為可能,都要歸功于一個名為Pull Request的功能(圖1.3)。

圖1.3 Pull Request的頁面

Pull Request是指開發者在本地對源代碼進行更改后,向GitHub中托管的Git倉庫請求合并的功能。開發者可以在Pull Request上通過評論交流,例如“修正了BUG,可以合并一下嗎?”以及“我試著做了這樣一個新功能,可以合并一下嗎?”等。通過這個功能,開發者可以輕松更改源代碼,并公開更改的細節,然后向倉庫提交合并請求。而且,如果請求的更改與項目的初衷相違,也可以選擇拒絕合并。

GitHub的Pull Request不但能輕松查看源代碼的前后差別,還可以對指定的一行代碼進行評論(圖1.4)。通過這一功能,開發者們可以針對具體的代碼進行討論,使代碼審查的工作變得前所未有地愜意。

圖1.4 針對某行代碼進行評論的實際截圖

對特定用戶進行評論

方便和快捷并不是Pull Request的專利。任務管理和BUG報告可以通過Issue進行交互。如果想讓特定用戶來看,只要用“@用戶名”的格式書寫,對方便會接到通知(Notifications)通知的相關知識將在第5章中詳細講解。,查看Issue(圖1.5)。由于也提供了Wiki功能,開發者可以輕松創建文檔,進行公開、共享。Wiki更新的歷史記錄也在Git中管理,可以讓用戶輕松更改。

圖1.5 寫有“@用戶名”的評論截圖

GitHub Flavored Markdown

在GitHub上,用戶所有用文字輸入的功能都可以用GitHub Flavored Markdown(GFM)語法進行描述。這個語法可以讓標記變得簡單,以此寫出的評論與文檔也會更容易理解。只記住一個語法便能在多種交流中使用,何樂而不為呢第3章和第5章還會有GFM的相關講解。?它還有一個很特別的功能,那就是可以在評論中添加文字表情,使用戶間的交流更加順利。

隨著GitHub的普及,正在有越來越多的服務開始兼容Markdown語法。

Column 專欄:還可以這樣寫!!

GitHub中可使用的描述方法并不止“@用戶名”一種。

輸入“@組織名”可以讓屬于該Organization(組織)的所有成員收到通知Organization的詳細內容將在第10章中進行講解。。輸入“@團隊名”可以讓該團隊的所有成員收到通知。這就是同時向多人發送通知的方法。

輸入“#編號”,會連接到該倉庫所對應的Issue編號。輸入“用戶名/倉庫名#編號”則可以連接到指定倉庫所對應的Issue編號。只要按照這類特定格式書寫便會自動創建鏈接。

多加利用上述這些功能,可以讓交流更有效率。

●能看到更多其他團隊的軟件

GitHub快捷的環境為開發者帶來的合作伙伴,并不只局限于自己團隊內部。只要將感興趣的倉庫添加至Watch中,就可以在News Feed查看該倉庫的相關信息(圖1.6)。

圖1.6 在News Feed中查看各倉庫信息

比如,將全公司共用代碼庫的倉庫添加到Watch中,便能在第一時間掌握最新版本的新功能或BUG修正的信息。當然,您也可以參與到討論中去,積極地提出意見。如有必要,還可以通過Pull Request提交代碼。

將隔壁團隊正在開發的倉庫添加到Watch中,就可以每天查看他們都在開發什么功能。一旦發現有用的功能或者庫,可以立刻運用到自己的開發團隊。如果能進一步交流,分割出共用的庫,從而建立起新的倉庫,便成了不同開發者團隊間協作的美談。

● 與開源軟件相同的開發模式

將GitHub運用到企業中,便會帶來與開源軟件開發相同的開發模式。已經熟悉開源軟件開發的開發者不必專門去學習企業獨自采用的工具,就可以直接加入到開發行列。

反過來說,只要在企業中運用GitHub,即便是剛剛入職成為程序員的應屆畢業生,也可以很快投身到開源軟件開發的世界中。

也就是說,開源軟件世界的軟件開發與企業內的軟件開發將不再有隔閡。在某些企業中,這兩者的區別恐怕就是倉庫公開與否的區別了。

主站蜘蛛池模板: 碌曲县| 克东县| 石泉县| 略阳县| 富宁县| 通化县| 巴林右旗| 舞阳县| 壤塘县| 黑水县| 鲁甸县| 普定县| 兴仁县| 宜川县| 临澧县| 沅陵县| 北碚区| 德格县| 镇远县| 和田市| 射洪县| 南平市| 泾源县| 衡阳市| 平湖市| 措美县| 定陶县| 嘉定区| 高陵县| 新丰县| 伊金霍洛旗| 杭锦旗| 纳雍县| 柳林县| 克什克腾旗| 林周县| 四子王旗| 封开县| 金平| 厦门市| 六枝特区|