天天看點

極限程式設計和極限程式設計方法采用的有效的開發實踐

極限程式設計是靈活程式設計中最負盛名的一個,其名稱中“極限”二字的含義是指把好的開發實踐運用到極緻。目前,極限程式設計已經成為一個典型的開發方法,廣泛應用于需求模糊且經常改變的場合。

下面簡述極限程式設計方法采用的有效的開發實踐。

  1. 客戶作為開發團隊的成員

    必須至少有一名客戶代表在項目的整個開發周期中與開發人員在一起緊密地配合工作,客戶代表負責确定需求回答開發人員的問題并且設計功能驗收測試方案。

  2. 使用使用者素材

    所謂使用者素材就是正在進行的關于需求的談話内容的助記符。根據使用者素材可以合理地安排實作該項目需求時間。

  3. 短傳遞周期

    每兩周完成一次的疊代過程實作了使用者的一些需求,傳遞出目标系統的一個可工作的版本。通過向有關的使用者示範疊代生成的系統,獲得他們的回報意見。

  4. 驗收測試

    通過執行由客戶制定的驗收測試方案來捕獲使用者素材的細節。

  5. 結對程式設計

    結對程式設計就是由兩名開發人員在同一台計算機上共同編寫解決同一個問題的程式代碼,通常一個人編碼,另一個人對代碼進行審查與測試,以保證代碼的正确性與可讀性。結對程式設計是加強開發人員互相溝通與評審的一種方式。

  6. 測試驅動開發

    極限程式設計強調“測試先行”。在編碼之前應該首先設計好測試方案,然後再程式設計,直至所有測試都獲得通過之後才可以結束工作。

  7. 集體所有

    極限程式設計強調程式代碼屬于整個開發小組集體所有,每個小組成員都有更改代碼的權利,每個成員都對全部代碼的品質負責。

  8. 持續內建

    極限程式設計主張在一天之内多次內建系統,而且随着需求的變更,應該不斷地進行回歸測試。

  9. 可持續的開發速度

    開發人員以能夠長期維持的速度努力工作。極限程式設計規定開發人員每周工作時間不超過40h,連續加班不可以超過兩周,以免降低生産率。

  10. 開放的工作空間

    極限程式設計項目的全體參與者(開發人員、客戶等)一起在一個開放的場所中工作,項目組成員在這個場所中自由地交流和讨論。

  11. 及時調整計劃

    計劃應該是靈活的、循序漸進的。制定出項目計劃之後,必須根據項目進展情況及時進行調整,沒有一成不變的計劃。

  12. 簡單的設計

    開發人員應該使設計與計劃要在本次疊代過程中完成的使用者素材完全比對,設計時不需要考慮未來的使用者素材。在一次次的疊代過程中,項目組成員不斷變更系統設計,使之相對于正在使用的使用者素材而言處于最優狀态。

  13. 代碼重構

    所謂代碼重構就是在不改變系統行為的前提下,重新調整和優化系統的内部結構,以降低複雜性、消除備援、增加靈活性和提高性能。應該注意的是,在開發過程中不要過分依賴重構,特别是不能輕視設計,對于大、中型系統而言,如果推遲設計或者幹脆不做設計,将造成一場災難。

  14. 使用隐喻

    可以将隐喻看作是把整個系統聯系在一起的全局視圖,它描述系統如何運作,以及用何種方式把新功能加入到系統中。

繼續閱讀