實驗四 代碼審查

實驗四 代碼評審
1、實驗目的
1)瞭解代碼審查的含義;
2)掌握相關編程規範檢查工具的安裝與使用;
2、實驗內容及要求
Code Review中文應該譯做「代碼審查」或是「代碼評審」或「代碼複查」,是指經過閱讀代碼來檢查源代碼與編碼標準的符合性以及代碼質量的活動。Code Review主要用來在軟件工程過程當中改進代碼質量,經過代碼評審能夠達到以下目的:
●在項目早期就可以發現代碼中的BUG
●幫助初級開發人員學習高級開發人員的經驗,達到知識共享
●避免開發人員犯一些很常見,很普通的錯誤
●保證項目組人員的良好溝通
●項目或產品的代碼更容易維護
代碼評審主要內容是編程規範,重構方法,架構設計,性能安全,日誌,可讀性,擴展性等問題。經過代碼評審可查找和修復引入到開發階段的應用程序的錯誤,提升軟件的總體素質和開發者的技能。代碼評審的做用和意義已在不少技術團隊內達成共識,但是不少時候並未被有效執行,甚至被認爲是一項費時費力的工做。藉助一些工具能夠更容易,更有效率地來進行Code Review。
一、以小組形式,針對前面「實驗一」中所完成的代碼,進行代碼評審(走查),重點檢查如下狀況。你也可有查詢相關材料,創建更細化的檢查清單(check list)java

  • 程序是否能正常工做,代碼是否實現預期的功能,邏輯是否正確。
  • 代碼是否遵循的編程規範
  • 代碼是否儘量的模塊化
  • 全部的數據輸入是否都進行了檢查
  • 是否有註釋,而且描述了代碼的意圖
  • 代碼的可理解性和可測試性
    二、按「實驗二」的分組方式,兩人一組,隨機分配另外一組的代碼做爲本組評審和分析的對象
    一些編碼規範的檢查工具以下,也可自行查找工具使用。
    java語言
  • 採用使用eclipse Checkstyle插件
  • CheckStyle是SourceForge下的一個項目,提供了一個幫助JAVA開發人員遵照某些編碼規範的工具。它可以自動化代碼規範檢查過程,從而使得開發人員從這項重要但枯燥的任務中解脫出來。它能夠根據設置好的編碼規則來檢查代碼。好比符合規範的變量命名,方法體的最大行數,重複代碼檢查等等。
    若是你使用idea ,可使用Alibaba Java Code Guidelines插件,參考連接以下:https://github.com/alibaba/p3c/wiki/IDEA插件使用文檔
    C++語言
  • 可以使用Google代碼規範工具Cpplint。
  • Cpplint是一個python腳本,Google使用它做爲本身的C++代碼規範檢查工具,VSCcode可配置Cpplint對C++代碼進行規範檢查。
    python
  • 可採用pylint
  • Pylint 是一個 Python 代碼分析工具,它分析 Python 代碼中的錯誤,查找不符合代碼風格標準(Pylint 默認使用的代碼風格是 PEP 8,具體信息,請參閱參考資料)和有潛在問題的代碼。目前在 eclipse 的 pydev 插件中也集成了 Pylint,VSCcode可安裝pylint插件
    當發現了項目存在的問題後,可經過Bug跟蹤系統向項目維護者反饋問題(issue),管理Issue的系統稱爲BTS(Bug Tracking System,Bug跟蹤系統)。當今具備表明性的BTS有Redmine、Trac、BugZilla等。GitHub自身也加入了BTS的功能。在GitHub上,能夠將它做爲軟件開發者之間的交流工具。經過github的issues功能開發者能夠便捷的發現軟件的BUG並報告,想向項目全部人詢問或用來追蹤各類想法探討準備實施的任務。

3、實驗過程
(1)配置代碼審查工具。要求採用屏幕截圖的方式配置的過程;
(2)使用工具對原始代碼進行評審和分析,記錄結果,期間不要有任何修改;
(3)對工具執行結果進行人工分析,結合檢查清單和人工走查的出代碼修改建議;
(4)經過github issues向項目維護者提交問題(issue),注意一個issue 只報告一個問題,多個問題需放在多個issue中,以便跟蹤。
(5)記錄總結實驗過程當中遇到的問題和解決過程
四.實驗結果
(1)代碼審查工具配置
代碼是由採用Java編寫,審查工具選擇插件checkstyle。
首先下載checkstyle

打開Eclipse help->install new solftware 點擊add添加

勾選checkstyle

而後finish,Eclipse開始安裝插件,稍等會彈出對話框點擊install away

重啓Eclipse

Windows->preferendes出現checkstyle,配置成功

克隆https://github.com/Aaalua/LifeGame
python

(2)checkstyle進行代碼審查,並記錄




(3)對審查結果進行人工分析

代碼能夠正常運行出預期結果,可是代碼大部分沒有按照代碼規範進行編寫,運算符先後沒有空格隔開,而且使用了不少的製表符tab。建議多參照Java的編碼規範,包名的命名使用小寫字母,儘可能不適用製表符tab,儘可能避免一行輸入過多字符。
()Github提交issues

(5)總結遇到的問題及解決方法
checkstyle配置中出現問題,第一次採用的是在線安裝checkstyle,help->install new solftware 填寫CheckStyle - http://eclipse-cs.sourceforge.NET/update
而後老是出錯不成功。在查看別人的配置方法後,checkstyle配置成功。
實驗小結
由於checkstyle不能彙總審查結果,採用人工的方法逐一分類統計比較麻煩,checkstyle適用在編寫Java代碼過程當中檢測出不規範的編碼並改正,不適合作審查代碼的報告。checkstyle有兩種編碼規範Google和sun,本次實驗採用的是Google編碼規範。鑑於人工列審查清單較麻煩,因此小組採用分工合做,而後進行交流。git

相關文章
相關標籤/搜索