1. 程式人生 > >給c++程式設計師的一份禮物——常用工具集

給c++程式設計師的一份禮物——常用工具集

【宣告】如需複製、傳播,請附上本宣告,謝謝。原文出處:http://morningspace.51.net/,

所謂"工欲善其事,必先利其器",從程式設計師的角度來講,好工具的使用總會給人帶來事半功倍的效果。面對眾多工具/軟體,我們應該如何取捨呢。前不久,筆者在csdn的c++論壇發了一篇貼文,以期能徵求大家的廣泛意見,得到了不錯的反響。本文在對該貼進行整理的基礎上,又做了一些補充。在這裡要特別感謝網友:DanielWYO(愛上小白),redleaves(無心紅葉)。

有以下幾點需要宣告:

  1. 本文主要是針對c++程式設計師的,但一些綜合類的通用型工具/軟體,作為c++程式設計師而言也是不可或缺的,因此也被列入其中。同樣,這些工具/軟體,對其他語言的程式設計師,也是適用的。     
  2. 對所列各類工具/軟體的評價,其依據是多數網友的觀點彙總,並結合了筆者自己的個人觀點,供參考,如有不實之處,歡迎指正。     
  3. 對所列各類工具/軟體的排名不分先後,其中既有Open source軟體,也有商業產品。對於前者,我將提供下載地址,對於後者,我將盡量提供相關資訊的參考網址。     
  4. 這份清單並非static的,所列工具/軟體也遠非保羅永珍,如果你有好的建議和想法,也可以提供。如有必要,我會對該清單作定期更新^_^

開發環境

Turbo c DOS時代c語言開發的經典工具,目前適合兩類人使用:c語言beginner(尤其是學生一族),具有懷舊情節的專業人士:)
Visual C++ 6.0/7.0 穩定而強大的IDE開發環境,具有豐富的除錯功能,定製巨集的功能也是其一大特色。Microsoft的經典之作,功能強大自不必言說。附帶的一些工具也很不錯,比如:Spy++。但編譯器較之同類,支援c++標準的程度不夠好,尤其6.0及以前的版本。
BCB Borland的C++ Builder是可以與VC匹敵的另一個功能強大的IDE,速度和穩定性稍遜,但對c++標準支援的程度較好。
Cygwin Windows平臺下的C++編譯器,基於gcc,又完全相容Window特有的東西,比如對winsock的支援。從http://www.cygwin.com可以找到有關Cygwin的詳細資訊。
Dev-c++ Windows平臺下,一個類似VC、BCB的c++ IDE開發環境,屬於共享軟體。介面親切優雅,size也不大,其4.9.x版有中文語言支援,無需漢化。編譯器基於gcc,完全支援STL。但是對於規模較大的軟體專案,恐怕難以勝任。可以從:http://www.bloodshed.net/dev/devcpp.html找到有關Dev-c++的有關資訊。
Source Insight 有著和Dev c++一樣漂亮的介面,提供程式碼的編輯和察看功能,具有豐富的語法加亮功能,可以像VC一樣自動彈出成員函式的提示,並具有快速方便的函式跳轉功能(但是跳轉速度似乎有點慢)。只是預設設定不適合時,需要仔細的調整和修改。無法查詢經typedef之後的名字。

輔助

Visual Assist VC IDE環境下的輔助程式設計工具,能識別各種關鍵字、函式、成員變數,自動給出tip,並自動更正大小寫錯誤,標示拼寫錯誤等。是VC開發的良好伴侶。
Understand for C++ 一款c/c++IDE程式設計的輔助工具,支援反向工程,程式碼導向和一些統計功能,從http://www.scitools.com可以找到有關Understand for C++的詳細資訊。

程式編輯器

EditPlus 一款很不錯的文字編輯軟體,功能強大卻又十分輕巧。支援不同語言的語法加亮,還有Project組織功能,具有豐富的自定義功能。通過設定User Tool,可以和其他語言編譯器結合,形成一個簡單的IDE。
Ultra Edit 功能和EditPlus相當,通過指令碼檔案提供的配置功能可以定製編輯環境,但自6.0版以後一直沒多大變化,就程式設計而言,自定義設定沒有EditPlus方便。
EMACS 公認的世界上功能最多,最複雜的文字編輯器,其實也可以當作程式設計師用的編輯器。
Visual Slick Edit 一個功能強大的程式設計師用編輯器。最值得一提的是其定製功能,很好用,可以和EMACS相比。自帶了一套PCODE直譯器,用c的語法,還可以掛接動態庫。配合mingw一起使用很方便。從http://www.slickedit.com可以找到有關SlickEdit的詳細資訊。
IQEdit 全功能的程式設計師用編輯器,介面很漂亮,從http://pwksoftware.com可以找到有關IQEdit的詳細資訊。

UML/建模

