在過去的幾年里,有過許多結對編程的經歷。有時在團隊里進行,有時在客戶那里,有時在coding dojo(一種編程模式,幾個程序員一起合作完成一個任務),有時在我的開源項目里。對于那些知道如何結對編程的程序員來說,這種模式很棒,很高效。 但是你不能指望在兩個程序員面前擺臺電腦,就指望他們一開始就做得很棒。結對編程需要學習,程序員需要知道實施者(敲鍵盤的人)和領航員之間的區別。下面來看看些細節。 在結對編程中,我遇到了一些誤區,列在下面。 一、領航員誤區 1. 發號施令者 喜歡發號施令的人總是對敲鍵盤的人說:“到末行,加個反括號,然后…”。他不去關注解決方法和下一步該怎么做,而過度關注一些編程細節。 事實上,他希望他自己來掌控鍵盤。所以當你碰到一個喜歡發號施令的人,那么將鍵盤交給他吧,轉換領航員的角色。 2. 拼寫糾錯者 拼寫糾錯者坐在你旁邊,糾正你輸入的每個錯誤字符。當然,他沒有時間來真正的進行導航。 和糾錯者商量一下,當他給你糾錯的時候讓他請你喝一杯咖啡(或者任何你想要的東西)。 3. 吹毛求疵者 吹毛求疵者會指責你寫的每行代碼。當他的意見正確時,他會一意孤行,不用你已經寫好的代碼,而完全照著他的想法。 就如自由爵士音樂人都是復用其他樂隊成員的音符,來構造成一首曲子一樣,好的結對編程也應基于現有的基礎上進行推進。 試著轉換角色,也許吹毛求疵者就會變成一個目中無人的人。 4. 默不作聲者 默不作聲者是那些幾乎不發表意見的人。他僅僅坐在那里看著你工作。 試著問下他對你的方法有什么意見,或者問他下一步該寫什么測試代碼。 5. 心不在焉者 心不在焉的人企圖讓你分心,而不是提供給你有建設性的意見,幫你解決問題。 那么讓他離開吧,比起一個讓自己分心的人而言,不如一個人編程。 ![]() 二、實施者誤區 1. 深藏不露者 深藏不露者僅僅自己敲著代碼而不告訴別人他在做什么。領航員不得不靠自己去弄懂代碼。關于該用什么方法,該選擇哪種設計,領航員和實施者之間完全沒有交流。 領航員需要問問深藏不露者關于他的計劃或想法。 2. 目中無人的人 目中無人的人通常忽略領航員的所有建議,大多數是因為他們覺得自己的想法或編程技能更勝一籌。 當碰到一個目中無人的人時,立即停止結對編程吧,開始下一個任務吧。自大的人往往也不會是個好的領航員。他們很可能變成發號施令者或是吹毛求疵者。 3. 不知所措的人 不知所措的的人往往不習慣結對編程,非常緊張,不能掌控全局。 確保自己的領航員角色做到最好。小心的提出意見,對于不知所措的人主要給予鼓勵。 但是,大多數程序員開始都是這種情況。所以,不要對他們的結對編程期望太高。讓他們首先成為一個領航員,或者讓能夠很好的處理人際交往問題的領航員在他們旁邊。 4. 跳躍性很大的人 跳躍很大的人喜歡在代碼中進行大范圍的跳躍,這樣領航員不知道進行到哪里了。 領航員需要讓他慢下來,問他關于他的計劃,并確保自己比他知道更多的快捷鍵。 5. 不熟悉工具的人 不熟悉工具的人不知道開發環境的快捷鍵,效率非常低。 交換角色吧,讓他看看你的技巧。或者打印一張印有快捷鍵的cheat sheet。 我相信還有其他的誤區,如果你有什么想法請寫在評論留言吧。 原文: planetgeek.ch 編譯:伯樂在線 |