3dwoo大學簡體電腦書店
代碼管理核心技術及實踐
( 簡體 字)
作者:劉冉,肖然,覃宇類別:1. -> 程式設計 -> 綜合
出版社:電子工業出版社代碼管理核心技術及實踐 3dWoo書號: 48171
詢問書籍請說出此書號!
有庫存
NT售價: 295
出版日:1/1/2018
頁數:220
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787121328497 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1部分 基礎與傳統
第1章 代碼版本管理工具與系統 2
1.1 引言 2
1.2 代碼版本管理工具的歷史 3
1.2.1 第1代:本地代碼管理 3
1.2.2 第2代:中心服務器代碼管理 3
1.2.3 第3代:分布式代碼管理 4
1.3 常用的代碼管理工具 5
1.3.1 Perforce 5
1.3.2 Subversion 6
1.3.3 Git 6
1.3.4 Mercurial 7
1.3.5 Microsoft GVFS (Git Virtual File System) 7
1.4 常用的代碼管理系統 8
1.4.1 Virtual SVN Server 9
1.4.2 GitLab Server 9
1.4.3 Gerrit Server 10
1.5 從Subversion遷移到Git的常用工具和方法 11
1.5.1 SubGit 11
1.5.2 git-svn 12
1.5.3 手動 12
1.6 常用云端代碼管理系統 13
1.6.1 Sourceforge和Google Code 13
1.6.2 GitHub 14
1.6.3 GitLab和Bitbucket 14
1.6.4 Coding、碼云、阿里云Code 15
第2章 獨立小型團隊 17
2.1 啟程:團隊與項目 17
2.2 痛點與需求 18
2.2.1 如何選擇和搭建Subversion Server 18
2.2.2 定制代碼庫結構 20
2.2.3 分支策略 22
2.2.4 日常工作模式 24
2.2.5 備份策略 26
2.3 阿里云Code 27
2.3.1 將內網Subversion遷移到阿里云Code 28
2.3.2 權限管理 31
2.3.3 日常工作模式 32
2.3.4 備份方案 33
2.4 小團隊代碼管理的經典模型 34
第3章 傳統中大型團隊 36
3.1 傳統大型團隊的特點 36
3.2 獨立大型團隊在代碼管理上的痛點與需求 38
3.3 大型團隊代碼管理案例 39
3.3.1 代碼模塊依賴管理 41
3.3.2 建立相關運作機制 44
3.3.3 建立原子提交的紀律 46
3.3.4 建立持續集成守護機制 47
3.3.5 大型團隊代碼管理小結 51
3.4 大型團隊的代碼服務器遷移 51
第2部分 當前與流行
第4章 分布式中大型團隊 58
4.1 分布式中大型團隊的特點 58
4.2 分布式中大型團隊在代碼管理上的痛點與需求 59
4.2.1 離線代碼管理 60
4.2.2 在線代碼審查 61
4.2.3 對代碼進行分布式權限管理 66
4.2.4 對代碼進行分布式提交和集成 73
4.3 代碼倉庫拆分與集成 74
4.3.1 優化單代碼倉庫 77
4.3.2 代碼倉庫的拆分 87
4.3.3 代碼倉庫的集成 91
4.3.4 小結 122
4.4 分支策略 123
4.4.1 主干開發分支策略 124
4.4.2 應對并行開發 132
4.4.3 定制分支策略 147
4.5 代碼庫熱備份 150
4.5.1 服務器端熱備份方案 150
4.5.2 客戶端熱備份方案 151
4.6 案例:Android定制化系統開發 151
4.6.1 項目背景 151
4.6.2 項目及其代碼管理介紹 152
4.6.3 分支策略 155
4.7 多產品線 157
4.7.1 多產品線介紹 158
4.7.2 多產品線開發的困境 158
4.7.3 多產品線解決方案 158
4.8 超大型分布式團隊 166
第3部分 發展與未來
第5章 云時代微服務大型分布式團隊 172
5.1 云時代和微服務架構 172
5.2 Everything as Code(一切即代碼) 173
5.3 代碼管理團隊自治 175
5.3.1 圍繞團隊的代碼庫管理 177
5.3.2 圍繞服務的代碼庫管理 177
5.4 微服務架構下的代碼管理挑戰 179
5.5 微服務代碼管理實例 180
第6章 開源項目與開源社區 184
6.1 開源軟件 184
6.1.1 開源軟件的特點 185
6.1.2 開源軟件和社區 185
6.1.3 開源軟件和商業 186
6.1.4 開源軟件的代碼管理 186
6.2 開源社區中的開源項目 187
6.2.1 簡介 187
6.2.2 代碼管理模型 187
6.2.3 典型的大型分布式開源項目 189
6.3 企業中的開源項目 193
6.3.1 簡介 193
6.3.2 代碼管理模型 193
6.4 GitHub中的開源項目實踐 195
6.4.1 分支管理 195
6.4.2 分庫管理 197
6.4.3 把公開代碼庫轉換成私有代碼庫 203
6.4.4 GitHub的分支與復刻 205
參考文獻 207
名詞解釋 209
本書首先通過系統化的介紹和比較,從整體上講解了代碼管理工具和系統的歷史和發展。其次分別從小型團隊、中大型團隊、分布式大團隊、基于微服務的團隊及開源團隊的角度總結了代碼管理的核心技術及實踐經驗,其中包括不同類型的團隊對代碼管理工具和系統的選擇,以及代碼管理的流程、策略和技巧,還有一些代碼管理工具和系統的難點、痛點等,包括如何選擇分支策略、如何管理多產品線的代碼、代碼備份策略,以及如何在大型團隊中將代碼從Subversion遷移到Git等。本書可幫助讀者在現實中從團隊的大小及代碼管理模式是集中式還是分布式、開源還是閉源等各個角度去了解和思考代碼管理的核心技術和實踐經驗,從而幫助團隊建立起一套高效的代碼管理系統、策略和流程。本書的讀者對象主要是每天都需要使用代碼管理工具的程序員、代碼管理工具和系統的管理人員,以及團隊的技術領導人員。

我從2004年開始直到現在都在從事軟件開發工作,經歷了沒有代碼版本管理、代碼集中式管理,以及現在的分布式代碼管理,在這一過程中,我深刻體會到代碼管理在軟件開發中的重要性。近幾年,隨著軟件開發規模越來越大,開發團隊的規模也隨之擴大,出現了越來越多的分布式團隊,工程效率問題也越來越突出,比如QCon在2016年首次舉辦了“工程效率提升”專題。由此可見工程效率已經成為現代軟件業中一個無法讓人忽視的問題。
在工程效率這個范疇里,代碼管理占據了舉足輕重的地位,因為代碼是開發人員每天工作的主要對象和內容,如果不能有效地管理,必然會影響開發人員的工作效率。隨著團隊規模的擴大,代碼管理對團隊工程效率的影響也越來越大。而高效的代碼管理就像一根紐帶,把所有程序員有效地串聯起來,讓程序員可以更高效地協同開發、編寫代碼,完成軟件的開發工作。我們在咨詢工作中遇到的很多客戶都對使用代碼版本管理有各種問題和困惑。出于以上原因,我們覺得有必要基于經驗寫一本代碼管理實踐相關的圖書。鑒于時間有限,在本書中我們只選擇了自己認為核心的技術及實踐。
本書首先通過系統化的介紹和比較,讓讀者從整體上系統地了解代碼管理工具的歷史和發展。然后分別從小型團隊、中大型團隊、分布式大團隊、基于微服務的團隊及開源團隊的角度,總結了代碼管理的核心技術及實踐,其中包括不同類型的團隊對代碼管理工具的選擇、代碼管理的流程、策略和技巧,以及一些代碼管理工具和系統的難點和痛點等,可幫助讀者在現實中從團隊規模的大小、集中式還是分布式、開源還是閉源等角度去了解和思考代碼管理的實踐經驗。
全書共分3部分,其中第1部分主要系統化地介紹了代碼管理的歷史和分類,列舉并簡單比較了業界常用的各種代碼管理工具和系統,以及遷移工具等基礎知識,以幫助讀者更好地選擇代碼管理工具。主要以集中式代碼管理工具Subversion為主,并以一個虛擬小團隊的工作流程介紹小團隊的代碼管理實踐,最后總結了我們經歷過的傳統中大型團隊的代碼管理的核心技術及實踐。第2部分以介紹當前流行的分布式代碼工具Git為主,結合大型軟件項目和分布式開發團隊介紹了當前流行的分布式軟件開發中代碼管理的核心技術及實踐。第3部分主要介紹了正在興起的微服架構下的代碼管理實踐,以及一種越來越重要的軟件開發模式:開源模式下的各種代碼管理核心技術及實踐。
閱讀提示:本書不是介紹代碼管理工具的專業書籍,所以不會對書中提到的代碼管理工具或系統進行全面性和系統性的介紹,所以讀者需要對書中提到的代碼管理工具或系統全面和深入地進行學習,并閱讀與其對應的專業書籍,比如Subversion的Version Control with Subversion、Git的Pro Git等。如果讀者來自一個大型團隊,則可以略過第2章的獨立小團隊的內容,在剩下的章節中找到有用的知識點。如果讀者來自一個小型團隊,那么可以將第3、4、5章作為興趣閱讀,但是在嘗試里面的一些核心技術和實踐之前一定要認真思考,因為它們很可能并不適應讀者現在的團隊環境和規模。它們更像是一把雙刃劍,所以不妨將這些內容作為未來團隊擴張之前的知識儲備。
書中難免存在一些錯誤和不妥之處,敬請諒解并歡迎指出,我們將及時修改并發表在勘誤中,謝謝。

劉冉
2017年10月12號寫于成都
pagetop