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