说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

开发者需知的10类工具

HTML文档下载 WORD文档下载 PDF文档下载
作为一个软件开发者,你不可避免地需要用到各种工具来设计、理解、编辑任何程序,本文中按类型总结了10类开发者须知的工具,并各列举了一些知名应用软件。

作为一个软件开发者,你不可避免地需要用到各种工具来设计、理解、编辑任何程序,本文作者按类型总结了10类开发者须知的工具。CSDN摘译如下:

免责声明:“最好”的软件工具通常属于主观看法,也许你并不同意我的观点,但是也可以从中获取所需。

1. 版本控制工具

无论你是在100人的团队,还是一个人做设计、开发,版本控制工具都能让你从中获益。

通过版本控制工具,你可以保留同一文件中在不同时期的版本,这对图表和二进制文件都适用,尤其适合文本类型文件。

主流版本控制工具可以分为两种:集中式和分布式。集中式版本控制工具需要一个服务器存储仓库,你可以在合适的时候把代码提交到服务器上。而分布式版本控制工具(DVCS)则不需要中心服务器:每个仓库的使用者都有自己的本地缓存,将更新从一个本地仓库传递到另一个的过程非常简单只需要从源系统push或者从目标系统pull即可。

目前最流行的开源版本控制工具要数Subvision(SVN)、Git以及Mercurial(hg)了,其中SVN是集中式版本控制工具,Git和Mercurial则是分布式的。

值得注意的是,有很多知名网站提供仓库托管服务,比如bitbucket.org、SourceForge、GoogleCode以及Github等等,这些网站都提供免费托管服务,但在具体服务支持与收费上各不相同。

2. 文件比较工具

无论你是想要与版本控制系统合并代码,还是仅仅想要比较两个文件的不同,文件比较工具都是非常有用的。其中diff是一个非常有名的命令行比较工具,我也喜欢Beyond Compare这款图形界面比较工具——可惜它并非免费,但是并不贵而且简单、强大。除此之外,常见文件比较工具还有SourceGearDiffMerge(免费、跨平台=Windows/OS X/Linux),Compare It!(收费、仅支持Windows),DeltaWalker(较贵、仅支持OSX)以及UltraCompare(较贵、跨平台)。

3. 编辑器

处理文本文件的难以取决于你使用的软件。重量级的编辑器,如Eclipse、NetBeans、Visual Studio都属于是IDE(integrateddevelopment environment,集成开发环境),如果你需要做特定的工作,他们都非常强大。但有时候你仅仅想要简单、快速地编辑文件,系统自带的编辑器(Windows下的Notepad和Machine下的TextEdit)虽然轻量但是不够强大。这里介绍几个中量级的编辑器:Windows平台的Notepad++、Mac平台的TextWrangler都是不错的免费编辑器,还有GNUemacs、Vim这样强大、可扩展的自由软件。

4. 构建工具

如果你使用IDE进行开发,仅仅单击“Build”即可以为你编译程序的源代码。但是注意:编译软件时常常有很多细节的编译选项,而使用IDE时常常被深藏在复杂的菜单中。我认为,专业的程序员应该使用可定义的构建工具,选择正确的编译选项达到最优效果。

5. 脚本工具

有时候你需要快速整合多个软件以达到某个目的,这时很难选择C或者C++这样需要编译的编程语言,因为它们在执行前需要先编译成可执行的文件。此时,更好的解决方案是脚本语言,它们通常集成在操作系统中,编写一个脚本甚至可以在多台计算机中运行。

常见现代脚本语言有Python、Ruby、Groovy、awk、Perl等等。不论你更喜欢那种,我建议你选择其中一款。我很喜欢Python,不仅因为它简单、鼓励好的编程规范,而且拥有强大的调试工具——基于Eclipse的PyDev。借助PyDev,你可以设置断点、并端部执行你的脚本。

6. 数值分析工具

除非你打算做一些及其简单的项目,或者为嵌入式系统进行逻辑编程,你常常会需要对数据有一个直观地了解——图表、或者曲线图,又或者仅仅想要解一个方程,这时候你会需要数据分析工具,比如MATLAB、Mathematica、MathCAD,它们都非免费,甚至价格昂贵,但是价格强大。

如果你的需求简单,SciLab、Octave、PyLab这些MATLAB的免费“克隆”版本也提供了某些MATLAB的基本功能,语法也与MATLAB相近或相同。其中PyLab用Python实现,如果你懂Python,或许可以将其利用到科学计算领域。

7. 文档工具

工程环境中,你常常需要和他人分享想法,很多软件都可以做到这点,比如使用微软的Visio可以提供流程图、表,Word来编辑文档,PowerPoint来做演示。但它们都非免费,有时候你更需要免费或者更特化的文档工具。

  • 图形可视化工具——我常用的是基于命令行的graphviz,以及拥有交互界面的yEd。    
  • 流程图——使用图形表达思路。Quick Sequence Diagram Editor很基本,但是足以帮助你达到绘制这些图形的目的。    
  • 排版工具——你可以使用WYSIWYG工具,也可以选择非WYSIWYG软件,又或者TeX、LaTeX,随个人喜好。    
  • 代码自文档工具——Doxygen很常见,可以将代码中的注释转化成文档,JavaDoc则是转为Java设计的文档工具。    

8. 终端以及通信工具

有时候你会需要通过串口进行通信,这时你就需要终端工具了,在Web浏览器出现之前,这更为常见。曾经与Windows绑定的HyperTerminal不够强大,不建议使用,而且微软在Vista之后也不再集成它。我个人更喜欢PuTTYtel和TeraTermPro。其它通信工具如FTP及其安全变种SFTP、SCP方面我最喜欢Cyberduck,现在支持Mac和Windows。

9. 软件QA(质量保障)工具

对于开发者来说,为避免bug你肯定需要QA工具。我不是很清楚这方面,但是知道大概可以分以下几类:

  • 静态分析工具。它是一种分析软件的工具,既可以分析软件源代码,也可以分析编译后的文件。最出名的莫过于面向C语言的lint,lint会像老是一样在你代码的错误之处标出红线,标出你的错误。Java语言有FindBugs对应,能够帮助衡量代码复杂度——通常好的程序设计函数比较小,如果某个函数超过20-30行代码,你可以考虑将其分解了,这样也更便于设计和调试。    
  • 单元测试和代码覆盖率。大型软件测试通常极难,这是公认的;但是使用“单元测试”测试更小的软件模块却简单得多。但是单元测试同样也有不擅长的领域,比如嵌入式系统,虽然可以通过交叉编译在PC上寻找bug,但并不能保证在嵌入式机器上效果一致。单元测试也有一定的技巧,比如可以编写可重复利用的测试脚本。代码覆盖工具我仅见过同事使用Cantata++,但并不便宜。    
  • 代码“美化器”。如果你和同事使用相同的编码风格,更容易寻找出简单的语法错误。通常我们都有各自的编程习惯,但是可以通过软件达到统一编程风格的效果——比如自动缩进、tab空格转换等等。我使用过Uncrustify,以及其GUI工具UniversalIndentGU。    

10. 基本命令行工具

虽然GUI对于计算机交互是革命性的改进,但还有很多事用命令行做起来更加简单,比如使用脚本能够轻易组合多个程序。如果你使用OS X或者Linux,那计算机上一般已经预装了UNIX命令行工具,Windows用户可以下载相应的二进制文件。

其它,诸如7zip、CPU-Z、System Explorer之类的软件虽然没有放在这个列表中,但也都是非常实用的工具。

原文链接:EmbeddedRelated.com

禁用 Alt-Tab 或 Ctrl-Alt-Del -VB资料 禁止使用 Alt+F4 关闭窗口-VB资料 绝非玩笑:VB7将完全面向对象 拷贝磁盘 -VB资料 控制Ctrl+Del+Alt键-VB资料 快速编辑VB程序技巧 快速查找或替换文本中的字符-VB资料 快速建立目录 -VB资料 快速交换整数 -VB资料 快速注册/注销动态链接库或控件-VB资料 理解面向对象编程 -VB资料 VB利用GetCursorPos 读取滑鼠的座标 利用Visual Basic 关闭Windows9X或者Windows NT VB利用代码启动/关闭中文输入法 模拟一次鼠标事件 -VB资料 目前执行的是哪一国语言的 Windows -VB资料 VB判断剪贴板的所有可用格式 VB判断驱动器类型 VB判断是否已经建立 Dial Up 连接 VB判断一个年份是否为闰年 VB判断一个驱动器的类型 屏蔽文本框默认的右键菜单——浅谈如何控制Windows消息 -VB资料 奇数和偶数校验-VB资料 启动控制面板命令大全 -VB资料 VB取得 DOS 环境变量 VB取得并设置双击间隔时间 VB取得磁盘序列号、卷标和文件系统类型 VB取得短文件名 VB取得和设置计算机名 VB取得和设置系统颜色 VB取得计算机名 那位大侠知道怎么创建并使用一个变量,每次只让一个进程访问???给个例子吧,大大大 大 delphi中怎么编写中断,获取外部设备传来的信息?急救!! 数值模拟与计算仿真,高手请帮忙! 请问:dos下图形放大算法或思路?还有.........(高手请进) 求教!!!!SOS!! --请问如何将一个BMP图形文件转成JPG图形文件,高分请教师--- 高分给出,win98的怪问题! 打印统计问题 请教 : html的javascript 中报错:document.Form1.client_name.value不是对象 VC++里面如何从文本文件中一行一行读取文件? 请问,如何用mail函数批量发送邮件.多谢. 各位请教一下,Jsp 的服务resin在win2000下是怎样配置的 各位兄弟: 有谁知道 侯杰 的 <多线程程序设计> 什么时候才能买到??? 哪里有VFP3.0下载? system.ini和win.ini的作用 怎样生成安装包,多谢! 如何在两个不同的应用程序之间拖动文本字符 请问,PTSTR 和 PSTR 有什么不同? 反对上海电信变相涨价的行为。我能不能告中国电信“违约”和“欺诈”呢。 求救!误删Office2000注册表! 生成.exe出错 在Excel中,如何让某些行不能滚动? 在--成都--程序员能拿多少--¥--???? 换了17寸纯平显示器,开心,放分. 错装PB7,不能无create datawindows的图标,全是XX,为什么? 请问怎样遍历一个页面中服务器端的所有对象? 能否跟我说说——自动控制方面——与delphi编程的基本常识?我一直想了解,但不知道我们编的程序如何去跟那些硬件搞在一起而且控制硬件呢? 程序出错 发现一个不错的网站!www.ffboy.com 兩個Recordset之間數据轉入和轉出問題???. 高手請進......(一定給分) 大家推荐一下 ,win2k 下的 XML 编辑器。 请问男女之间存不存在真正的友情? 请教一下,怎样打印 java applet绘出的图形?,要用java 编写 高手请进!!!关于数据库 很菜的问题!字符串转化的问题? 最近运行D盘时,出来"找不到该路径..."的对话框,是什么原因? 指针数组定义的问题 我想截获tcp包,问从何下手,大鸟们 快来帮忙 远程数据传输问题:不同地域,不同系统间的数据传送有什么好方法? 急!!!(原谅我的无知) DELPHI怎么联接Access数据库!!!BDE ADO都可以!!!! 求安装制作软件 请问进行OpenGL编程除了VC和C++BUILDER外,还有什么工具可用?????? 请教一下,怎样在jsp中捕获 java applet 的按钮事件 一道填空题,大家看一看呀 小弟对现公司特别反感,很想换个学习环境比较好一点的,但是公司又要叫我签下一年的合同,我真是难办。 关于扩展名为.DAT文件的问题。 himen.sys文件的作用? 给SQL2000存储过程批量加密? 如何定义一个和Excel内嵌函数一样的用户自定义函数? 如何用DELPHI扫描所有硬盘的所有文件 中国一些节日的英文说法 细菌按形状可分为(),()和()? 当月球走到什么位置时开始发生月食说下,简略 谁知道各类节日的英文说法全一点 细菌有哪几种形态? 月食都发生在圆月之夜对吗30秒之内回答出来 各个节日的英语说法每个节日 铁细菌是什么形状的 物理电功率计算题 1、一个电灯泡在2s内电流做功 w2、功率为500w的电饭锅工作3h消耗的电能为 kw*h3、一个500w的电烤箱工作 h消耗一度电,而一度电可供100w的灯工作 h4、红绿灯,每盏灯都有220v、10 月球上最大的环形山?最深的环形山?有辐射纹的环形山?最早登上月球的载人航天飞船与宇航员? 节日的说法Thanksgiving ,Halloween ,New Year'Eve ,Spring Festival 等节日前加什么介词? 细菌有()、()和()状等不同形状,有些细菌相连接成().但每个细菌都能()生活. 月球上环形山的特点 16.在爆破中,若导火线的燃烧速度为0.8cm/s,人跑步的速度为5m/s.(1)当导火线长度为40cm时,从点燃导火线到爆炸,人最多能跑多远?(2)若安全区离爆破点有300m,那么导火线最短取多少才安全?过 一个高数求导问题求大神解答!希望能写在纸上拍下来发给我会加分就是求括号里面的那个的导数就行了, 不用管左边的e 问一个高数中复合函数求导的问题划红线部分干嘛不用说明是对y还是x求导的呢,别人怎么知道啊? 隐函数求导现在就卡在一点上:例如x^2 + y^2 = 1,我看其中对y^2的求导是2yy',这是咋来的呢?2y后面为什么乘以y'或者为什么不是2y',我看有人说好像是链规则,这是? 常用的静态图象文件有几种格式?分别具有哪些特点? 库仑等于多少焦耳? 有这样子的花吗 求导,为什么 d(y^5)/dx 会等于 d(y^5)/dy · dy/dx 月球上的环形山有什么特点?你认为是怎样形成的?请设计一个实验对环形山及其特点的 花朵分为哪几种形态 高数,如何证明反函数二阶导d(1/y')/dx=-y''/(y')^2如题 月球上的环形山有什么特点 请问这几种分别是什么花(草)?请教一下这俩照片里从上到下分别是什么花? 是在同一个花坛照的 已知y=y(x)的导数y',y‘’存在,且y=y(x)的反函数为x=x(y),试用y',y''表示(d^2x)/dx^2 —(y'')/(y')^3 在50秒内,通过某导体的电荷量是10库仑,电流做工60焦耳,则通过该导体的电流是多少安培?导体两...在50秒内,通过某导体的电荷量是10库仑,电流做工60焦耳,则通过该导体的电流是多少安培?导体 推荐几种鲜花?送一个冷艳,知性的女生.想送的有品味一些.哪些花适合她的特点? 女人体型分为哪几种 月球上的环形山是怎样形成的? 亲戚送一个花篮,请问这几种是什么花? 旗袍款式分为哪几种 月球为什么有环形山? 一辆功率为45kw的汽车,以72KM/h的速度在平直公路上匀速行驶30km,求汽车受到的阻力是多大?汽车所做的功 轮廓标分为几种,我要详细的. 月球上的环形山是怎么形成的? 一道高数题,分段函数求导,分段函数f(x) =[φ(x) - cos x]/x x=/=0a x=01.求常数a的值 ,使f(x) 在 x=0 处连续;2.求f'(x).这道题的1.lim(x->0)f(x) = lim(x->0) (φ(x) - cos x )/x =然後...为甚麼要一定要用洛必达法则?而 肥胖分为不同体型的种类有哪几种呢? 电量的单位是库仑,为什么在电池上标的都是毫安? 乳房的形状分哪几种形状? 物理题求详解...汽车发动机的功率为60kW,汽车的质量为4t,当它行驶在坡度为0.02的长直公路上时汽车发动机的功率为60kW,汽车的质量为4t,当它行驶在坡度为0.02的长直公路上时,所受阻力为车重的 库仑是什么单位 乳房的形状有几种?我的乳房看起来尖尖的,而我看有一些女人是圆圆的.为什么乳房形状会不一样呢?乳房的形状总共有几种? 最近一次月食在几月几日 高数函数求导问题现有一函数f(x),当x=0时其值为0,当x不为0时其值为为e^1/(-x*x),求f(x)在x=0处的导数.怎么求的? 乳房都有哪几种形状 最近的一场月食是在几月几号 为什么月亮上有许多环形山? 乳头的形状有几种 谁能告诉我最近的月食是在几月几日的几点? 月球环形山形成的原因是什么? 乳房什么形状好看 2008年有没有月食?几月几日? 一辆汽车正以36km/h的速度做匀速直线运动,已知发动机的功率是60kw,求这辆汽车所受的阻力是多少? 定积分求导如 ∫(上a下b)f(x)dx 求导 2010年1月1日的几点几分有月食发生,那后面到什么时候又会有? 高数多元函数求导其实是一个有点白的问题就是,什么时候用dy/dx,什么的时候用ay/ax?我觉得没什么差别啊,为什么书上一会用这个一会用那个~~ 细菌的样子 设随机变量 X,Y 相互独立,且服从[0,1]上的均匀分布,求X+Y 的概率密度参考答案是这么写的.让我不明白的是最后x,y取值有两种情况的依据是什么,又为什么如此划分区间呢?求详细说明(最后描红
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn