Posted on 2012-04-15 16:37
zljpp 閱讀(97)
評(píng)論(0) 編輯 收藏
?
據(jù)調(diào)查顯示,代碼審查工作有助于提高軟件開發(fā)質(zhì)量,然而許多開發(fā)者卻不愿意在他們的團(tuán)隊(duì)中實(shí)施代碼審查工作,本文主要分析了開發(fā)者為什么會(huì)抵制代碼審查工作的原因以及為什么他們會(huì)有此想法,目的是為了引導(dǎo)開發(fā)者加入代碼審查工作。
代碼審查究竟是什么樣的工作呢?通常情況下它是指否決質(zhì)量的一種過程。大量統(tǒng)計(jì)數(shù)據(jù)表明代碼審查極大的提高了軟件質(zhì)量以及降低了技術(shù)風(fēng)險(xiǎn),不僅如此,它還降低了開發(fā)成本。
一起來看下代碼審查工作所帶來的好處:
如圖所示,代碼審查工作帶來這么多的益處,那為什么還有一些開發(fā)團(tuán)隊(duì)拒絕這一做法呢?我們一起來分析下原因:

文化問題或許已成為一種巨大的障礙,大部分開發(fā)者會(huì)厭惡代碼審查是因?yàn)樗麄儫o法忘記那些痛苦的審查會(huì)議,更槽糕的是,他們害怕因劣質(zhì)代碼而遭到管理 者的批評(píng)與指責(zé)(這個(gè)通常是管理者自身的原因,而不是壞代碼)。代碼審查工作有助于提升團(tuán)隊(duì)自身能力,我們應(yīng)該持積極態(tài)度,而不是為了找機(jī)會(huì)來貶低同伴。
另一種可能性,當(dāng)大家相互協(xié)作、積極互動(dòng)時(shí),管理者會(huì)誤認(rèn)為大家在“聊天”。敏捷性團(tuán)隊(duì)已經(jīng)意識(shí)到快速創(chuàng)建軟件工作需要積極的互動(dòng)與協(xié)作。他們認(rèn)為堅(jiān)持代碼審查工作,是通向成功的秘訣。
第三種可能性誤解,開發(fā)者利用靜態(tài)分析工具來查找bug,以致代碼審查工作成為不必要性。然而事實(shí)并非如此,Capers Jones,一位軟件質(zhì)量度量領(lǐng)域的巨人,曾發(fā)表過一篇文章“結(jié)合視察、靜態(tài)分析和測試能消除影響效率缺陷的95%”,這種三叉戟式的方法最能確保軟件質(zhì)量。
靜態(tài)分析只是其中的一個(gè)分叉。
靜態(tài)分析工具有著很大的局限性,包括無法辨認(rèn)出一些疑似代碼,比如,靜態(tài)分析工具不具備標(biāo)記功能,因?yàn)樗鼰o法確定一個(gè)函數(shù)名為getRandomNumber是否應(yīng)該總返回相同的值(with a hat tip toXKCD)。
1
2
3
4
5
|
Int?getRandomNumber()
? {<
? return ?4;?
?
? }
|
也許代碼審查最大障礙是恐懼。開發(fā)者擔(dān)心錯(cuò)過最后期限,害怕分心,害怕投入過多時(shí)間。要知道,這些都是愚蠢的想法,代碼審查的目的是在前端開發(fā)過程中最大限度的提高代碼質(zhì)量以及幫助你縮短開發(fā)周期。
最后,我認(rèn)為,調(diào)用一個(gè)進(jìn)程(代碼審查工作)能夠促進(jìn)團(tuán)隊(duì)合作,提供指導(dǎo)且有助于技能的發(fā)展,鼓勵(lì)開發(fā)者熟悉代碼的基礎(chǔ)部分,最終可達(dá)到提高整個(gè)軟 件質(zhì)量。當(dāng)然,如果您想快速輸入代碼,可以考慮一些代碼審查工具,前提是,你要確保該工具是輕量級(jí)并且有趣。一旦你習(xí)慣了使用該工具便有了依賴性(許多使 用代碼審工具用戶都這么認(rèn)為)“我們無法想象沒有編碼工具的日子”,我想你會(huì)發(fā)現(xiàn)它們的價(jià)值所在。
無論如何,請記住,拒絕代碼審查是不可取的。
英文出自:softwarequalityconnection
?
轉(zhuǎn)載自 伯樂在線?http://blog.jobbole.com/16416/
已有 0 人發(fā)表留言,猛擊->>這里<<-參與討論