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

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

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

    莊周夢蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理

    代碼自我審查的一些體會

    Posted on 2010-05-18 00:28 dennis 閱讀(6412) 評論(4)  編輯  收藏 所屬分類: 模式與架構涂鴉軟件工程

    1、首先態度需要端正,做代碼的自我審查并不是否定自己,而是給自己將工作做得更好的一次機會。在審查過程中要盡量將自己作為一個旁觀者的心態去審查自己的代碼,盡管這比較困難。

    2、代碼審查離不開重構,在審查過程中發現任何壞味道都請使用重構去改善,發現缺乏測試的地方要及時補充測試,不要讓BUG遺漏。

    3、代碼的自我審查可能不是越早越好,隔一段時間之后回去看自己寫的東西,對一些設計上的選擇能有更客觀的評價,在審查的過程中可能需要重新去理解代碼,在此過程中可以檢查自己代碼的可讀性,并思考如何改善可讀性,切記代碼首先是給人讀的

    4、審查過程中需要記錄下一些犯下的錯誤,以及當時為什么會犯下這樣的錯誤,建立自己的bug數據庫,并時常review,在以后的工作中避免同樣的錯誤。

    5、代碼的自我審查應該是一個持續性的過程,而非特定時間的特定行動,時常審查自己的代碼,不僅能辨析自己的得失,還能夠進一步提高自己在未來工作中的設計能力和預見能力。

    6、代碼的自我審查跟團隊成員之間的相互review并不矛盾,在相互review之前做一個自我審查,有助于提高review的效率,包括可讀性的提高和一些一般錯誤的避免。

    7、代碼自我審查的一些常見注意點:
    (0)自認為絕不會出錯,并且從來沒有審查過的代碼。
    (1)注意else語句,if條件下的子語句通常可能是個正常的流程,而else意味著異常的情況或者特殊的場景,你可能特別注意怎么處理正常的情況,卻忽略了else子句的實現細節,如該釋放的鎖沒釋放,該遞減的計數沒有遞減,該賦予特殊值卻沒有賦予等等。
    (2)注意空的方法,沒有方法體的方法,是不需要實現?還是忘了實現?
    (3)注意switch語句,有沒有忘了break?這種錯誤通過findbugs之類的靜態代碼檢查工具都能避免。
    (4)注意大塊的注釋,為什么這么多注釋?是代碼寫的很糟糕?還是遺留的注釋?遺留的注釋會誤導人,要及時刪除。
    (5)注意一些看起來“不合常理”的代碼,這樣的代碼很多都是基于所謂性能考慮而優化過的代碼,這樣的優化是否還需要?是否能去除這些“奇怪”的代碼也能實現正常的需求?
    (6)對客戶端的使用有假設的代碼,假設用戶只會這么用,假設用戶只會用到返回對象中的某些屬性,其他屬性一定不會用到?不要對客戶代碼做假設!這個客戶代碼包括外部用戶和調用這個模塊的內部代碼。
    (7)標注了FIXME、TODO之類task標簽的代碼,是否忘了修復BUG,實現功能?
    (8)任何超過15行以上的方法,這些方法是否能拆分成更細粒度的方法,并保持在同一個抽象層次上?
    (9)任何在代碼中出現的常量值,是否應該提取出來成為單獨的常量,常量的默認值設置是否合理?
    (10) 任何持有容器的代碼,提供了放入容器的方法,是否提供了從容器中移除對象的方法?確保沒有內存泄漏的隱患。
    (11)重構中提到的其他壞味道,別放過它們,但是也不要追求完美,OO不是圣杯,如果能簡單的實現一個算法,你不要引入3個對象和4個接口。
    (12)在review最后能列出一張清單,開列下該項目面臨的風險點,并提出解決辦法,然后按照這張清單去review關鍵代碼,著重檢查異常情況下的處理。風險點的review,我建議可以放在后面,在一般性錯誤解決之后進行,此時你對代碼也將再度變的熟悉。

    評論

    # re: 代碼自我審查的一些體會  回復  更多評論   

    2010-05-19 09:24 by 隔葉黃鶯
    收藏了

    # re: 代碼自我審查的一些體會  回復  更多評論   

    2010-05-27 12:53 by alchosprit
    基本囊括了我平時碰到的一些代碼review的問題,在看老代碼的是發現7(4)真不是一般的害人!

    # re: 代碼自我審查的一些體會  回復  更多評論   

    2010-05-29 14:38 by 下里巴人
    不錯,收藏了

    # re: 代碼自我審查的一些體會[未登錄]  回復  更多評論   

    2011-08-26 19:44 by
    寫的很好。我對你寫的review深有體會。
    主站蜘蛛池模板: 国产亚洲成人久久| 亚洲av高清在线观看一区二区| 亚洲中久无码永久在线观看同| 苍井空亚洲精品AA片在线播放| 好吊妞在线新免费视频| 亚洲色大成网站www久久九| 久久久久国产精品免费免费搜索| 亚洲中文字幕无码久久| 性做久久久久免费看| 免费无码午夜福利片| 久久亚洲国产精品123区| a毛片视频免费观看影院| 亚洲av无码无在线观看红杏| 日本视频免费高清一本18| 亚洲成在人线电影天堂色| 免费可以在线看A∨网站| 日韩成人精品日本亚洲| 亚洲人成无码www久久久| 午夜精品免费在线观看| 亚洲成人福利在线| 日韩中文字幕免费| 国产精品偷伦视频免费观看了| 亚洲国产精品一区二区第一页| 中文字幕免费视频| 亚洲人成自拍网站在线观看| 亚洲国产一区二区三区| 人人玩人人添人人澡免费| 亚洲国产精品久久丫| 国产高清免费的视频| 免费看成人AA片无码视频吃奶| 亚洲精品福利网泷泽萝拉| 国产青草视频免费观看97| 成全视成人免费观看在线看| 亚洲六月丁香六月婷婷蜜芽| 国产一区二区三区在线观看免费| 中文字幕a∨在线乱码免费看| 亚洲国产亚洲片在线观看播放 | 亚洲电影在线免费观看| 在线观看日本免费a∨视频| 搜日本一区二区三区免费高清视频| 亚洲第一福利视频|