1.什么是xp編程(極限編程):
XP是勇氣,交流,反饋和簡單。
XP是軟件開發過程中的紀律,它規定你:必須在編程前些測試,必須兩個人一起編程,必須遵守編程規范……。
XP是把最好的實踐經驗提取出來,形成了一個嶄新的開發方法。
2. XP適用范圍:
極限編程,也被叫做XP,適用于中小型團隊在需求不明確或者迅速變化的情況下進行軟件開發的輕量級方法學。
推薦使用范圍為10人左右的團隊
3.XP工作模式體現:
一、工作環境
二、立式晨會
三、結對編程
四、測試驅動開發
五、重構
六、持續集成
七、頻繁地發布小版本
4.結對編程:
開發任務會細化分解為很多Task,一個Task的開發周期一般不超過2天。
每個Task的Owner會尋找一個Partner進行結對開發。
Task開發的次序由程序員們自己協商。他可以先作為Partner和其他Owner一起開發某個Task,然后再找另一個程序員作為Partner來共同開發自己承擔的Task。
結對開發時,Task的Owner主要負責編碼, Partner負責在一旁看Owner編程并在其編寫有錯誤提出自己的意見,當其遇到困難時一起討論、互相幫助完成任務
5.測試驅動開發:
在動手編碼之前,必須先寫功能測試腳本、單元測試腳本。
寫好測試腳本后,開始編碼、重構、運行單元測試、集成、運行功能測試,以此循環
6.重構:
減少重復設計,優化設計結構,提高技術上的重用性和可擴展性。
XP提倡毫不留情的重構。
任何人可以重構任何代碼,前提是重構后的代碼一定要通過100%測試單元測試后才能被Check-in
7.持續集成:
測試先行是持續集成的一個重要前提。
持續集成指不斷地把完成的功能模塊整合在一起。目的在于不斷獲得客戶反饋以及盡早發現BUG。
隨時整合,越頻繁越好;集成及測試過程的自動化程度越高越好。
每次只有一個新增加部分在整合,而且必須運行功能測試
8.頻繁地發布小版本:
發布過程應該盡可能地自動化、規范化。
不斷地發布可用的系統可以告訴客戶你在做正確的事情。
客戶使用發布的系統,可以保證頻繁地反饋和交流。
保證客戶有足夠的依據調控開發過程(增加、刪除或改變需求)。
降低開發風險。
隨著開發的推進,發布越來越頻繁。
所有的發布都要經過功能測試。
9.XP的關鍵詞:
測試優先原則
結對編程
持續集成
頻繁小版本
不斷重構
立式晨會
交流和溝通,“只有沒有溝通不夠的項目,沒有溝通過度的項目”
分解任務、制定計劃是關鍵一環
10.XP作用:
一、平穩的工作效率
平穩的工作效率指團隊和個人在很長的時期內保持一定的開發效率。
保證了項目速度和計劃過程的有效性和準確性;
保證了程序員可以持續地完成任務,團隊可以持續地向客戶交付可運行的系統;
結對編程已經加大了工作強度,并且和其它XP的規則一起提高了工作效率,使少加班和維持平穩的工作效率可能而且可行。
提倡平穩的工作效率,體現了XP以人為本的價值觀。
二、高質量
測試優先、并堅持單元測試、每個版本進行功能測試的原則是保證了高質量的一個關鍵;
充分的溝通交流進一步減少了寫低質量代碼的風險;
結對開發模式在互相學習中會產出高質量的代碼
三、Open
結對開發、每一處修改都需要測試等等規則使得實現集體擁有代碼, “我們”的代碼,而不是“我”的代碼;
充分的溝通交流可以將每個人的知識、思想共享;
讓每個人都知道項目的設計、計劃、進展情況等信息;
大家都知道每個人都在做什么和怎么做;
四、對人的挑戰
暴露自己的缺點,人的本性
懶惰
自尊
封閉
……
克服自己的缺點
高效率
不怕告訴別人自己不會,樂于問人
懂得尊重別人,樂于幫助別人
……
11.受益于XP:
一個曾經在XP模式下工作過的人,回到傳統開發模式下才深刻體會到XP給他帶來的財富。
在傳統開發模式下他堅持每天有計劃、總結,堅持測試驅動開發……
發現他總是按時下班甚至提前下班,可是同事們越來越多且越來越晚下班,是自己不認真?是同事們愛表現?……
都不是!!
是XP給他帶來的受益終身的開發方式,他的同事bug量遠遠比他多,他只有不多的幾個;同事們任務總是延時,而自己都是輕松按時完成……