TDD - Test Driven Development
測試驅(qū)動開發(fā),英文全稱Test-Driven Development,簡稱TDD,是一種不同于傳統(tǒng)軟件開發(fā)流程的新型的開發(fā)方法。它要求在編寫某個功能的代碼之前先編寫測試代碼,然后只編寫使測試通過的功能代碼,通過測試來推動整個開發(fā)的進行。這有助于編寫簡潔可用和高質(zhì)量的代碼,并加速開發(fā)過程。
Pair Programming
結(jié)對編程技術(shù)是一個非常簡單和直觀的概念:兩位程序員肩并肩地坐在zhi同一臺電腦dao前合作完成同一個設(shè)計。同一個算法、同一段代碼或同一組測試、與兩位程序員各自獨立工作相比.結(jié)對編程往往只需花費大約一半的時間就能編寫出質(zhì)量更高的代碼, 但是,人與人之間的合作不是一件簡單的事情——尤其當(dāng)人們都早己習(xí)慣了獨自工作的時候、實施結(jié)對編程技術(shù)將給軟件項目的開發(fā)工作帶來好處.只是這些好處必須經(jīng)過縝密的思考和計劃才能真正體現(xiàn)出來。
通常認為結(jié)對編程由于有實時審查可以有效降低錯誤率;結(jié)對的相互交流則可以拓寬視野,拓展思路;由于工作是結(jié)對的,對新成員的融入團隊也有幫助;在時間上能加快開發(fā)進度。
Continuous Integration
持續(xù)集成簡單來說持續(xù)集成就是頻繁地(一天多次)將代碼集成到主干。每次集成都通過自動化的構(gòu)建(包括編譯、發(fā)布、自動化測試)來驗證,從而盡快地發(fā)現(xiàn)集成錯誤。
持續(xù)集成的目的和好處:
讓產(chǎn)品可以快速迭代,同時還能保持高質(zhì)量。它的核心措施是,代碼集成到主干之前,必須通過自動化測試。只要有一個測試用例失敗,就不能集成。持續(xù)集成并不能消除 Bug,而是讓它們非常容易的發(fā)現(xiàn)和改正。
快速發(fā)現(xiàn)錯誤,每完成一點更新,就集成到主干,可以快速發(fā)現(xiàn)錯誤,定位錯誤也比較容易;防止分支大幅偏離主干,如果不經(jīng)常集成,主干又在不斷更新,會導(dǎo)致以后集成的難度變大,甚至難以集成。
Collective Code Ownership
團隊中經(jīng)常有成文或者不成文的規(guī)定,那就是一位開發(fā)成員只對單獨的一個或者幾個代碼文件負責(zé)。但是collective code ownership,如它的名字暗示的,不管是為了完成一項開發(fā)任務(wù),或者修復(fù)一個代碼缺陷,甚至改進整個代碼的結(jié)構(gòu),每一位團隊成員都被允許,且有責(zé)任在需要的情況下去修改任何代碼文件。
這種模式能夠降低成員缺席導(dǎo)致開發(fā)進度落后的風(fēng)險,增加整體設(shè)計的可信度,幫助技術(shù)知識更快地擴散并且鼓勵開發(fā)成員更加團結(jié)地對代碼質(zhì)量負責(zé)。
Refactoring
重構(gòu)地含義是,改進現(xiàn)有代碼內(nèi)部結(jié)構(gòu)的同時,保證其最終對外的功能不變。常見的代碼重構(gòu)技術(shù)有抽象方法,引入新參數(shù)等。
重構(gòu)能夠增加代碼的可維護性,易讀性,它也會促進開發(fā)成員去思考軟件為何如此設(shè)計以及設(shè)計是否合理。同時,重構(gòu)會促進代碼形成可復(fù)用的模塊或者模板,提高代碼開發(fā)效率。