那個 Code 不是我弄壞的!
持續整合與版本控制策略
Poy Chang
版本控制策略
為組織尋找適合的協作機制
版本控制策略
Local Computer
Checkout Version Database
version 3
version 2
version 1
file
本機版本控制系統
▪ 複製整個專案資料夾,進行資料備份
▪ 通常會用備份時間以示區別
▪ 簡單、快速
版本控制策略
集中化版本控制系統
▪ 集中管理/保存所有檔案的修訂版本
▪ 管理員可以掌控開發者的權限
▪ 頻繁進出版控伺服器
Computer A
Computer B
file
Checkout
file
Checkout
Central VCS Server
Version Database
version 3
version 2
version 1
Computer A
Version Database
file
version 3
version 2
version 1
Computer B
Version Database
file
version 3
version 2
version 1
Server Computer
Version Database
version 3
version 2
version 1
分散式版本控制系統
▪ 開發者有獨立/完整的版控
▪ 可離線處理版控作業
▪ 較好的分支及合併的能力
版本控制策略
Git Flow 分支開發流程和策略
master
永遠處在 Production Ready 狀態
develop
最新的開發成果,並為下次可發佈的開發狀態
主要分支
feature branches
開發新功能都先從 develop 開分支出來,於開發完成後合併回 develop
release branches
即將進行釋出的版本分支,不開發新功能,只修正 bugs
從 develop 開分支,完成後合併回 master 和 develop 分支
hotfix branches
無法流到下次 release 時釋出,要馬上修正 master 進行上線的情況
從 master 開分支,完成後合併回 master 和 develop
支援性分支
http://nvie.com/posts/a-successful-git-branching-model/
分析程式碼品質
用自動化加速品質循環
DEVELOP
TEAM
OPERATION
TEAM
BUILD OPERATE
MONITOR
DEPLOYCODE
TEST
DevOps Cycle
RELEASEPLAN
CODE REVIEW
BY COMPUTER
CODE REVIEW
BY OURSELF
VSTS + SonarQube
自動化品質分析
DEMO
如何在 VSTS 使用 SonarQube
進行程式碼品質分析
https://poychang.github.io/how-to-config-sonarqube-work-with-vsts/
DEMO

那個 Code 不是我弄壞的! 持續整合與版本控制策略