|
(圖片來(lái)自How to hold a more effective code review)
每個(gè)人都承認(rèn)代碼審查(Code Review)的花銷(xiāo)大,而且又耗時(shí),特別是當(dāng)大家忙完軟件項(xiàng)目又把它送去軟件測(cè)試部門(mén)時(shí)。對(duì)一些開(kāi)發(fā)人員來(lái)說(shuō),它更是會(huì)引發(fā)更多的辦公室政治和流言蜚語(yǔ)。
一次代碼審查可能會(huì)使代碼逐漸得到改進(jìn)。如果你認(rèn)為你從有效的代碼審查中只是稍微改進(jìn)了一下軟件,那你需要再想一想。以下五點(diǎn)易忽視的原因會(huì)給你些許啟發(fā)。
1. 開(kāi)發(fā)人員若得知他們的代碼會(huì)被評(píng)估,他們會(huì)更加努力工作
對(duì)代碼審查最有用的是讓程序員知道他編寫(xiě)的代碼會(huì)被審查。這就像一次內(nèi)容為400級(jí)運(yùn)算的期末考試。參加考試與否并不重要,因?yàn)榭荚嚨哪康氖菍W(xué)會(huì)運(yùn)算。
這個(gè)道理也適用于代碼審查。計(jì)算機(jī)程序員對(duì)自己編寫(xiě)的代碼總是相當(dāng)自信。程序員之所以熬夜工作,是因?yàn)樗麄冋嬲裏釔?ài)自己的其工作,而不是出于金錢(qián)或其他目的。因此,代碼審查可以直接影響開(kāi)發(fā)人員的成就感。
程序員不希望有任何針對(duì)他代碼的批評(píng),所以一旦知道代碼將被審查,就會(huì)采取額外的努力做好工作。實(shí)際上,代碼審查通常不能發(fā)現(xiàn)什么的。但是,如果知道有人要審查編碼,那么在編輯過(guò)程中程序員就會(huì)盡可能做好。
2. 代碼審查可以改進(jìn)開(kāi)發(fā)人員的編程技術(shù)
在你的心里,你可能不會(huì)太在意某一特定軟件項(xiàng)目的成功。但是,大多數(shù)程序員想要改善他們的技術(shù),這意味著向其他人學(xué)習(xí)。沒(méi)有比代碼審查更好的學(xué)習(xí)機(jī)會(huì)了。
例如,從一個(gè)優(yōu)秀的開(kāi)發(fā)人員的編碼中,你能更清楚地了解編程語(yǔ)言可以做什么,你將學(xué)會(huì)編寫(xiě)更有效的代碼,并找到更多可用于組織代碼的模式。
代碼審查能幫助團(tuán)隊(duì)成員從彼此的錯(cuò)誤中汲取經(jīng)驗(yàn),并成為更好的程序員。通過(guò)簡(jiǎn)單的反饋意見(jiàn),公司可以提高其開(kāi)發(fā)人員的水平。開(kāi)發(fā)員重視審查,因?yàn)樗麄冎肋@將幫助他們成長(zhǎng)。當(dāng)代碼審查以小組為單位進(jìn)行時(shí),整個(gè)團(tuán)隊(duì)都得以提高。但更好的是,代碼質(zhì)量也得到提升,并易于維護(hù)。
3. 代碼審查有利于導(dǎo)師制度,程序員們會(huì)學(xué)到更多
代碼審查有助于培訓(xùn)新開(kāi)發(fā)人員并使他們熟悉其他同類(lèi)模塊。審查過(guò)程有助于促進(jìn)思想交流,使代碼可重復(fù)利用。
代碼審查有一個(gè)系統(tǒng)的方法,可以為程序員分享團(tuán)隊(duì)領(lǐng)導(dǎo)們的經(jīng)驗(yàn)提供平臺(tái)。當(dāng)領(lǐng)導(dǎo)重寫(xiě)某些程序,使程序運(yùn)行效率在3分鐘內(nèi)提升50倍時(shí),是十分令人振奮的事情!編寫(xiě)其他程序時(shí),你或許就可以找到一些新的方法或創(chuàng)造一種新的解決方案了。
4. 代碼審查可以實(shí)現(xiàn)優(yōu)質(zhì)文化的傳承
代碼審查的目的是提供巨大的機(jī)會(huì)。代碼審查讓代碼庫(kù)和編碼團(tuán)隊(duì)都有機(jī)會(huì)發(fā)展一種連貫性和可靠性。它把有經(jīng)驗(yàn)和專(zhuān)業(yè)知識(shí)的團(tuán)隊(duì)作為整體加以利用,程序員可以磨煉他們的專(zhuān)業(yè)技能和經(jīng)驗(yàn),同時(shí)以他們的經(jīng)驗(yàn)和專(zhuān)業(yè)知識(shí)為公司和團(tuán)隊(duì)服務(wù)。這使該公司的投資得到有形的回報(bào):愉悅的程序員以及工作代碼的能力和一致性不斷獲得提升。
代碼審查有助于創(chuàng)造一種微妙的變化,因此,管理好和做好代碼審查可以很大程度上改善軟件質(zhì)量。開(kāi)發(fā)人員會(huì)對(duì)審查中有出錯(cuò)的數(shù)據(jù)的判定迅速給出抱怨,但我們必須改變規(guī)則,要將優(yōu)質(zhì)高效發(fā)展作為衡量過(guò)程的尺度而不僅是價(jià)值傳遞的里程碑。
5. 代碼審查可以激發(fā)團(tuán)隊(duì)凝聚力
人們認(rèn)為代碼審查僅僅是尋找漏洞,但它卻能把人團(tuán)結(jié)在一起,它可以提供的遠(yuǎn)遠(yuǎn)超過(guò)你所預(yù)期的。
又很多這樣的例子在執(zhí)行代碼審查時(shí)發(fā)生,但是最好的成功模式是在一個(gè)團(tuán)隊(duì)成形時(shí)就開(kāi)展審查。你從事某個(gè)項(xiàng)目的時(shí)間越長(zhǎng),所創(chuàng)建的代碼質(zhì)量就越好。這是因?yàn)樗械拇a審查過(guò)程和管理在項(xiàng)目開(kāi)始時(shí)就開(kāi)始了。
相關(guān)英文:How to hold a more effective code review
it知識(shí)庫(kù):開(kāi)發(fā)人員需做代碼審查(Code Review)的5個(gè)原因,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。