版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
探索結(jié)對編程
摘要:結(jié)對編程(PairProgramming)是極限編程(ExtremeProgramming)的十一個實踐之一,是團隊設(shè)計的基礎(chǔ)。它是指兩個開發(fā)人員共用一臺計算機,其中一個人負責具體細節(jié),另一個人關(guān)注整體,并且這兩人的角色可以隨時交換。本文通過項目實踐,分析結(jié)對編程的優(yōu)點和不足,并優(yōu)化結(jié)對編程使其更具效率。結(jié)對編程的優(yōu)勢在于:改進設(shè)計質(zhì)量、減少程序缺陷、降低人員風險、提高技術(shù)技能和團隊合作精神。
關(guān)鍵詞:結(jié)對編程;極限編程;代碼
ExplorePairProgramming
HOUHai-ke,YEJing-lou
(LiaoningTechnicalUniversity,ElectronicsandInformationEngineeringDepartment,Huludao125105,China)
Abstract:PairprogrammingisoneofthetwelveExtremeProgramming‘sefficientexperiences,itmeansthattwoprogrammersdevelopsoftwaresidebysideatonecomputer.Usinganexperiment,analysisthePairProgramming‘smeritandtheinsufficiency,AndoptimalPairProgrammingcausesittohavetheefficiency.ItpresentsthatPairProgrammingcanbringeconomicprofit,improvedesignquality,reducedefects,decreasestaffingrisk,enhancetechnicalskills,improveteamcommunications.
Keywords:PairProgramming;Extremeprogramming;Code
1引言
隨著時代的發(fā)展,科技的不斷更新,特別是計算機的普及和用戶需求的不斷變化,我國軟件工業(yè)還處在起步階段,規(guī)模較小,傳統(tǒng)的軟件工程技術(shù)很難在中小軟件公司中發(fā)揮作用,然而極限編程(ExtremeProgramming,簡稱XP)技術(shù)的出現(xiàn),使中小軟件公司的軟件開發(fā)有了新的突破。XP是一個輕量級的、靈巧的軟件開發(fā)方法,同時它也是一個非常嚴謹和周密的方法。
XP中非常重要的實踐是結(jié)對編程(Pair-Programming)。簡單地說就是兩個人坐在同一臺計算機前面,使用相同的鍵盤和鼠標來開發(fā)同樣的一個模塊,一個稱為駕駛者(Driver),負責代碼的鍵入,另外一個稱為領(lǐng)航員(Navigator),負責盯緊可能出現(xiàn)的錯誤,包括低級錯誤和方向性的錯誤。而且,當出現(xiàn)的一個問題對其中一個人來說,難以解決,而恰好是另外一個人的強項的時候,那么角色就會發(fā)生轉(zhuǎn)換。
2結(jié)對編程的優(yōu)點
結(jié)隊編程的價值在于,我們無法在項目的初期進行一個詳細的設(shè)計,即使完成一個設(shè)計,隨著需求的變化,設(shè)計也是需要頻繁的改動,因此與其我們花費大量的時間和精力來維護不穩(wěn)定的設(shè)計文檔的一致性,不如我們簡化、延遲設(shè)計,用簡單的實現(xiàn)來滿足當前的需求,而依賴重構(gòu)來適應(yīng)需求的變化。1減少風險
風險會使大多數(shù)團隊停滯不前,減少風險的最佳方法是確保團隊中的每個人都完全熟悉系統(tǒng)的所有部件以及對系統(tǒng)的所有更改。技術(shù)講解和設(shè)計文檔很有用,但對于大多數(shù)快節(jié)奏的項目,它們并不能很好且迅速地傳播知識。傳播知識最有效的方法是讓一個知道代碼的人與不知道代碼的人一起解決問題。2使團隊生產(chǎn)效率更高
當一個人在遇到疑難問題時很容易走入“死角”。而Pair則不同,一個人有了想法,首先要表達出來,讓自己的同伴理解,經(jīng)過深刻的討論,一致認可之后才開始編寫代碼。一個人編寫代碼,另一個則在旁邊思考,會為下一步的工作提出建設(shè)性的意見。發(fā)現(xiàn)了問題可以及時的指正。大大的提高了代碼質(zhì)量。3生成更好的代碼
通過讓程序員結(jié)對,確保了更多人熟悉代碼以及它經(jīng)歷的更改。此外,兩個人編寫的代碼總比一個人寫的代碼好。兩個人的智慧確實勝過一個人的,對于影響整個系統(tǒng)的設(shè)計決策更是如此。當團隊成員結(jié)對時,至少有一個人一直在復查代碼。這是我聽說過的最好的代碼復查。
3結(jié)對編程遇到的問題
結(jié)對確實能給工作帶來質(zhì)的飛躍,但是通過結(jié)對實踐,它也會帶來一些新的問題。1由于人員的變動,來了新成員
在這種情況下,前期確實會對其搭檔產(chǎn)生一定的影響,但是磨刀不誤砍柴工,通過結(jié)隊編程,可以最快的使新成員進入狀態(tài),通過后期的高效完全可以彌補前期的消極影響。2后面坐著的人跟不上寫代碼的人的思路,寫代碼的人要不斷對其講解
結(jié)隊編程不僅僅只是一起寫代碼,在寫代碼之前也需要一起對需求進行探討,一起討論設(shè)計方案,達成共識之后才再一起寫測試用例,一起編碼,一起測試。如果出現(xiàn)跟不上的情況,那么趕緊停下來,需要討論的時候到了。3由于每個人有不同的習慣風格,坐在后面的人不習慣寫代碼人的代碼風格
這正是XP另一個關(guān)鍵實踐的必要性:代碼規(guī)范。在采用XP方法后,要求所有成員編寫的代碼都想出自于一個人之手寫的,這樣才能使代碼本身就是設(shè)計,方便所有成員溝通維護。通過代碼規(guī)范之后,也才使XP強調(diào)的另一個關(guān)鍵實踐“代碼共同擁有”成為有效。
結(jié)對可以使兩個人精神更加集中,可擴展思路以創(chuàng)造更簡單,更嚴謹,更便于修改重構(gòu)的代碼,所以這正應(yīng)對了項目時間緊的要求。因此結(jié)對編程確實是強度非常大的一件事情,所以XP強調(diào)40小時/周的另一實踐。
4結(jié)對編程的幾條準則
用編碼規(guī)范來支持結(jié)對編程:如果兩個人整天把時間浪費在爭論代碼風格的問題上,那么結(jié)對編程就不可能發(fā)揮它的威力。應(yīng)該嘗試對風格進行標準化。
不要讓結(jié)對編程變成旁觀:不掌握鍵盤的那個人應(yīng)該主動參與到編程當中,他應(yīng)該分析代碼,提前思考接下來的代碼應(yīng)該做些什么,對設(shè)計進行評估,并對如何測試代碼做出計劃。
有規(guī)律地對結(jié)對人員和分配的工作任務(wù)進行輪換:如同在其他的協(xié)同開發(fā)實踐一樣,結(jié)對編程的好處在于能夠讓不同的人熟悉系統(tǒng)的不同部分。有規(guī)律地進行輪換有助于知識的互相轉(zhuǎn)播——有些專家建議盡可能經(jīng)常進行人員輪換,甚至每天進行。
鼓勵雙方跟上對方的步伐:要是其中一個人相對走得太快的話,那就會大大限制了其結(jié)對搭檔的作用。速度太快的人需要放慢步伐。否則這對組合應(yīng)當被拆開,然后和其他人重新組合。
避免新手組合:兩個人當中至少一個有結(jié)對經(jīng)歷時,結(jié)對編程的效果最好。
PairProgramming有很大的優(yōu)勢,是獲得XP最大價值的關(guān)鍵。沒有PairProgramming,無法實現(xiàn)有效的ContinuousCodeReview,代碼質(zhì)量下降;沒有PairProgramming,Communication很容易弱化,進而影響Teamwork。然而PairProgramming是XP所有的Practices中最被爭議和被認為是最難接受。
PairProgramming是個漸進的過程,有效率的PairProgramming不是一天就能做到的。PairProgramming是一個相互學習,相互磨合的一個漸進過程。Developers需要時間來適應(yīng)這種新的開發(fā)模式。剛開始的PairProgramming很可能不比SoloProgramming有更高的效率。但適應(yīng)后的Pairs的開發(fā)質(zhì)量,開發(fā)時間都應(yīng)該比SoloProgramming有大幅度的改善。因此我們需要在不斷實踐中克服結(jié)對的一些不足,相信到最后一定能達到一個完美的結(jié)對方式。
參考文獻:
[1]陳斐.結(jié)對編程技術(shù)[M].北京:機械工業(yè)出版社,2004.
LaurieWilliams,Rob
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年首期款全付房產(chǎn)買賣合同書3篇
- 二零二五版?zhèn)€人信用重建借款委托擔保合同3篇
- 二零二五版包裝行業(yè)綠色認證與推廣合同3篇
- 二零二五年陵園墓地購置與家族紀念館建設(shè)合同3篇
- 二零二五版知識產(chǎn)權(quán)保護技術(shù)服務(wù)合同泄密責任細則3篇
- 二零二五年度餐飲企業(yè)食品安全追溯平臺建設(shè)合同3篇
- 二零二五年度食品供應(yīng)與餐飲服務(wù)合同2篇
- 二零二五年防火門制造與施工安裝一體化合同模板3篇
- 2025年度影視基地場地租賃及拍攝制作合同范本3篇
- 2025年復合材料堆放場地租賃及環(huán)保處理合同3篇
- 建筑材料供應(yīng)鏈管理服務(wù)合同
- 孩子改名字父母一方委托書
- 2024-2025學年人教版初中物理九年級全一冊《電與磁》單元測試卷(原卷版)
- 江蘇單招英語考綱詞匯
- 礦山隱蔽致災普查治理報告
- 2024年事業(yè)單位財務(wù)工作計劃例文(6篇)
- 2024年工程咨詢服務(wù)承諾書
- 青桔單車保險合同條例
- 車輛使用不過戶免責協(xié)議書范文范本
- 《獅子王》電影賞析
- 2023-2024學年天津市部分區(qū)九年級(上)期末物理試卷
評論
0/150
提交評論