講到C++的可視化設計,一般都會想到 類圖、流程圖、互動圖、部署圖等,沒錯,UML設計是C++代碼設計之前的必選項(當然對于産品經理們更關注UI,他們更願意使用Axure),但是這些不是我們所關心的,本節我們要談的是系統開發完成以後的設計圖、文檔。
這些内容可以通過UML給出嗎?當然可以,但我相信大多數人無法做到這一點,因為在開發過程中大部分的設計早已面目全非,想保持同步的更新?(做夢吧!)
你需要三個工具:
Doxgen 大名鼎鼎的代碼文檔工具,下載下傳位址:http://www.stack.nl/~dimitri/doxygen/
Graphviz 貝爾實驗室的一個開源繪圖工具,通過dot語言編寫繪圖腳本,下載下傳位址:http://www.graphviz.org/Download..php
HTMLHelp 這個是可選項了,生成HTML文檔、CHM文檔的輔助工具,不作為本節介紹内容。
我們先來看 GraphicViz 的使用方式。
$ cat 1.dot
digraph G {
main -> parse -> execute;
main -> init;
main -> cleanup;
execute -> make_string;
execute -> printf
init -> make_string;
main -> printf;
execute -> compare;
}
回頭再來看 Doxgen,Linux下安裝比較簡單,我們可以輸入指令行:
sudo apt-get install doxygen
sudo apt-get install graphviz
當然在 Windows 下安裝更友善,隻需要輕按兩下 下載下傳下來的exe,這個就不用我教了吧,呵呵。
那接下來讓 Doxgen 生成文檔圖吧,打開傳說中的 Doxgen。
選擇你需要生成的文檔,确定選項,直接進行代碼生成。
Doxgen生成文檔的依據就是注釋,我們來看一下常用的 注釋格式:
/** 頭檔案定義
* @file ClassName.h
* @brief 常見類型定義
* @author Linolzhang
* @date 2017-1-1
* @version 0.1
* @copyright Linolzhang
*/
/** 代碼段定義*/
#define CODE_LEVEL 2
#define NAME "Linolzhang"
const int Count = 20; /**< 單行定義-字尾方式*/
/** 函數定義
* @param[in] a 輸入a,整形
* @param[in] b 輸入b,整形
* @param[out] c 輸出
* @return 傳回值, 0正确,1錯誤
* @ref 參考Types.h
* @note 注意:僅支援<1024的加法
* @see 注意事項
*/
int add(int a,int b,int& c);