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

开发者需知的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

字体改变事件 -VB资料 自定义组合热键 -VB资料 自动更换墙纸的小软件-VB资料 自动记录应用软件工作时间 -VB资料 自动卷动TextBox -VB资料 自动开始上次关机时关闭的应用 -VB资料 自动装入注册设置 -VB资料 自己编程模拟 MouseEnter,MouseExit 事件 -VB资料 走进VB6啃一块骨头 做成一个时间限制的测试版 -VB资料 PHP中利用jQuery实现SWF图像上传和裁剪 VB.NET或C#将DataSet快速导出到Excel中 HashSet的equals和hashCode重写问题 PendingIntent实现原理和代码 IntentService实现原理及内部代码 AsyncTask实现原理和内部代码 Neither user nor current process错误 ListView的右边滚动滑块启用方法 Live Wallpaper动态壁纸开发 控制软键盘显示和隐藏 设置Activity大小不再全屏原理 Android面试题,看看你基础如何? Android Canvas绘图抗锯齿解决方法 Android xliff和字符串资源 android.hardware.USB类介绍 Android开发经验谈之应用间数据共享 android_asset这个URL详细使用方法 Android 2.3系统自带高清UI图标下载 设置ScrollView滚动条的颜色 WakeLock使用方法示例代码 Concurrent并发库常见问题总结 BarCode控件(高分求解) 有谁在使用VC7.0? 高分求专用数据库驱动(MS SQL2000,IBM DB2) 十万紧急!哪位pdf2txt1.0的注册码能否告知,可以给我发邮件dpwei@metarnet.com,谢谢! 怎样取得一个季度得数据 有谁听说过 vality, torrent, metarecon? 这个查询怎么写? 经典问题 SQL语句问题 如何实现带有CheckBox的JTree 多文档中怎样写子窗口的OnSize()消息 火烧眉头,谁有pb6.5连接Access的补丁??? 谁有完整的MPEG2、MPEG4标准 vc中有没有处理ini文件的类,或请介绍处理ini文件的代码与函数.谢谢(最好有例程)!!! 初次接触lotus不知道从什么地方下手,请赐教 哪里有好的学习JAVA的网站或书. 问个送分的问题, 快来帮助,再线等待,高分相送 多文档中怎样写子窗口的OnSize()消息 关于报表的一个小问题? ??如何调用COM+对象? 微软专家:教我如何理解.Net的跨平台? 我真的想问,不精通编程就一定不能成为计算机人才吗? 如何在单文档工程的CMainFrame中得到CView指针阿? 哪位大侠使用VC和数据库比较完美地做过管理系统?交流一下,要分您说话。 各位大侠请进来提点意见把:关于统一认证平台的问题。 怎样设置多文档中子窗口的OnSize()消息 ?有关COM自动化类型Variant传递安全数组的一个问题 请问foreach这样的语句怎么转换成for或while语句? 请教高手,VB可否打开unix服务器上的数据文件,如何实现?谢谢!(无内容) CHOTKEY控件改变的消息如何得到? 请问哪里有关于c/s和b/s构架讨论,简介 等的文章?? 50分!!! 如何拆分一个字符串 SOS!!! 使用showModalDialog问题 有这么一个问题.... 栈的一个典型操作(计算表达式) 在PB65自带的installshield5中,怎么在开始菜单添加快捷方式阿? 多文档中怎样写子窗口的OnSize()消息 急啊!!!!!从ibm下载的websphere studio siteDev和appDev安装启动程序时,都出现The trial version license cannot be found!!!!!!! win2000自动关机的问题 为什么不上网也能登录域? 如何捕获键盘事件 谁能告诉我,我的程序错在哪里? 请问各位大如何通过javaScript得到文件的大小??谢谢各位急 打开word文档的问题 一个库结构能否直接在连接的两台微机之间相互拷贝? textbox属性textmode为MultiLine时,如何设定maxlength限制用户输入字符数 关于VC类型转换的问题!! 如何在没有使用MFC就是(Set->NO Using MFC)的程序下使用CDC类呀? 如何执行.bat文件 那里可以找到,apache+oracle+unix+java的资料? 高中物理 接地我的回答正确吗:在空心金属壳内放一正点电荷,金属壳外壁接地,则内壁感应出负电,外壁感应出正电由于接地导入大地.如果负点电荷,则内壁不带电,外壁带正电因为题目上总是 2个带有等量电荷的铜球,相聚较近且位置保持不变,设他们带同种电荷时静电力事F1,带异种电荷时静电力为F2.问F1、F2大小关系. 直径为d的纸质圆筒,以角速度ω绕轴O高速运动,有一颗子弹沿直径穿过圆筒,若子弹穿过圆筒的时间小于半个周期,在筒上先、后留下a、b两个弹孔,已知aO、bO间夹角为φ弧度,为什么在t时间内,圆 为什么物体带负电,则接地时,负电荷(电子)沿导线传入大地? 例、下图是图(1)的正方体切去一块,得到图(2)~(5)的几何体,例、下图是图(1)的正方体切去一块,得到图(2)~(5)的几何体①它们各有多少个面?多少条棱?多少个顶点?②举例说明其 airphil express是什么意思 一做匀变速直线运动的物体,先后通过AB两点的速度是v1和v2,求通过AB中间时刻的速度,和中间位置的速度最好有解释,3q 一个正方体木块切去一个角后的几何体有多少条棱? 单层多点与石墨烯 谁是触摸屏未来的驱动力 express. 是什么意思? 一个正方体切去一个角后的几何体有几条棱,要图 石墨烯为啥这样火? express是什么意思 高三物理第一轮复习牛顿运动定理复习题一个同学身高h1=1.8m,质量m=60kg,站立举手摸高(指手能摸到的最大高度)h2=2.2m,重力加速度g=10m/s²(1)该同学用力蹬地,经过时间t1=0.40s竖直离地跳起,摸 怎么不用石墨烯做手机电池?既然石墨烯的电容量如此巨大,用来做手机电池不是更好,一个月都不用充电了,充电的话也就1-5分钟的时间,这个材料做手机电池不是很好么! 微软的软件后面加个这个是什么意思?2008 Express 将一个正方体切去一个角,剩下部分的顶点数为() 直径为D的纸制圆筒,以角速度W绕中心轴匀速转动,把枪口垂直圆筒垂线,使子弹穿过圆筒,结果发现圆筒上只有一个弹孔,则子弹的速度不可能是-----A.DW/π B.DW/2π C.DW/3π D.DW/4\π 初中压强与浮力题【多选题】木块乙浮在水面上,木块乙上放有铁块甲,如图所示.此时,木块受到的浮力为F,水对圆筒形容器底面的压强为p,水面距容器底面的高度为h.现将甲取下并沉入水底, 切去正方体的8个角,新的几何体有几条棱,几个面,几个顶点 探究凸透镜成像的规律,物距与像距的大小关系初二上册3.3 接地和不接地有什么不同,如果两个带电金属板构成匀强电场,一个接地了就干嘛了?两个带电金属板构成匀强电场,一个接地了,另一个有什么影响吗 高三曲线运动的牛顿定律两质量均为m的小球穿在一光滑圆环上,并由一不可伸长的轻绳相连,圆环竖直放置.在如图所示位置由静止释放.问释放瞬间绳上的张力多大? 算出氮,再由氮求出蛋白质的含量(蛋白质含氮按16%计算).某质检局对某市场中的某个品牌的奶粉...算出氮,再由氮求出蛋白质的含量(蛋白质含氮按16%计算).某质检局对某市场中的某个品牌 "政府管理",也就是下定义. 短语 express oneself 的意思express one's opinion/idea 的意思是“表达某人的意见”那么,请问短语"express oneself"的意思是什么? 为什么雪花的构成是六边形快 不过有部分看不懂,半径为R的绝缘球壳上均匀的带有电荷量为+Q的电荷,另一电荷量为+q的点电荷放在球心O上,由于对称性,点电荷受力为零,现在球壳上挖去半径为r(r express onself feel like oneself 什么意思? 电荷均匀分布在长L的细棒上,求棒的垂直平分线上的电场强度 海尔热水器一根加热管和两根加热管除了加热速度有区别外,还有其他的不同吗?比如说质量等等, make oneself understand 是不是和 express oneself 一样? 为什么雪花是六边形的 海尔电热水器防电墙灯亮了和加热管有关系吗?急 i enjoy oneself 雪花为什么是六边形 关于牛顿第二定律的一道题如图所示,质量为2Kg的物体与水平地面的动摩擦因数μ=0.2,现在对物体施加一个向右且与水平方向成θ=37°角,大小为10N的拉力F,使之向右做匀加速直线运动,求物体加 石墨烯概念股有哪些 与石墨烯相关上市公司一览 雪花是六边形的?最后分成几点说,例如第一个原因是.第二个原因是.先把每点是什么说出来, sata-express-sris-capabilities是什么意思 石墨烯相关的有哪些上市公司? 雪花为什么是正六边形的结晶体我从一本书上看到的,把答案忘了,有谁知道. dimerco express是什么意思 关于放大镜,幻灯机,照相机的使用,下列说法正确的是A应该把被观察的物体放在放大镜的焦点以内B应该将幻灯片放在幻灯机镜头的焦点以内C应该将幻灯片放在幻灯机镜头的焦点和2倍焦距之间 网络犯罪 为什么共线的三个点电荷满足√q1q3=√q1q2+√q2q3 e-sata什么意思啊 哪个上市公司将量产石墨烯锂电池? 英语翻译句子:无论何时都不能靠自己一个人100%的力量,而是要靠100个人每个人1%的力量!有道翻译结果:No matter when it can't rely on their own power of 100%,but by 100 the power of 1% each.百度翻译结果:Whenever y 我知道电离能越小,越易失电子,此元素的金属性越强.那么电离能越大的元素,非金属性越活泼,对吗,为什么? 下列光学仪器中得到的实像比物体大的是( )A、放大镜 B、照相机 C、平面镜 D、投影仪 我新手- - 学习和生活中常用到下列光学器具:①显微镜 ②穿衣镜 ③潜望镜 ④老花镜 ⑤汽车观后镜 ⑥近视镜.其中利用光 石墨烯的应用领域是那些? 英语翻译You are never too old to build a snowman 下面利用光的反射原理制成的是( ) A放大镜 B家用穿衣镜这是单选题,选哪一个?说说原因说说原因 放大镜、幻灯机、照相机、潜望镜,哪个得到的实物比物体大? 高中物理 关于接地接地什么意思 大概讲下就行了 谢了比如 将带电体A靠近导球B,然后给B瞬时接地,然后移去A, B就带上电为什么啊 下列光学器具中,利用光的折射现象制成的是( )A.穿衣镜,照相机,潜望镜 B.放大镜,照相下列光学器具中,利用光的折射现象制成的是( )A.穿衣镜,照相机,潜望镜 B.放大镜,照相机,投影仪 C 标况下,2.8克氮气,0.5mol氢气,4克氩气混合,该混合气体体积
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