持續集成是一種軟件開發實踐,即團隊開發成員常常集成他們的工做,經過每一個成員天天至少集成一次,也就意味着天天可能會發生屢次集成。每次集成都經過自動化的構建(包括編譯,發佈,自動化測試)來驗證,從而儘早地發現集成錯誤。java
Jenkins是一個用Java編寫的開源的持續集成工具。在與Oracle發生爭執後,項目從Hudson項目復刻。 Jenkins提供了軟件開發的持續集成服務。它運行在Servlet容器中(例如Apache Tomcat)。它支持軟件配置管理(SCM)工具(包括AccuRev SCM(英語:AccuRev SCM)、CVS、Subversion、Git、Perforce(英語:Perforce)、Clearcase(英語:Clearcase)和和RTC(英語:Rational Team Concert)),能夠執行基於Apache Ant和Apache Maven的項目,以及任意的Shell腳本和Windows批處理命令。Jenkins的主要開發者是川口耕介。Jenkins是在MIT許可證許可證下發布的自由軟件。 能夠經過各類手段觸發構建。例如提交給版本控制系統時被觸發,也能夠經過相似Cron的機制調度,也能夠在其餘的構建已經完成時,還能夠經過一個特定的URL進行請求。 apache
測試驅動開發(TDD)是極限編程的重要特色,它以不斷的測試推進代碼的開發,既簡化了代碼,又保證了軟件質量 編程
DRY是「Don't Repeat Yourself」的縮寫。不要重複本身運維
意思是說,在一個設計裏,對於任何東西,都應該有且只有一個表示,其它的地方都應該引用這一處。工具
這樣須要改動的時候,只需調整這一處,全部的地方就都變動過來了。測試
單一職責原則(SRP:Single responsibility principle)又稱單一功能原則,它規定一個類應該只有一個發生變化的緣由。該原則由羅伯特·C·馬丁(Robert C. Martin)於《敏捷軟件開發:原則、模式和實踐》一書中給出的。馬丁表示此原則是基於湯姆·狄馬克(Tom DeMarco)和Meilir Page-Jones的著做中的內聚性原則發展出的。spa
開閉原則(OCP)是面向對象設計中「可複用設計」的基石,是面向對象設計中最重要的原則之一,其它不少的設計原則都是實現開閉原則的一種手段。對於擴展是開放的,對於修改是關閉的,這意味着模塊的行爲是能夠擴展的。當應用的需求改變時,咱們能夠對模塊進行擴展,使其具備知足那些改變的新行爲。也就是說,咱們能夠改變模塊的功能。對模塊行爲進行擴展時,沒必要改動模塊的源代碼或者二進制代碼。模塊的二進制可執行版本,不管是可連接的庫、DLL或者.EXE文件,都無需改動。設計