<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    失樂(lè)園

    技術(shù)之路

    BlogJava 聯(lián)系 聚合 管理
      19 Posts :: 44 Stories :: 40 Comments :: 0 Trackbacks
    最近在考慮在公司建立代碼評(píng)審的機(jī)制,發(fā)現(xiàn)不像想象的那么簡(jiǎn)單:
    代碼評(píng)審的好處是毋庸置疑的,但也要付出成本,
    而且評(píng)審別人的代碼是一個(gè)比較敏感的事,所以具體操作的時(shí)候也有許多要注意的問(wèn)題。
    下面是我整理的文檔準(zhǔn)備開(kāi)會(huì)討論:


    什么是代碼評(píng)審:
    代碼評(píng)審也稱代碼復(fù)查,是指通過(guò)閱讀代碼來(lái)檢查源代碼與編碼標(biāo)準(zhǔn)的符合性以及代碼質(zhì)量的活動(dòng)。
    通過(guò)工具來(lái)進(jìn)行code review不在本次討論范圍內(nèi)。

    評(píng)審的內(nèi)容:
    編碼規(guī)范問(wèn)題:命名不規(guī)范、magic number、 System.out……
    代碼結(jié)構(gòu)問(wèn)題:重復(fù)代碼、巨大的方法和類、分層不當(dāng)、緊耦合
    工具、框架使用不當(dāng):Spring、Hibernate、AJAX
    實(shí)現(xiàn)問(wèn)題:錯(cuò)誤驗(yàn)證、異常處理、事務(wù)劃分、線程、性能、安全、實(shí)現(xiàn)過(guò)于復(fù)雜、代碼可讀性不佳、擴(kuò)展性不好
    測(cè)試問(wèn)題:測(cè)試覆蓋度不夠、可測(cè)試性不好
    代碼評(píng)審不負(fù)責(zé)檢查功能、邏輯是否正確,這些要靠單元測(cè)試和QA工作來(lái)解決

    代碼評(píng)審的好處:
    提高代碼質(zhì)量

    在項(xiàng)目的早期發(fā)現(xiàn)缺陷,將損失降至最低

    評(píng)審的過(guò)程也是重新梳理思路的過(guò)程,雙方都加深了對(duì)系統(tǒng)的理解

    促進(jìn)團(tuán)隊(duì)溝通、促進(jìn)知識(shí)共享、共同提高

    交叉評(píng)審——代碼走查:團(tuán)隊(duì)成員互相檢查代碼
    參與者可以是任意兩個(gè)組員,或開(kāi)發(fā)組長(zhǎng)分別與每個(gè)組員結(jié)對(duì)進(jìn)行
    時(shí)機(jī)可以選擇在下班前半小時(shí),對(duì)當(dāng)天改動(dòng)的模塊進(jìn)行評(píng)審
    代碼作者講解如何以及為何這樣實(shí)現(xiàn)、評(píng)審者提出問(wèn)題和建議
    每次解決的問(wèn)題要記錄到SVN注釋或JIRA
    每次評(píng)審不要貪多,如下圖所示:當(dāng)一次評(píng)審超過(guò)400行代碼時(shí),能發(fā)現(xiàn)缺陷數(shù)顯著降低——事倍功半

    會(huì)審:以項(xiàng)目為單位,召開(kāi)專門(mén)的代碼評(píng)審會(huì)議
    參與者:包括項(xiàng)目組全體成員,其它組的開(kāi)發(fā)組長(zhǎng)也應(yīng)盡量參加
    時(shí)機(jī)選擇:開(kāi)發(fā)進(jìn)行到某一階段時(shí),對(duì)共性問(wèn)題進(jìn)行總結(jié),對(duì)好的做法進(jìn)行提煉和推廣
    會(huì)前準(zhǔn)備工作:
    組織者應(yīng)通知各參與者本次評(píng)審的范圍
    參與者閱讀源代碼,列出發(fā)現(xiàn)的問(wèn)題、亮點(diǎn),匯總給組織者
    準(zhǔn)備工作要細(xì)致,需要給出問(wèn)題詳細(xì)描述以及相關(guān)代碼在SVN上的URL地址等
    評(píng)審代碼的選擇:
    最近一次迭代開(kāi)發(fā)的代碼
    系統(tǒng)關(guān)鍵模塊
    業(yè)務(wù)較復(fù)雜的模塊
    缺陷率較高的模塊
    會(huì)議議程:
    如果是第一次會(huì)議,先由該項(xiàng)目開(kāi)發(fā)組長(zhǎng)做整體介紹
    參加者依次發(fā)言,結(jié)合代碼講解發(fā)現(xiàn)的問(wèn)題
    每講完一個(gè)問(wèn)題,針對(duì)其展開(kāi)討論,每個(gè)問(wèn)題控制在10分鐘以內(nèi)
    如果問(wèn)題不多,還可以安排該組成員對(duì)最近開(kāi)發(fā)的代碼進(jìn)行地毯式的講解和排查;或者針對(duì)某個(gè)方面對(duì)整個(gè)項(xiàng)目做評(píng)審,例如性能、安全性或測(cè)試

    會(huì)后總結(jié):
    把會(huì)上提出的所有問(wèn)題、亮點(diǎn)及最終結(jié)論詳細(xì)的記錄下來(lái),供其他團(tuán)隊(duì)借鑒
    未能討論清楚的問(wèn)題,會(huì)后解決

    實(shí)行代碼評(píng)審制度前的準(zhǔn)備工作:
    架構(gòu)師提供開(kāi)發(fā)規(guī)范、指南,為代碼評(píng)審提供依據(jù)
    建立起單元測(cè)試規(guī)范,否則無(wú)法達(dá)到測(cè)試覆蓋度的要求、難以修正發(fā)現(xiàn)的問(wèn)題
    最好有樣例代碼庫(kù)作參照,以提高代碼評(píng)審的可操作性
    提供評(píng)審案例:用評(píng)審前的代碼與評(píng)審后優(yōu)化的代碼做對(duì)比
    問(wèn)題跟蹤:對(duì)評(píng)審中發(fā)現(xiàn)的問(wèn)題代碼應(yīng)加以跟蹤,確保問(wèn)題得以解決,防止復(fù)發(fā)
    評(píng)審到什么程度:
    進(jìn)行全面的代碼評(píng)審成本較高,也沒(méi)有必要

    對(duì)發(fā)現(xiàn)的問(wèn)題要本著集體代碼所有制的觀點(diǎn)和就事論事的原則,因此建議把代碼質(zhì)量與團(tuán)隊(duì)績(jī)效(而不是個(gè)人績(jī)效)掛鉤。
    posted on 2011-02-18 13:40 狄浩 閱讀(795) 評(píng)論(1)  編輯  收藏

    Feedback

    # re: 代碼評(píng)審 2011-02-19 11:22 Xuzhengsong
    關(guān)于評(píng)審具體情況具體對(duì)待,像System.out...這樣的語(yǔ)句jboss里面也出現(xiàn)過(guò)。  回復(fù)  更多評(píng)論
      


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲AV无码成人精品区狼人影院| 亚洲综合网美国十次| 亚洲AV成人一区二区三区观看| 免费观看国产网址你懂的| 老司机亚洲精品影院无码| 无码国产精品一区二区免费3p| 亚洲av永久无码精品古装片 | 亚洲欧洲视频在线观看| 国产h肉在线视频免费观看| 亚洲人成在线中文字幕| 欧洲乱码伦视频免费| 国产成人亚洲综合网站不卡| 日韩在线免费播放| 日本永久免费a∨在线视频| 亚洲国产精品无码久久久久久曰| 国产成人1024精品免费| 亚洲AV永久纯肉无码精品动漫| 免费精品无码AV片在线观看| 亚洲国产精品成人综合久久久 | 亚洲AV无码一区二区二三区入口| 久操免费在线观看| 亚洲国产日韩女人aaaaaa毛片在线| 亚洲精品免费网站| 国产青草亚洲香蕉精品久久| 亚洲中文字幕视频国产| 最近高清中文字幕免费| 亚洲av无码成人精品国产| 亚洲日韩乱码中文无码蜜桃臀网站| 久久久久高潮毛片免费全部播放 | 亚洲一卡二卡三卡| 在线视频免费国产成人| 国产精品1024在线永久免费 | 无码亚洲成a人在线观看| 亚洲精品无码鲁网中文电影| 最近中文字幕免费完整| 色欲aⅴ亚洲情无码AV蜜桃| 亚洲AV综合色区无码一区| 成人黄动漫画免费网站视频| 国产JIZZ中国JIZZ免费看| 亚洲成在人线中文字幕| 亚洲美女在线国产|