本页使用了标题或全文手工转换

持續整合

维基百科,自由的百科全书
跳转至: 导航搜索
软件开发过程
核心行动
范式与模式
方法论与框架
支持行为
实践
工具
标准与知识体系

持續整合英语:Continuous integration,縮寫為 CI),一種軟體工程流程,將所有工程師對於軟體的工作複本,每天整合數次到共用主線(mainline)上。這個名稱最早由葛來迪·布區(Grady Booch)在他的布區方法英语Booch method中提出,但是他並沒有提到要每天整合數次。之後成為極限編程(extreme programming,縮寫為XP)的一部份。在測試驅動開發(TDD)的作法中,通常還會搭配自動單元測試。持續整合的提出,主要是為了解決軟體進行系統整合時面臨的各項問題,極限編程稱這些問題為整合地獄(integration hell)。

歷史[编辑]

葛來迪·布區於1994年出版的《物件導向分析設計與應用》(Object-Oriented Analysis and Design with Applications)第二版中,首次提出持續整合這個名詞。

1997年,肯特·貝克與Ron Jeffries建立了极限编程方法,將持續整合作為極限編程的一部份。

典範實務[编辑]

持續整合仰賴以下原則來達到目標。

  1. 維護一個程式碼庫
  2. 自動建置
  3. 讓建置時會自我測試
  4. 所有人每天至少提交一次
  5. 應該要建置每一個提交
  6. 讓建置維持快速
  7. 用線上環境的複本測試
  8. 讓取得最新發佈版本更容易
  9. 任何人都可以查看最後建置的結果
  10. 自動部署

成本與效益[编辑]

持續整合目的在產生以下效益如:

  1. 及早發現整合錯誤且由於修訂的內容較小所以易於追蹤,這可以節省專案的時間與成本。
  2. 避免發佈日期的前一分鐘發生混亂,當每個人都會嘗試為他們所造成的那一點點不相容的版本做檢查。
  3. 當單元測試失敗或發生錯誤,若開發人員需要在不除錯的情況下還原程式碼庫到一個沒有問題的狀態,只需要放棄一小部份的更改 (因為整合的次數頻繁)。
  4. 讓 "最新" 的程式可保持可用的狀態供測試、展示或發佈用。
  5. 頻繁的提交程式碼會促使開發人員建立模組化,低複雜性的程式碼。