什么是Code Review?
Code Review代碼評審是指在軟件開發過程中,通過對源代碼進行系統性檢查的過程。通常的目的是查找各種缺陷,包括代碼缺陷、功能實現問題、編碼合理性、性能優化等;保證軟件總體質量和提高開發者自身水平。 Code Review是輕量級代碼評審,相對于正式代碼評審,輕量級代碼評審所需要的各種成本要明顯低得多,如果流程正確,它可以起到更加積極的效果。正因如此,輕量級代碼評審經常性地被引入到軟件開發過程中。
為什么Code Review?
1.提高代碼質量。
2.及早發現潛在缺陷,降低修改/彌補缺陷的成本。
3.促進團隊內部知識共享,提高團隊整體水平。
4.評審過程對于評審人員來說,也是一種思路重構的過程。幫助更多的人理解系統。
5.是一個傳遞知識的手段,可以讓其它并不熟悉代碼的人知道作者的意圖和想法,從而可以在以后輕松維護代碼。
6.鼓勵程序員們相互學習對方的長處和優點。
7.可以被用來確認自己的設計和實現是一個清楚和簡單的。
如何做Code Review?
Code Review檢查什么?
1.結構問題
代碼最大的問題,不是一兩個地方有技術缺陷,也不是業務邏輯錯誤,而是整個軟件設計的不好。前兩者更容易通過測試或使用來發現和更正,但后者就不同了。如果回想一下自己見過的各種爛攤子,是不是有同感?具體哪里有問題怎么改說不上來,就是整個軟件看上去混亂無章,無從下手。
具體結構問題包括:重復拷貝代碼(不封裝函數,不用Template/泛型……),函數過長(超過一屏幕就叫過長),錯誤封裝(不恰當的public/不用Interface/不內聚/強耦合/在類中封裝了無關方法……),內容錯誤(多個無關類置于一個文件/不恰當的命名……)等等。
改正結構問題,是從編寫可靠軟件向編寫精美軟件邁進的重要方法。
2.業務邏輯問題
就是軟件是否與需求的要求符合的問題。審核者和被審核者經常對業務需求的理解有差異,借此機會同步一下,必要時引入PO(產品經理/產品負責人)。
有人會說業務邏輯問題不是一測試就知道了嗎?可是測試一般發生在很久以后,有些邏輯測試還需要一定的觸發條件,而且測試只會發現失效(failure, 與預期不符)而不能發現缺陷(defect, 具體哪里出了錯),等積累長了,誰也找不到原因了。
3.編程素養問題
很多問題屬于那種“這樣也行那樣也行”的狀態,比如命名/初始值/縮進/斷行……但是高手的做法總是比新手好一些。
比如bool result = true; 這句話就有問題,剛初始化就先宣布成功,必有隱患。這是一個真實案例,而下面也的確有一個分支錯誤地返回了這個true(實際案例是個HRESULT)。而發現這個問題,不是測試而是代碼檢查。實際上測試幾乎發現不了這些問題,比如上面那段代碼會在某文件打不開的時候錯誤地返回這個true,而在測試中幾乎不會故事破壞那個文件來測試其結果。
經常進行Code Review
常見的Code Review是高手審核新手,或者師傅走查徒弟。一般而言,大致高手每天能編寫100多行有效代碼(按分號計數),新手會多一些但也不超過200(他們編寫代碼比較費),也就是10個屏幕以內。有經驗的人一定知道:高手看新手的代碼,5秒鐘就能發現問題。所以不用花上很長時間去做Code Review,而應該“少吃多餐”,每次可以5分鐘,10分鐘,每天2-3次甚至更多??吹揭粋€問題就要徹底解決,不需要一次檢查很多,問題一次比一次少即可。
但是切記不可積累,隔很長時間才去做Code Review,你就會面臨那近萬行的代碼,以前N多摻和在一起的功能,你會發現,整個Code Review變得非常地艱難,用不了一會兒,你就會發現你會疲憊地打著哈欠,但還是要堅持,有時候,這樣的Review會持續N個小時以上,相當的夸張。而且會出現相當多的問題和爭論,因為,這就好像,人家都把整個房子蓋好了,大家Review時這挑一點那挑一點,有時候觸動地基或是承重墻體,需要大動手術,讓人返工,這當然會讓蓋房的人一下就跳起來極力地維護自己的代碼,最后還傷了他人的感情。
我們怎么做 Code Review
我帶過的項目中,做Code Review這方面大多感覺比較凌亂,也沒有什么統一的做法。不過從形式上來看大體可以分為兩大類:一類是TM技術經理對項目中成員Team一個一個的做Code Review,或者是團隊資深人員來做(姑且就叫個人式吧)。一類是做Code Review Meeting,以會議形式來做Code Review(姑且叫會議式)。
1.個人式
對于個人式,其實在上面“如何做Code Review”的話題中已經談到了很多了。包括我們要及時的不定期的每時每刻的去做Code Review,包括我們要按照結構問題,業務邏輯問題,編程素養問題逐一去檢查Code等等。很多項目我們也都做了,甚至是都做到了。只是還有不夠好的地方,需要深入的地方。具體的方法上面已經講了,后面我會具體講講如何量化和跟蹤。而對于PM來說,如何監控Code Review這件事就顯得非常重要。
2.會議式
會議式,真正的會議式去做代碼評審,如果做到位了效果應該是最好的,最理想的情況是一堆專家(包括技術專家甚至還有業務專家、測試專家等),拿著代碼一行一行的去Review。但是這種做法的成本也非常之高,不管是時間成本也好,還是費用成本都相當的昂貴,一般只有在大型尖端項目才會使用,比如航天航空的項目,做Code Review之后的缺陷率是相當的低的。我們是怎么做Code Review Meeting的呢?首先我們會在開會之前,選出典型的案例或者問題一起拿到會上去討論,多半是分享一些經驗和強調一些容易犯錯的地方。一般一次會議不會超過2個小時,每周一次會議即可。這樣會議的效果比較好,成本也相對較低。因為由于Team中成員的“素質”參差不齊,所以一起去做代碼評審確實效果很差。
我對 Code Review 的一點思考
作為PM我,對Code Review的思考是,我應該如何管理好Code Review?也就是說假設我把Code Review當做一個項目來看,怎樣做好這個項目呢?
其實很簡單,首先我要有一個正確的、真實的、可執行的計劃,然后能在實施Code Review時給予TM或評審人一定的指導,再然后跟蹤偏差,分析原因,變更計劃。
日韩激情av在线免费观看| 欧美在线观看一区二区三区| 91精品久久久久久久久久| 欧美日韩国产一区二区| 亚洲伦理中文字幕| 高清一区二区三区四区五区| 国产精品ⅴa在线观看h| 亚洲国产精品视频在线观看| 91黑丝在线观看| 91精品国产91久久久| 精品毛片三在线观看| 久久久久久久久电影| 午夜精品久久久久久99热| 欧美精品在线视频观看| 国产精品久久久久久久久久久新郎| 81精品国产乱码久久久久久| 国产91精品青草社区| 亚洲精品久久久久中文字幕欢迎你| 91精品国产高清久久久久久91| 日韩av网站导航| 国产日韩在线观看av| 欧美性猛交99久久久久99按摩| 日本国产高清不卡| 国产欧美日韩精品在线观看| 45www国产精品网站| 国产深夜精品福利| 久久久久久久久久久成人| 国产精品午夜一区二区欲梦| 欧美乱大交xxxxx另类电影| 日韩有码视频在线| 亚洲欧美成人精品| 精品日韩视频在线观看| 精品视频久久久久久久| 国产一区二区三区丝袜| 欧美精品在线免费| 精品亚洲男同gayvideo网站| 欧美成人久久久| 中文字幕欧美精品在线| 4444欧美成人kkkk| 久久久av一区| 国产成人精品免高潮费视频| 国产成人a亚洲精品| 亚洲成人精品视频| 97免费中文视频在线观看| 不卡伊人av在线播放| 亚洲精品网址在线观看| 亚洲第一色在线| 亚洲精品午夜精品| 中文字幕亚洲二区| 久久久久一本一区二区青青蜜月| 粉嫩老牛aⅴ一区二区三区| 国产精品久久网| 国产精品嫩草影院久久久| 久久久精品一区二区三区| 人九九综合九九宗合| 国产日韩在线亚洲字幕中文| 久久久久久久网站| 精品国产福利视频| 欧美制服第一页| 欧美与欧洲交xxxx免费观看| 欧美一级高清免费| 一区二区三区回区在观看免费视频| 91产国在线观看动作片喷水| 精品福利樱桃av导航| 亚洲性av网站| 欧美裸体xxxx| 日韩美女视频免费在线观看| 在线视频欧美日韩| 欧美激情乱人伦一区| 中文字幕亚洲在线| 国产精品一区电影| 成人深夜直播免费观看| 国产亚洲精品成人av久久ww| 日韩欧美在线视频免费观看| 精品成人久久av| 日韩精品久久久久久福利| 国模极品一区二区三区| 国产精品第三页| 色婷婷综合久久久久| 国产精品视频精品视频| 欧美激情网站在线观看| 成人亚洲激情网| 欧美大荫蒂xxx| 亚洲男人天堂古典| 欧美夫妻性生活xx| 国产精品久久综合av爱欲tv| 亚洲精品www| 国产精品视频中文字幕91| 成人激情在线观看| 亚洲精品国产品国语在线| 欧美激情视频三区| 亚洲激情电影中文字幕| 成人国产精品av| 538国产精品视频一区二区| 亚洲码在线观看| 91精品国产综合久久久久久久久| 97超级碰在线看视频免费在线看| 51视频国产精品一区二区| 国产欧美精品xxxx另类| 亚洲欧美激情视频| 亚洲综合在线小说| 欧美国产日韩xxxxx| 精品亚洲一区二区三区| 亚洲欧美一区二区精品久久久| 91沈先生在线观看| 国产精品视频白浆免费视频| 亚洲老司机av| 欧美国产日韩一区| 国产精品一区二区久久| 日韩中文字幕精品| 亚洲成人免费在线视频| 亚洲女同精品视频| 久久精品国产成人| 国产精品美女久久久久av超清| 亚洲aⅴ男人的天堂在线观看| 日韩在线观看你懂的| 麻豆国产va免费精品高清在线| 精品久久久久久久久久久久久| 91中文字幕一区| 欧美成人精品一区二区| 国产精品吊钟奶在线| 国产成人精品电影| 国产成人激情小视频| 国产一区二区三区直播精品电影| 日韩av免费在线观看| 久久精品国产亚洲精品| 国产精品一区二区在线| 国产精品视频不卡| 亚洲成人xxx| 国产精品27p| 亚洲欧美成人在线| 日韩av最新在线观看| 成人av.网址在线网站| 国语自产精品视频在线看| 日韩欧美亚洲范冰冰与中字| 欧美在线观看一区二区三区| 亚洲精品www| 欧美一级在线播放| 美日韩丰满少妇在线观看| 57pao精品| 亚洲精品视频久久| 日韩电影中文字幕在线观看| 不卡av电影在线观看| 国产欧亚日韩视频| 亚洲色图五月天| 国产日韩在线亚洲字幕中文| 国内精品久久久久伊人av| 亚洲嫩模很污视频| 国产精品旅馆在线| 精品成人69xx.xyz| 国产精品久久久久久网站| 这里精品视频免费| 欧美一级电影在线| 亚洲综合第一页| 亚洲一区美女视频在线观看免费| 不卡av电影在线观看| 国产美女久久久| 国产精品自产拍高潮在线观看| 成人网在线免费观看| 91免费高清视频| 午夜精品99久久免费| 中日韩午夜理伦电影免费| 7m第一福利500精品视频| 韩国视频理论视频久久|