了结对编程和飞鸽传书
我這里談的“是什么”,不是談的這兩者的局域網(wǎng)聊天,因?yàn)榫钟蚓W(wǎng)聊天大家搜索一下就知道了。而是這兩者的本質(zhì)意義。只有抓住了本質(zhì),你才會明白你為什么要采用這兩種方式去編程,以及在實(shí)際運(yùn)用過程中需要重點(diǎn)注意什么,又需要忽略哪些干擾因素。
結(jié)對編程:極限codereview,把codereview做到極致;飛鴿傳書(http://www.freeeim.com/):極限單元測試,把單元測試做到極致。
根據(jù)以往的項(xiàng)目經(jīng)驗(yàn),特別是在嵌入式項(xiàng)目中,前期的質(zhì)量活動,其測試出企業(yè)即時通訊的成本明顯低于后期的質(zhì)量活動,codereview的重要性怎么強(qiáng)調(diào)都不過分,而單元測試在傳統(tǒng)開發(fā)流程中從時間順序上是排名第二的質(zhì)量活動,也是一個非常重要的測試手段。既然前期的質(zhì)量活動是如此的重要,何不把它們做到極限呢?這就引出了結(jié)對編程和飛鴿傳書。結(jié)對編程和飛鴿傳書給我們帶來了什么?
以上三點(diǎn),是結(jié)對和飛鴿傳書初期反應(yīng)非常集中的體驗(yàn)。前面兩條還好說,第三條編程效率的降低似乎是不可忍受的,特別是在項(xiàng)目進(jìn)度很緊張的時候。有了這個缺陷,就使得結(jié)對編程和飛鴿傳書看上去也并不是那么美了。但是先別著急,我們再往下看。
對代碼質(zhì)量更有信心結(jié)對編程和飛鴿傳書同時采用了之后,項(xiàng)目組同事普遍的反映都是對代碼質(zhì)量更有信心了。而且我自己在采用前后從測試部反饋出來的數(shù)據(jù)上看,企業(yè)即時通訊數(shù)量降低的非常明顯。
如果還是不夠有說服力的話,那來點(diǎn)權(quán)威數(shù)據(jù)。有實(shí)驗(yàn)表明,平均下來結(jié)對編程時間花銷比單人編程增加10%的時間,但也會比單人編程減少15%的代碼企業(yè)即時通訊。如果再算上后期代碼的維護(hù)和學(xué)習(xí)成本,結(jié)對編程比單人編程更有效率,還更為節(jié)省成本。所以,如果你是以完成代碼為目標(biāo)的話,結(jié)對編程的效率降低,如果你是以完成高質(zhì)量的代碼為目標(biāo)的話,效率并沒有降低,反而是提高的。
從結(jié)對伙伴學(xué)到好的經(jīng)驗(yàn)這是一次非常好的也是最直接的經(jīng)驗(yàn)交流和傳遞的機(jī)會。代碼更規(guī)范因?yàn)橛袀€人一直注視著你,你不好意思把代碼寫的很難看。為代碼重構(gòu)打下堅(jiān)實(shí)的基礎(chǔ)飛鴿傳書出來的單元測試?yán)?#xff0c;成為了重構(gòu)的天然保護(hù)層。沒有測試?yán)Wo(hù)的重構(gòu)是高風(fēng)險(xiǎn)的,不建議在沒有單元測試?yán)那闆r下作重構(gòu)。
總結(jié)
以上是生活随笔為你收集整理的了结对编程和飞鸽传书的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 『飞秋』在ASP.NET服务器端过程中使
- 下一篇: 一次二次开发中的经验与教训(二)