Rational Rose 強大的建模工具,早已"家喻戶曉",功過自然不必多加評說了。從http://www.rationalsoftware.com.cn可以找到有關Rational Rose的詳細資訊。
Visual Modeler MS Visual Studio 6.0所附的小工具。屬於Rational和MicroSoft合作的戰略產品,是Rose的簡化版。
Visio Microsoft的建模工具,感覺更人性化一些,但功能沒有Rose多、強、專,支援正向的程式碼生成,以及對程式碼的反向工程。
Together 另一款功能強大的建模工具,用java編寫而成,口碑不錯,不過速度稍稍慢了一些。從http://www.togethersoft.com可以找到有關Togather的詳細資訊,另外,以下網址提供了一個有關Together的教程:
http://www.cc.puv.fi/~tka/kurssit/Tietojarjestelmien_suunnittelu/together/TCCGuide6
Visual UML 支援多種語言型別,比如:VC、VB、DELPHI、CORBA IDL等,可以直接從UML設計圖生成程式碼,簡單易用,完全適合Personal use,介面也很清爽。從http://www.visualObject.com可以找到有關Visual UML的詳細資訊。
SmartDraw 通用圖表製作軟體,可以用來製作組織機構圖、流程圖、統計圖表等。隨帶有相簿,基本滿足製作各類圖表的需要。從http://www.smartdraw.com可以找到有關SmartDraw的詳細資訊。
PlayCase 國產面向物件的建模軟體,相容UML和IDEF,輕量級軟體,只是介面看起來有點簡樸,乃是高展先生用Delphi完成的。

版本控制

ClearCase Rational的版本控制管理軟體,功能強大,可以控制多種型別的文件,甚至包括Word、Excel、PowerPoint文件。但使用複雜,不易上手,且不是免費軟體。
CVS 為基於Web的分散式協同開發提供了版本控制管理手段,且是免費軟體,可以通過指令碼定製功能。但在許可權控制方面功能相對較弱。
VSS 微軟的版本控制管理工具,功能相對簡單,適合於小型團隊開發,將其整合到微軟的其他開發工具中,使用起來十分方便。
SourceOffSite 微軟為開發人員提供的遠端訪問VSS資料庫的工具,使資料庫得以遠端更新,以支援遠端辦公。


其他的版本管理工具還包括:PVCS、VCS、RCS等。

XML

expat 用於讀取和處理XML文件的c函式庫,最初是James Clark的個人作品,簡單輕巧,且速度快。但支援的編碼方式有限,最遺憾的是不支援中文。從http://expat.sourceforge.net可以找到有關expat的詳細資訊。
xml4c IBM的XML Parser,用c++語言寫就,功能超級強大。號稱支援多達100種字元編碼,能夠支援中文,適合於大規模的xml應用。若只是很小範圍的應用,則非最佳選擇,畢竟,你需要"揹負"約12M左右的dll的沉重負擔。從http://www.alphaworks.ibm.com/tech/xml4c可以找到有關xml4c的詳細資訊。
Xerces c++ Apache的XML專案,同樣是c++實現,來源於IBM的xml4c,因此程式設計介面也是和xml4c一致的。但是目前只支援少數的字元編碼,如ASCII,UTF-8,UTF-16等,不能處理包含中文字元的XML文件。從http://xml.apache.org/xerces-c可以找到有關Xerces c++的詳細資訊。

測試

CppUnit 一個c++的單元測試框架,可以通過派生測試類的方式,定製具體的測試方案。xUnit家族的一員,從JUnit移植而來,JUnit是Java語言的單元測試框架。從http://cppuint.sourceforge.net可以找到有關CppUint的詳細資訊。
Rational ROBOT Rational的自動化測試工具,通過編寫指令碼的方式提供自動化測試特性。其GUI方式的指令碼錄製功能,有助於對GUI軟體進行功能測試;其VU方式的指令碼錄製功能,有助於測試某些軟體的資料通訊功能。
Rational Purify 同樣是Rational的自動化測試工具,不需要被測程式的原始碼,可以用來檢查記憶體訪問錯誤、Windows API呼叫錯誤等,以完成軟體的可靠性測試,屬於白盒測試。


其他的Rational測試工具還包括:TestFactory、PureCoverage、TestManager等。

日誌

log4cpp 一個用於日誌記錄的c++函式庫,可以將內容以定製的方式記錄到不同的目的地,比如:檔案、控制檯、syslog等,同時還可以通過控制記錄級別來遮蔽掉某些無關記錄。從http://log4cpp.sourceforge.net可以找到有關log4cpp的詳細資訊。

註釋

Doc++ 註釋文件生成工具,根據源程式中的文件註釋,可以輸出TeX和HTML格式的文件。除了支援c/c++語言外,還支援IDL和java。僅提供命令列使用方式。從http://docpp.sourceforge.net可以找到有關Doc++的詳細資訊。
Doxygen 註釋文件生成工具,較之Doc++功能更為齊全,可以生成包括HTML、PDF、RTF在內的多種格式的文件,並有GUI介面,除了支援c/c++語言外,還支援IDL、java、PHP、c#等。從http://www.stack.nl/~dimitri/doxygen可以找到有關Doxygen的詳細資訊。