【声明】如需复制、传播,请附上本声明,谢谢。原文出处:http://morningspace.51.net/,moyingzz@etang.com

  所谓"工欲善其事,必先利其器",从程序员的角度来讲,好工具的使用总会给人带来事半功倍的效果。面对众多工具/软件,我们应该如何取舍呢。前不久,笔者在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的详细信息。

给c++程序员的一份礼物——常用工具集的更多相关文章

  1. Java程序员常用工具集

    我发现很多人没办法高效地解决问题的关键原因是不熟悉工具,不熟悉工具也还罢了,甚至还不知道怎么去找工具,这个问题就大条了.我想列下我能想到的一个Java程序员会用到的常用工具. 一.编码工具 1.IDE ...

  2. 好程序员web前端分享css常用属性缩写

    好程序员web前端分享css常用属性缩写,使用缩写可以帮助减少你CSS文件的大小,更加容易阅读.css缩写的主要规则如下: 颜色 16进制的色彩值,如果每两位的值相同,可以缩写一半,例如: #0000 ...

  3. Java程序员必备的 15框开发工具

    15款Java程序员必备的开发工具 如果你是一名Web开发人员,那么用膝盖想也知道你的职业生涯大部分将使用Java而度过.这是一款商业级的编程语言,我们没有办法不接触它. 对于Java,有两种截然不同 ...

  4. Java 程序员最喜欢使用的日常工具

    多年来,Java 始终是企业应用程序的支柱.最近几年,Java 也是 Android 开发的首选编程语言.不过开发人员如何使用这种语言呢?一项新的研究阐明了主要使用 Java 的开发人员的工作类型,以 ...

  5. Java 程序员生产神器 IDEA 的常用快捷键、插件及设置

    对于 Java 程序员来说,使用 IDEA 集成环境是最称手的.优点不多讲,用过的人都知道.IDEA 虽好,但为了充分利用 IDEA 的优势,我分享一下我常用快捷键.插件和设置. 常用快捷键 Ctrl ...

  6. .Net程序员飞扬有用的85个工具

    1.Visual Studio Visual Studio Productivity Power tool:Visual Studio专业版(及以上)的扩展,具有丰富的功能,如快速查找,导航解决方案, ...

  7. 对ASP.NET程序员非常有用的85个工具

    介绍 这篇文章列出了针对 ASP.NET 开发人员的有用工具. 工具 1. Visual Studio Visual Studio Productivity Power tool:Visual Stu ...

  8. Java程序员在用的大数据工具,MongoDB稳居第一!

    据日前的一则大数据工具使用情况调查,我们知道了Java程序猿最喜欢用的大数据工具. 问题:他们最近一年最喜欢用什么工具或者是框架? 受访者可以选择列表中的选项或者列出自己的,本文主要关心的是大数据工具 ...

  9. 程序员必须知道的HTML常用代码有哪些?

    HTML即超文本标记语言,是目前应用最为广泛的语言之一,是组成一个网页的主要语言.在现今这个HTML5华丽丽地占领了整个互联网的时候,如果想要通过网页抓住浏览者的眼球光靠因循守旧是不行的,程序猿们需要 ...

随机推荐

  1. Swift中的ViewController

    ViewController是iOS应用程序中重要的部分,是应用程序数据和视图之间的重要桥梁,ViewController管理应用中的众多视图.iOS的SDK中提供很多原生ViewController ...

  2. java--多线程之Runnable

    引读: 上一篇博文中讲了Thread的继承,存在一个问题就是,如果类本身已经继承了某个父类,又要继承Thread,导致多重继承. [但是我们知道接口是实现多重继承的重要方式].java提供了Runna ...

  3. 知识点1-4:ASP.NET MVC的好处

    ASP.NET MVC解决了ASP.NET Web Form的许多缺点.当在.NET平台上开发新的应用程序时,这使ASP.NET MVC成为一种更好的选择. 1. 对HTML的完全控制 2. 对URL ...

  4. 给VS自动添加注释

    找到类文件所在路径:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ItemTemplatesCache\CSharp\ ...

  5. jQuery 简单滑动轮播图效果

    一般页面简单轮播图效果用jQuery制作更加简单.我们来看看以下效果是如何来进行制作的. 其html结构下所示: <div id="box">         < ...

  6. 有关oppo蝴蝶解锁的三D技术

    oppo手机的界面设计也是很漂亮的.在很多界面中使用了3D技术塑造出了大量华丽的效果.在蝴蝶解锁中使用了两个对称的三D变幻,宛如蝴蝶翅膀上美丽的花纹.在受到用户点击后,随风缓慢上下扇动,充满浪漫的动感 ...

  7. stm32智能小车之路之小车启动

           首先.安装完小车后最激动的还是想让他跑动,那么就開始吧.写个简单的程序測试下电机是否正常.打开keil软件新建一个project,详细简历keilproject不会的请百度.或者call ...

  8. Java 获取到配置文件信息

    Java程序将数据库或者服务器IP写入到代码中,难免缺少灵活性. 如果写入到配置文件,部署到不通服务器上,只需要修改配置文 件即可. Java怎么读取配置文件 /** * 获取到配置文件信息 * @p ...

  9. springMVC 使用jstl

    jsp页面获取数据,感觉最方便的就是使用jstl+EL了,各种封装好的函数非常简单易用,接下来写如何使用jstl: 1.下载jstl-1.2_1.jar 2.由于项目是: xmlns="ht ...

  10. perl 处理perl返回的json

    [root@wx03 ~]# cat a14.pl use Net::SMTP; use LWP::UserAgent; use HTTP::Cookies; use HTTP::Headers; u ...