你們開發(fā)過程中會(huì)做代碼review么?
我們現(xiàn)在的項(xiàng)目是會(huì)做Code Review的,也就是代碼審核;但是說實(shí)話,我們公司雖然對Code Review要求很嚴(yán)格,但是形式大于實(shí)用;下面我就談?wù)勎覍ode Review的一些看法。
為什么要做Code Review提高代碼質(zhì)量:代碼審核確實(shí)在一定程度上可以提高代碼的質(zhì)量;每個(gè)程序員或多或少都有一些不好的編程習(xí)慣,自認(rèn)為理所應(yīng)當(dāng)?shù)拇a可能是有問題的;在代碼審核的過程中,別的開發(fā)人員可以幫其發(fā)現(xiàn)和糾正;
“威懾性”的作用:“我的代碼要是被查到太多的問題,那多沒面子”,很多程序員會(huì)這樣想;
熟悉項(xiàng)目所有的代碼:在做Code Review的時(shí)候,也是熟悉項(xiàng)目其他模塊的過程;讓每個(gè)開發(fā)人員都熟悉整個(gè)項(xiàng)目代碼,可以減少某個(gè)程序員在休假、離職的時(shí)候帶來的風(fēng)險(xiǎn);
打造技術(shù)氛圍:追求更完美的代碼,Code Review的過程,本身也是一種技術(shù)交流;
對代碼的可讀性有比較高的要求:Code Review是檢查代碼可讀性的非常好的手段,而良好的代碼可讀性,讓后期的改動(dòng)和維護(hù)都非常容易,并且讓項(xiàng)目組人員有流動(dòng)的時(shí)候,新人會(huì)更快地熟悉代碼,工作更容易交接。
當(dāng)然不少人會(huì)反對Code Review,因?yàn)楹芏鄷r(shí)候項(xiàng)目開發(fā)時(shí)間很緊,加班才能勉強(qiáng)完成代碼開發(fā),不可能給Code Review留出時(shí)間;
有些公司雖然有嚴(yán)格的Code Review流程和要求,比如我們使用Fisheye工具,項(xiàng)目的每次提交的、每一行代碼提交都必須做代碼審核,并且記錄到KPI考核里,但是大多數(shù)時(shí)候都是流于形式。
如何做好Code Review我說一說我們項(xiàng)目的一些方法,效果不一定是最好的,但是比【形式主義】要強(qiáng)很多。
不一定要每一行代碼都Review到,我們是采用抽查的方式;(我始終覺得“威懾性”很重要);
項(xiàng)目組的新人,Code Review盡量全部覆蓋,不一定是他水平不高,主要是看他的代碼是否符合項(xiàng)目制定的規(guī)范;
我們更多的時(shí)候是采用集體Code Review,也就是在一個(gè)敏捷迭代結(jié)束的時(shí)候,不僅要做驗(yàn)收,還要花半小時(shí)到一小時(shí),抽查一些代碼做Code Review,也就是把代碼投影出來,大家一起看這些代碼的邏輯和語法;
Code Review的水平也是需要培養(yǎng)的,先讓項(xiàng)目的技術(shù)負(fù)責(zé)人或代碼水平高的同事先做Code Review,然后讓其他開發(fā)人員去學(xué)習(xí)他們Code Review的方法(從哪些角度Review、哪些是好代碼、哪些是差代碼)。
希望我的回答,能夠幫助到你!我將持續(xù)分享Java開發(fā)、架構(gòu)設(shè)計(jì)、程序員職業(yè)發(fā)展等方面的見解,希望能得到你的關(guān)注。