持續集成的魅力:工具推薦


什么是持續集成?Continuous Integration, CI

它是一種軟件項目管理方法,依據資產庫(源碼,類庫等)的變更自動完成編譯、測試、部署和反饋。

持續集成的背景

  在沒有CI的情況,開發人員進行開發,測試人員測試,最后支持人員進行部署和代碼的發布。

  這是一種線性的開發流程,一旦測試通不過,可能最后就沒辦法交付產品。

  有句話說得對,目前軟件開發最大的難度在於:

  1 確定軟件的需求

  2 確定軟件的剩余量

 

  無法確定軟件的需求,是因為需求隨着開發的落實在不斷的變化。最開始用戶不知道自己想要什么,你給了他一種方案,他便在這種方案基礎上想象更多,於是無論提交什么產品,都不會是用戶最終想要的。

  無法確定軟件的剩余量,是因為我們無法像造汽車一樣,看到整個開發過程。也許生於的20%工作,要花費80%的時間。

  

  持續集成采用”水滴石穿、分而治之“的思想,既然我們不能馬上交付一個可用的產品,為什么不隨時提供一個可以使用的產品呢。

  通過上面的結構圖,就可以看到CI持續集成的基本思想。

  就是程序員在向版本庫中提交代碼后,CI持續集成服務器自動發現或者定時發現變更,依據這些源碼,重新構建產品的編譯、測試、審查、部署和反饋過程。

如何做到持續集成

  根據上面的思想,持續集成工具需要做到下面幾個功能:

  1 自動構建:要求無人值守,如果人工來操作,那就沒有持續集成的必要了。

  2 發現版本庫的變更:通過輪詢或者定時,或者程序員使用命令,處罰持續集成發現版本庫的變更

  3 反饋機制:在出現問題時,能及時的把問題反饋給正確的人(提交者、測試者、管理者)

  4 回滾:在出現問題后,擁有回滾到可交付的能力。

  5 純凈的構建環境:每一次都應該把之前的環境刪除干凈,讓每一次構建都是一個新的構建。

  6 完善的集成功能:代碼的測試,審查都應該做到完善。如果單純的利用它做持續的編譯,那就是大材小用了。

  

  利用什么工具都是其次的,關鍵是要注意養成持續集成的習慣,軟件的開發流程以及代碼的編寫,都應該注意CI的風格。

  比如編寫具有單元測試的代碼,命名符合代碼審查的規范等等。

  另外在持續集成的時候,還需要注意:

  1 為了避免每次過多出現問題的構建,開發者在提交代碼的時候,最好在本地獨立的構建一次。可以自行運行構建腳本,模擬構建。

  2 由於數據庫與編碼的分離,最好把數據庫相關的DDL\DML等腳本一起放入版本庫中,這樣CI進行構建的時候,可以連同數據庫一起重新構建。

推薦的工具資料

  【1】《持續集成:軟件質量改進和風險降低之道》

  【2】持續集成:http://www.martinfowler.com/articles/continuousIntegration.html

  【3】CI持續集成工具:

    Apache Continuum:  http://continuum.apache.org/

    CruiseControl:  http://cruisecontrol.sourceforge.net/

    Hudson:  http://hudson-ci.org/

    Jekins:  http://jenkins-ci.org/

    Luntbuild:  http://jenkins-ci.org/

  【4】構建腳本:

    Ant:  http://ant.apache.org/

    Maven:  http://maven.apache.org/

  【5】測試:

    JUinit

    DbUnit

    Floyd

    HtmlUnit

    JWebUnit

    SQLUnit

  【6】自動化審查:

    CheckStyle:  http://sourceforge.net/projects/eclipse-cs/files/

    JavaNCSS:  http://mojo.codehaus.org/javancss-maven-plugin/

    JDepend:  http://www.clarkware.com/software/JDepend.html

    PMD:  http://pmd.sourceforge.net/

    Siminan:  http://www.redhillconsulting.com.au/products/simian/

  【7】反饋

    Jabber:  http://www.jabber.org/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM