1、AStyle格式化代碼
安裝AStyle,並把bin目錄加入環境變數中 在vimrc中加入以下設定代碼
"調用AStyle程式,進行代碼美化func CodeFormat() "取得當前游標所在行號 let lineNum = line(".") "C來源程式 if &filetype == 'c' "執行調用外部程式的命令 exec "%! astyle -A3Lfpjk3NS\<CR>" "H標頭檔(檔案類型識別為cpp),CPP來源程式 elseif &filetype == 'cpp' "執行調用外部程式的命令 exec "%! astyle -A3Lfpjk3NS\<CR>" "JAVA來源程式 elseif &filetype == 'java' "執行調用外部程式的命令 exec "%! astyle -A2Lfpjk3NS\<CR>" else "提示資訊 echo "不支援".&filetype."檔案類型。" endif "返回先前游標所在行 exec lineNumendfunc"映射代碼美化函數到Shift+f快速鍵map <S-F> <Esc>:call CodeFormat()<CR>
2 SourceMonitor:識別壞味道
解決了代碼風格後,是否就可以算做漂亮的代碼了呢。
要知道再漂亮的衣服穿到胖子身上,也漂亮不到哪去(阿門,原諒我吧)。對於代碼來說,符合代碼風格只是第一步,漂亮的代碼還要易於理解。讓人容易理解的話,單個函數的程式碼就不能太長,嵌套層數就不能太多,分支條件判斷不能太多。這些工作不是代碼風格能解決的。我們需要能夠自動檢查代碼品質的工具-SourceMonitor。
SourceMonitor是一款代碼品質檢查的軟體。能夠檢查檔案中函數的個數,每個函數的程式碼數,注釋比例,函數的調用深度,循環複雜度等。
其中需要最關鍵的是每個函數循環複雜度和每個函數的程式碼數。循環複雜度是指函數中可獨立執行的路徑,因此函數中每出現一次if/else/while,switch/case/break等,循環複雜度就加1.循環複雜度越高,說明函數中可執行檔路徑越多,也就越複雜。超過一定值如(15或者10)以後就要考慮能否將函數重構了。此外一個函數的程式碼數如果太長,不能一屏顯示的話,不容易讓人記住和理解,也需要對該函數進行提煉。
3 Eclipse的半自動重構
利用SourceMonitor找出需要重構或提煉的函數後,難道又要我手工重構嗎,有沒有重構的工具呢。全自動的目前還沒見過,如果有同學見到,請留言。相比來說,半自動的重構工具還是比較多的,Eclipse中就有一個重構菜單,提供函數提煉,變數或方法重新命名等不少基礎的重構功能。
Eclipse的半自動的重構能減少人工重構的錯誤,降低開發人員所耗費的精力,這也是為什麼一個我作為C/C++程式員越來越喜歡Eclipse的原因。
4、VisualStdio可以使用StyleCop進行代碼審查