分享

程序员常用软件清单-编程篇 - Keep It Simple,Stupid! - 博客大巴

 suweixin 2011-01-15

程序员常用软件清单-编程篇

khb.hnu@gmail.com

1  编程相关

作为一名程序员,首先当然得先介绍我喜欢用的一些编程相关的软件.Doxygen,Hexplore,SVN,Pc-Lint,Cygwin,Visio,Source Insight,以及一些 VC插件等等.下面对每个软件的功能进行简单介绍.至于每个软件的具体用法,google之,这个不是一两句话可以说得完的.

注:商业软件用C(commence)表示,免费软件用F(free)表示.

1.1  Doxygen(F)

Doxygen 是一个类似 JavaDoc 的文档生成工具.有了它,C++爱好者就可以为自己的源代码很方便地生成美观实用的文档了.C++作为C语言的超集,自然, Doxygen也可以生成C语言程序的文档.而且我写得比较多的还是C语言.

Doxygen运行前需要生成并修改一个配置文件,然后就可以使用了.我挺喜欢里面的函数调用与被调用图,当然这需要装一个画图软件Graphviz. 给一个教程:使用doxygen为C/C++程序生成中文文档(来源:www.fmddlmyy.cn),
花1~2小时你就可以掌握这款好软件.教程中教我们生成chm 文件.我一般就是把这个chm文档交给公司人看的,所有东西都集成在一个文档中,而且不能修改,还具有搜索功能.

官方网址:www.doxygen.org

1.2  Hexplore(F)

Hexplorer 是一款十六进制的文件编辑器,提供了包括用于直观注释的5种配色方案,无限制的取消操作,查找和替换功能,像素浏览器,结构浏览器,分解,变形转换等在内的许多功能.该软件还允许你导出数据到C或者汇编程序,计算校验和,CRC校验值,寻找样式以及更多方面的功能.

这是一款开源软件,比较小巧,我用得比较习惯;

官方网址:hexplorer.sourceforge.net

1.3  SVN(F)

这款软件的主要功能是版本控制.相类似的软件有CVS,Git等.CVS与SVN的作者是同一个人.SVN可以看成是CVS的升级版. 而git 是一个由Linus Torvalds为了更好地管理linux内核开发而创立的分布式版本控制,软件配置管理软件.知道linux的应该都知道Linus Torvalds是谁了,否则面壁去.与常用的版本控制工具 CVS,SVN等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便.Git的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要.Git 最为出色的是它的合并跟踪(merge tracing)能力.

有过开发相对大型项目的人应该都知道这款软件.假如一个项目有1W行以上代码,但是没有用SVN之类的版本控制软件,我不得不说这样项目团队工作效率肯定很低,而且会经常出错误.上面的版本控制我只用过SVN,并打算有时间的话研究一下git.劝那些还没有用过的同仁,花点时间学习这个软件吧,你将收获很多.

国内的SVN中文站点:www.subversion.org.cn

1.4  Pc-Lint(C)

PC-Lint是一个历史悠久,功能异常强劲的静态代码检测工具.它的使用历史可以追溯到计算机编程的远古时代(30多年以前).

PC-Lint是一种针对c/c++的静态代码检测工具,可以说,PC-LINT是一种更加严格的编译器,不仅可以像普通编译器那样检查出一般的语法错误, 还可以检查出那些虽然完全合乎语法要求,但很可能是潜在的、不易发现的错误.

对于那些只有程序没有错误,置警告于不理的程序员,你会很厌恶这款软件.它给出了大量的可能出错的警告信息.如果你希望调试阶段能够更加顺利,软件更加稳固,那么你还是使用它吧,它绝对可以帮上你大忙.通过排除大量的警告信息,你也可以了解到更多更深入的语言特性.

它是一款商业软件,不过你很容易下载破解版.这款软件运行平台是:windows;如果你在linux平台下,那么你选择splint吧,不但功能强劲, 安装和使用也很简单.而且是免费开源的哦.

1.5  Cygwin(F)

如果你是windows重症患者,或者你不方便切换到linux下,又或者你的内存太小装虚拟机很卡,但是你又舍不得linux平台下那些好用的命令行工具, 那么你一定要试一下Cygwin吧,它不会让你失望的,相信我.这叫windows下玩linux:-)

来自维基百科:

       Cygwin是许多自由软件的集合,最初由Cygnus Solutions开发,用于各种版本的Microsoft Windows上,
运行UNIX类系统.Cygwin的主要目的是通过重新编译,将POSIX系统(例如Linux、BSD,以及其他Unix系统)
上的软件移植到Windows上.Cygwin移植工作在Windows NT、Windows 2000、Windows XP
以及Windows Server 2003上比较好,在Windows 95和Windows 98上,相对差劲一些.
目前Cygwin由Red Hat等负责维护.   

国内Cygwin镜像:www.cygwin.cn

1.6  Visio(C)

Visio可以建立流程图、组织图、时间表、营销图和其他更多图表,把特定的图表加入文件,让商业沟通变得更加清晰,令演示更加有趣,使复杂过程更加简单,文档重点更加突出,使我们的工作在一种视觉化的交流方式下变得更有效率. 作为Microsoft Office家族的成员,Visio拥有与Office非常相近的操作界面,所以接触过Word的人都不会觉得陌生.

虽然同样是office的家族成员,这款软件知名度不大,它主要用于画图表.但它是商业软件,还是微软制造的. 安装文件很大,很占空间,我不怎么喜欢.但是有时候又不得不使用.

linux用户可以使用Dia(F).对于绝大多数用户来说,这款软件的功能可以完全替代Visio. 来自维基百科:

  Dia是开放源码的流程图软件,是GNU计划的一部分,程式创立者是Alexander Larsson.Dia使用
single document interface (CSDI)模式,类似于GIMP.Dia将多种需求以模组化来设计,如流程图、网络图、电路图等.
各模组之间的符号仍是可以通用的,并没有限制.Dia可以画多种示意图,并且借由XML可以新增多种图形.
Dia以客制化XML格式(默认以gzip压缩节省空间)加载及储存流程图.

这款开源软件有windows版的.如非必要,我会使用Dia替代Visio.当然,你想画出较炫的流程图,可以用思维导图软件,如:MindManage(C),FreeMind(F)等.

1.7  source insight(C)

看代码的软件,以前用得多,现在基本使用vim/gvim(F)替代.对于那些觉得vim难学的程序员来说,这款软件确实值得一用.特别是对于那些手头有大项目的程序员有用.现在一般用的是3.5版本吧,是商业的英文软件,网上有破解包和汉化包下载,这里不细说罗.顺便提一下,它只运行于windows平台哦.linux下的程序员看代码有两款用得比较多的软件:一款是前面提到的vim/gvim,另一款是emace(F),这款我没用过:-(

1.8  C++ test(C)

C++Test是一个C/C++单元级测试工具,自动测试C/C++类、函数或部件,而不需要编写测试用例、测试驱动程序或桩调用代码.C++Test能够自动测试代码构造(白盒测试)、测试代码的功能性(黑盒测试)和维护代码的完整性(回归测试).C++Test是一个易于使用的产品,能够适应任何开发生命周期.通过将C++Test集成到开发过程中,您能够有效地防止软件错误,提高代码的稳定性,并自动化地实现单元测试(这是极限编程过程的基础).

这同样是一款商业软件,中文资料比较少.不过经过一段时间的使用,基本上能熟悉使用该工具.我喜欢它的自动化测试,当然,你也可以自己添加测试用例和桩函数.

1.9  cmockery(F)

cmockery是google发布的用于C单元测试的一个轻量级的框架.

主要特点: 免费且开源,google提供技术支持; 轻量级的框架,使测试更加快速简单;避免使用复杂的编译器特性,对老版本的编译器来讲,兼容性好; 并不强制要求待测代码必须依赖C99标准,这一特性对许多嵌入式系统的开发很有用;

java单元测试有JUnit,c++单元测试有CppUnit;唯独C语言找不到一款比较好的单元测试工具.这个工具比较小巧,对代码的侵入比较少,最近才入手,觉得很不错的一款软件,google产品,值得信赖!!!

官方网站地址:code.google.com/p/cmockery

1.10  VC插件

VC我用的比较多的是6.0版本,VS2005也用过一段时间.所有这里的插件针对于VC6.0,对VS2005不出意外应该也可以使用,但不敢打包票.

1.10.1  Visual.Assist(C)

这一款我相信Vc程序员都用过,如果没用过,我只能说你太土鳖了,你不是地球上的程序员.毫无疑问,这也是一款商业软件,这个破解包不好找,而且不稳定, 经常死掉.对于IDE重症患者,有它总比没有好吧.它确实能够提高编程效率,同时避免一些拼写错误.中文名称:VC助手.

1.10.2  Rational PurifyPlus for Windows(C)

IBM Rational 软件交付平台(Rational Software Delivery Platform)是一个为软件和基于软件系统的开发提供完整解决方案的集成平台.它允许参与者更有效地操作,并且交付令组织区别于其竞争者的创新的产品和服务,Rose就是Rational中比较有名的一款工具.PurifyPlus也属于其中之一,它又包括以下三个工具:

  1. Purify(C) 检查运行时内存错误
  2. PureCoverage(C) 能自动检查那些代码没有被测试
  3. Quantify(C) 性能检测工具,查出系统瓶颈以便改进运行速度

这些工具不能说是Vc插件,它可以独立运行,它只是Rational这个庞大的软件包中相对较小的几个工具,但是它很强大,提供VC插件使用.

使用C/C++开发的团队一定有被其内存问题折磨过的经历,内存问题一直是C/C++开发人员的心头之痛.特别当程序越来越多时,类的继承和关联越来越多时,内存问题也就越来越多,很多时候,开发人员在不经意的时候就带入了内存问题.

Purify就是一个用来解决内存问题的利器,它是一个Run-Time的工具,也就是说只有在程序运行过程中,根据程序的运行情况来查看在某种运行条件下程序是否有内存上的问题,它可以在一个非常复杂的程序中查找内存错误,包括那种多进程或多线程的程序,它也可以进行测试.具体检测原理google IBM相关网站.

至于PureCoverage与Quantify,使用方法与Purify基本相同.这里不再详细说明.这三款软件对程序开发确实能够起到相当大的作用.这是我喜欢的为数不多的几款商业软件之一.

不过很遗憾的是:Rotional这个工具包我只用得起这三款工具,其他的工具都不会用,上手也太难罗,教程又少,难怪说IBM的培训很贵!

不过linux下有这三款工具对应功能的替代软件,开源的,我喜欢:

  1. varigind(F)
  2. gcov(F)
  3. gporf(F)

以上三款软件具体的不太介绍,开源软件教程也多,随便一搜就一大堆.





    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多