華文網

代碼品質:結對程式設計的好處與壞處

結對程式設計是軟體發展過程中所使用的一種技術,

兩名程式開發人員共用同一台工作站。其中一個扮演駕駛者(Driver)的角色,進行代碼編寫,另一個扮演觀察員(Observer)或導航員(Navigator)的角色,對代碼進行評測。他們可以輪流編寫代碼和測試案例,還可以坐在一起交流思想,解決問題,而不會想偷懶去刷手機。

結對程式設計的概念已經存在很長一段時間,已經有許多公司認同這種程式設計方式,但也有許多公司表示他們不考慮採用。

結對程式設計需要花費的時間可能比個人程式設計更長,但產生的 bug 比個人程式設計少;它需要公司付出多一倍的人力,但程式設計的效率會比個人程式設計高。這是一個比較有爭議的程式設計方式,不同公司的需求不同,對結對程式設計的看法就不一樣。

國外有位開發者 Sam Harris 對結對程式設計的利弊做出了客觀的總結分析,總結內容如下:

結對程式設計的好處

1、互相鼓勵,

不容易沮喪:團隊工作能增加成員的工作積極性。因為在面對問題的時候,會有人一起分擔,共同嘗試新的策略。

2、互相監督,不容易偷懶:兩個人一起工作需要互相配合,如果想偷懶去幹別的,就會拖延工作進度。

3、互相學習程式設計技巧:在程式設計中,相互討論,可以更快更有效地解決問題,互相請教對方,可以得到能力上的互補。

4、可以培養和訓練新人:讓資深開發者和新手一起工作,

可以讓新人更快上手。

5、多雙眼睛,少點 bug:兩人互相監督工作,可以增強代碼和產品品質,並有效的減少 BUG。

結對程式設計的壞處

1、與合不來的人一起程式設計容易發生爭執,不利於團隊和諧。

2、經驗豐富的老手可能會對新手產生不滿的情緒。

3、一山不容二虎,

開發者之間可能就某一問題發生分歧,產生矛盾,造成不必要的內耗。

4、開發人員可能會在工作時交談一些與工作無關的事,分散注意力,造成效率低下。

等等......

因此,是否採用結對程式設計需要根據公司的情況進行定奪。並且,結對程式設計的時間需要合理安排,時間太長(8 小時及以上)容易產生疲勞,時間太短(低於 1 小時)都沒進入工作狀態。

編譯自:FreeCodeCamp