告訴你關於結對程式設計的7件事

TP_funny發表於2014-12-08
目前“結對程式設計”還是比較流行的,但很多人對它並沒有清楚的認識,今天PHP100就帶大家瞭解一下結對程式設計的含義。“結對程式設計”是指兩個人使用一個鍵盤一起工作,其中一個人是“操縱者”,用鍵盤敲程式碼,另一個人是“觀察者”或叫“導航者”,檢查著每一行程式碼是否有錯,並思考著全域性的設計。
 
這樣做有一些明顯的好處,比如可以寫出更簡潔、錯誤更少、可維護性更強的程式碼,工作熱情會更高,可以共享知識,擁有更好的時間管理和更高的效率。下面就來具體介紹關於結對程式設計的一些事情。
 
1. 在坐下來工作之前找到一個合適的任務
這個任務你應該有信心在一兩個小時內完成,在真正寫程式碼前做一個計劃是很有幫助的。

2. 一次只達成一個小目標
這個不需要花費太多時間,把問題描述介紹給你的搭檔,幫助你更集中注意,並可以結合搭檔的想法。這樣,你們兩個人都會對你們要做什麼很清楚。


3. 信任和支援你的搭檔
如果你是“操縱者”,那麼就儘快地完成當前的小目標,不用去管更大的問題。相信你的搭檔“觀察者”是程式碼的安全保障。
如果你是“觀察者”,要時刻閱讀搭檔正在寫的程式碼,你的工作就是要檢查程式碼。你要全神貫注,不要受到周圍的干擾,同時思考著程式可能存在的bug,如何簡化或優化整個程式的設計。對於當前小目標下的問題馬上提出,但是大一些的問題和整個的設計優化要等到當前小目標完成後再提出,把這些事情先大致記下,保證搭檔可以集中注意力在當前的任務上。比如,你看到當前的程式碼沒有對null輸入做出反饋,就先把它記到紙上“對null輸入做測試”。
另外,作為“觀察者”不要口述程式碼,應該讓你的搭檔主動思考如何實現現在的任務,而不是被動的輸入。而且你更多的應該站在更高層次思考和工作,比如說一下“現在處理一下我們剛才跳過的那個空指標問題吧”,就比說“現在敲這樣的程式碼if(s==NULL){......”好得多。
 

4. 更多的溝通
結對程式設計可以有很多的交流,說說下一步要做什麼、探討一下實現的方法、提出新的辦法、提出新輸入可能性、對變數命名有更好的建議、對程式碼可以有一些優化、告訴“操縱者”需要知道的API介面......這些都是可以溝通的,如果兩個人搭配很好的話,他們的對話可能很難停止。這裡有一些結對程式設計中非常常見的話語:
“你覺得這是一個有效的測試嗎?”
“你認為它是正確的嗎?”
“下一步呢?”
“相信我”

5. 兩個人要時刻保持同步
當你們在一起工作的時候,有時候你會發現你和你的搭檔已經不同步了:不確定你的搭檔在做什麼或對當前的任務有些不清楚。這個很正常,當你意識到了的話就趕緊和搭檔同步起來。時刻保持同步對結對程式設計是很重要的,如果有超過五分鐘的不同步,你可能就又開始獨自的程式設計了。
可以的話,在你做之前先說說你要做什麼,或問問你的搭檔要做什麼。比如,“我們可以開始寫那個空輸入的測試程式了嗎?”當你的搭檔向你詢問“可以開始......了嗎?”或者說“我認為這個方法應該刪掉,同意嗎?”你要馬上清晰的回答出“Yes”或“No”。在你們之前經常傳遞鍵盤也是可以的,比如有的時候用程式碼解釋你的想法可能比簡單的說“Yes”或“No”更容易。這時候就讓“觀察者”使用鍵盤吧,之後在還給你。

6. 完成任務或攻克難題後慶祝一下
比如說,每一次你們通過了一個測試,就相互擊個掌。當然,在測試沒通過的時候依然可以擊個掌,因為此時你們會進入合作程式設計和測試驅動的最佳狀態。

 

7. 半小時後互換角色
這樣做會讓兩個人的參與感都很強,都可以協調好大局計劃和細節的關係。而且,對於“觀察者”,超過半個小時就很難再保持高度的警覺了。互換角色可以給你“充電”。
 


原文:http://www.wikihow.com/Pair-Program
譯文:http://www.php100.com/html/it/focus/2014/1205/7988.html

來自:PHP100
評論(1)

相關文章