所謂“工欲善其事,必先利其器”,從程序員的角度來講,好工具的使用總會(huì)給人帶來事半功倍的效果。面對(duì)眾多工具/軟件,我們應(yīng)該如何取舍呢。前不久,筆者在csdn的c++論壇發(fā)了一篇 貼文 ,以期能征求大家的廣泛意見,得到了不錯(cuò)的反響。本文在對(duì)該貼進(jìn)行整理的基礎(chǔ)上,又做了一些補(bǔ)充。在這里要特別感謝網(wǎng)友:DanielWYO(愛上小白),redleaves(無心紅葉)。
有以下幾點(diǎn)需要聲明:
- 本文主要是針對(duì)c++程序員的,但一些綜合類的通用型工具/軟件,作為c++程序員而言也是不可或缺的,因此也被列入其中。同樣,這些工具/軟件,對(duì)其他語言的程序員,也是適用的。
- 對(duì)所列各類工具/軟件的評(píng)價(jià),其依據(jù)是多數(shù)網(wǎng)友的觀點(diǎn)匯總,并結(jié)合了筆者自己的個(gè)人觀點(diǎn),供參考,如有不實(shí)之處,歡迎指正。
- 對(duì)所列各類工具/軟件的排名不分先后,其中既有Open source軟件,也有商業(yè)產(chǎn)品。對(duì)于前者,我將提供下載地址,對(duì)于后者,我將盡量提供相關(guān)信息的參考網(wǎng)址。
- 這份清單并非static的,所列工具/軟件也遠(yuǎn)非保羅萬象,如果你有好的建議和想法,也可以提供。如有必要,我會(huì)對(duì)該清單作定期更新^_^
[開發(fā)環(huán)境]
Visual C++ 6.0/7.0 穩(wěn)定而強(qiáng)大的IDE開發(fā)環(huán)境,具有豐富的調(diào)試功能,定制宏的功能也是其一大特色。Microsoft的經(jīng)典之作,功能強(qiáng)大自不必言說。附帶的一些工具也很不錯(cuò),比如:Spy++。但編譯器較之同類,支持c++標(biāo)準(zhǔn)的程度不夠好,尤其6.0及以前的版本。
BCB Borland的C++ Builder是可以與VC匹敵的另一個(gè)功能強(qiáng)大的IDE,速度和穩(wěn)定性稍遜,但對(duì)c++標(biāo)準(zhǔn)支持的程度較好。
Cygwin Windows平臺(tái)下模擬unix環(huán)境的C++編譯器,基于gcc,又完全兼容Window特有的東西,比如對(duì)winsock的支持。從
http://www.cygwin.com可以找到有關(guān)Cygwin的詳細(xì)信息。
Dev-c++ Windows平臺(tái)下,一個(gè)類似VC、BCB的c++ IDE開發(fā)環(huán)境,屬于共享軟件。界面親切優(yōu)雅,size也不大,其4.9.x版有中文語言支持,無需漢化。編譯器基于gcc,完全支持STL。但是對(duì)于規(guī)模較大的軟件項(xiàng)目,恐怕難以勝任??梢詮?http://www.bloodshed.net/dev/devcpp.html找到有關(guān)Dev-c++的有關(guān)信息。
Source Insight 有著和Dev c++一樣漂亮的界面,提供代碼的編輯和察看功能,具有豐富的語法加亮功能,可以像VC一樣自動(dòng)彈出成員函數(shù)的提示,并具有快速方便的函數(shù)跳轉(zhuǎn)功能(但是跳轉(zhuǎn)速度似乎有點(diǎn)慢)。只是默認(rèn)設(shè)置不適合時(shí),需要仔細(xì)的調(diào)整和修改。無法查找經(jīng)typedef之后的名字。
[輔助]
Visual Assist VC IDE環(huán)境下的輔助編程工具,能識(shí)別各種關(guān)鍵字、函數(shù)、成員變量,自動(dòng)給出tip,并自動(dòng)更正大小寫錯(cuò)誤,標(biāo)示拼寫錯(cuò)誤等。是VC開發(fā)的良好伴侶。
Understand for C++ 一款c/c++IDE編程的輔助工具,支持反向工程,代碼導(dǎo)向和一些統(tǒng)計(jì)功能,從
http://www.scitools.com可以找到有關(guān)Understand for C++的詳細(xì)信息。
[程序編輯器]
Ultra Edit 功能和EditPlus相當(dāng),通過腳本文件提供的配置功能可以定制編輯環(huán)境,但自6.0版以后一直沒多大變化,就編程而言,自定義設(shè)置沒有EditPlus方便。
EMACS 公認(rèn)的世界上功能最多,最復(fù)雜的文本編輯器,其實(shí)也可以當(dāng)作程序員用的編輯器。
Visual Slick Edit 一個(gè)功能強(qiáng)大的程序員用編輯器。最值得一提的是其定制功能,很好用,可以和EMACS相比。自帶了一套PCODE解釋器,用c的語法,還可以掛接動(dòng)態(tài)庫。配合mingw一起使用很方便。從
http://www.slickedit.com可以找到有關(guān)SlickEdit的詳細(xì)信息。
[UML/建模]
Visual Modeler MS Visual Studio 6.0所附的小工具。屬于Rational和MicroSoft合作的戰(zhàn)略產(chǎn)品,是Rose的簡化版。
Visio Microsoft的建模工具,感覺更人性化一些,但功能沒有Rose多、強(qiáng)、專,支持正向的代碼生成,以及對(duì)代碼的反向工程。
Visual UML 支持多種語言類型,比如:VC、VB、DELPHI、CORBA IDL等,可以直接從UML設(shè)計(jì)圖生成代碼,簡單易用,完全適合Personal use,界面也很清爽。從
http://www.visualObject.com可以找到有關(guān)Visual UML的詳細(xì)信息。
SmartDraw 通用圖表制作軟件,可以用來制作組織機(jī)構(gòu)圖、流程圖、統(tǒng)計(jì)圖表等。隨帶有圖庫,基本滿足制作各類圖表的需要。從
http://www.smartdraw.com可以找到有關(guān)SmartDraw的詳細(xì)信息。
PlayCase 國產(chǎn)面向?qū)ο蟮慕\浖?,兼容UML和IDEF,輕量級(jí)軟件,只是界面看起來有點(diǎn)簡樸,乃是高展先生用Delphi完成的。
[版本控制]
ClearCase Rational的版本控制管理軟件,功能強(qiáng)大,可以控制多種類型的文檔,甚至包括Word、Excel、PowerPoint文檔。但使用復(fù)雜,不易上手,且不是免費(fèi)軟件。
CVS 為基于Web的分布式協(xié)同開發(fā)提供了版本控制管理手段,且是免費(fèi)軟件,可以通過腳本定制功能。但在權(quán)限控制方面功能相對(duì)較弱。
VSS 微軟的版本控制管理工具,功能相對(duì)簡單,適合于小型團(tuán)隊(duì)開發(fā),將其整合到微軟的其他開發(fā)工具中,使用起來十分方便。
SourceOffSite 微軟為開發(fā)人員提供的遠(yuǎn)程訪問VSS數(shù)據(jù)庫的工具,使數(shù)據(jù)庫得以遠(yuǎn)程更新,以支持遠(yuǎn)程辦公。
其他的版本管理工具還包括:PVCS、VCS、RCS等。
[XML]
expat 用于讀取和處理XML文檔的c函數(shù)庫,最初是James Clark的個(gè)人作品,簡單輕巧,且速度快。但支持的編碼方式有限,最遺憾的是不支持中文。從
http://expat.sourceforge.net可以找到有關(guān)expat的詳細(xì)信息。
xml4c IBM的XML Parser,用c++語言寫就,功能超級(jí)強(qiáng)大。號(hào)稱支持多達(dá)100種字符編碼,能夠支持中文,適合于大規(guī)模的xml應(yīng)用。若只是很小范圍的應(yīng)用,則非最佳選擇,畢竟,你需要“背負(fù)”約12M左右的dll的沉重負(fù)擔(dān)。從
http://www.alphaworks.ibm.com/tech/xml4c可以找到有關(guān)xml4c的詳細(xì)信息。
Xerces c++ Apache的XML項(xiàng)目,同樣是c++實(shí)現(xiàn),來源于IBM的xml4c,因此編程接口也是和xml4c一致的。但是目前只支持少數(shù)的字符編碼,如ASCII,UTF-8,UTF-16等,不能處理包含中文字符的XML文檔。從
http://xml.apache.org/xerces-c可以找到有關(guān)Xerces c++的詳細(xì)信息。
[測試]
CppUnit 一個(gè)c++的單元測試框架,可以通過派生測試類的方式,定制具體的測試方案。xUnit家族的一員,從JUnit移植而來,JUnit是Java語言的單元測試框架。從
http://cppuint.sourceforge.net可以找到有關(guān)CppUint的詳細(xì)信息。
Rational ROBOT Rational的自動(dòng)化測試工具,通過編寫腳本的方式提供自動(dòng)化測試特性。其GUI方式的腳本錄制功能,有助于對(duì)GUI軟件進(jìn)行功能測試;其VU方式的腳本錄制功能,有助于測試某些軟件的數(shù)據(jù)通訊功能。
Rational Purify 同樣是Rational的自動(dòng)化測試工具,不需要被測程序的源代碼,可以用來檢查內(nèi)存訪問錯(cuò)誤、Windows API調(diào)用錯(cuò)誤等,以完成軟件的可靠性測試,屬于白盒測試。
其他的Rational測試工具還包括:TestFactory、PureCoverage、TestManager等。
[日志]
log4cpp 一個(gè)用于日志記錄的c++函數(shù)庫,可以將內(nèi)容以定制的方式記錄到不同的目的地,比如:文件、控制臺(tái)、syslog等,同時(shí)還可以通過控制記錄級(jí)別來屏蔽掉某些無關(guān)記錄。從
http://log4cpp.sourceforge.net可以找到有關(guān)log4cpp的詳細(xì)信息。
[注釋]
Doc++ 注釋文檔生成工具,根據(jù)源程序中的文檔注釋,可以輸出TeX和HTML格式的文檔。除了支持c/c++語言外,還支持IDL和java。僅提供命令行使用方式。從
http://docpp.sourceforge.net可以找到有關(guān)Doc++的詳細(xì)信息。