1) 瞭解代碼審查的含義;java
2) 掌握相關編程規範檢查工具的安裝與使用;python
Code Review中文應該譯做「代碼審查」或是「代碼評審」或「代碼複查」,是指經過閱讀代碼來檢查源代碼與編碼標準的符合性以及代碼質量的活動。Code Review主要用來在軟件工程過程當中改進代碼質量,經過代碼評審能夠達到以下目的:git
●在項目早期就可以發現代碼中的BUG程序員
●幫助初級開發人員學習高級開發人員的經驗,達到知識共享github
●避免開發人員犯一些很常見,很普通的錯誤編程
●保證項目組人員的良好溝通python3.x
●項目或產品的代碼更容易維護安全
代碼評審主要內容是編程規範,重構方法,架構設計,性能安全,日誌,可讀性,擴展性等問題。經過代碼評審可查找和修復引入到開發階段的應用程序的錯誤,提升軟件的總體素質和開發者的技能。代碼評審的做用和意義已在不少技術團隊內達成共識,但是不少時候並未被有效執行,甚至被認爲是一項費時費力的工做。藉助一些工具能夠更容易,更有效率地來進行Code Review。架構
一、以小組形式,針對前面「實驗一」中所完成的代碼,進行代碼評審(走查),重點檢查如下狀況。你也可有查詢相關材料,創建更細化的檢查清單(check list)eclipse
- 程序是否能正常工做,代碼是否實現預期的功能,邏輯是否正確。
- 代碼是否遵循的編程規範
- 代碼是否儘量的模塊化
- 全部的數據輸入是否都進行了檢查
- 是否有註釋,而且描述了代碼的意圖
- 代碼的可理解性和可測試性
二、按「實驗二」的分組方式,兩人一組,隨機分配另外一組的代碼做爲本組評審和分析的對象
一些編碼規範的檢查工具以下,也可自行查找工具使用。
java語言
- 採用使用eclipse Checkstyle插件
- CheckStyle是SourceForge下的一個項目,提供了一個幫助JAVA開發人員遵照某些編碼規範的工具。它可以自動化代碼規範檢查過程,從而使得開發人員從這項重要但枯燥的任務中解脫出來。它能夠根據設置好的編碼規則來檢查代碼。好比符合規範的變量命名,方法體的最大行數,重複代碼檢查等等。
若是你使用idea ,可使用Alibaba Java Code Guidelines插件,參考連接以下:https://github.com/alibaba/p3c/wiki/IDEA%E6%8F%92%E4%BB%B6%E4%BD%BF%E7%94%A8%E6%96%87%E6%A1%A3
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並報告,想向項目全部人詢問或用來追蹤各類想法探討準備實施的任務。
(1)配置代碼審查工具。要求採用屏幕截圖的方式配置的過程;
觀察所審查的項目,其使用c語言編寫,故使用Google代碼規範工具Cpplint來對其進行代碼審查。
在https://github.com/google/styleguide/blob/gh-pages/cpplint/cpplint.py中下載cpplint.py文件
使用cmd運行測試其可用
(2)使用工具對原始代碼進行評審和分析,記錄結果,期間不要有任何修改;
使用git獲取項目的原始代碼
使用cpplint工具對源代碼進行分析
(3)對工具執行結果進行人工分析,結合檢查清單和人工走查的出代碼修改建議;
其中主要有如下問題:
1.使用了Tab做縮進符,使用空格更好。
2.{應該放在單獨一行。
3.一行應該小於80個字符。
4.考慮使用rand.r(…)而不是rand(…)來提升安全性
5.使用{時先加空格分隔
6.在註釋和//之間應該加空格分隔
(4)經過github issues向項目維護者提交問題(issue),注意一個issue 只報告一個問題,多個問題需放在多個issue中,以便跟蹤。
(5)記錄總結實驗過程當中遇到的問題和解決過程
問題和解決過程:
1.使用python3.x時使用cpplint沒有顯示,安裝了python2.x才正常使用。
2.cmd中使用中文名一直沒法分析,修改文件名後能夠正常分析。
經過代碼評審,我才知道咱們本身寫的代碼和標準格式和要求的代碼還有很大的差距,縮進、符號的使用上存在許多不足,只有從此多注意這種細小的問題才能進步,成爲合格的程序員。