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

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

一个轻量级的JavaScript库:Reactor.js [探讨] 用户体验设计师现在面临怎样的机遇和挑战? PPT集萃(二):淘宝、CloudStack等分享的架构经验与最佳实践 2013中国云计算榜单之二:64家云主机+云存储,错综复杂! 看Java技术基础的eBay如何评价他们的Node.js首次尝鲜 Jolla发布首款Sailfish系统手机 无缝兼容Android应用 NPD:全球智能手机出货量2013年将首次超过功能手机 聚合数据左磊:不走寻常路 做国内最好的数据聚合平台 从程序员到软件商 需要注意些什么? 共享软件海外营销策略与实战(上海站) 直接拿来用!最火的Android开源项目(完结篇) 一步加入云生态系统 参加第五届中国云计算大会的十大理由 传苹果iOS7将深度整合Flickr 用户受益最大 Chrome 27来了:页面加载快5% 可同步数据到Google Drive 微软发布新一代游戏主机Xbox One 搭配全新Kinect 2.0体感系统 Unity游戏引擎向iOS与Android开发者免费 Twitter获“下拉刷新”专利 开发者仍可自由使用 复杂产品的响应式设计【流程篇】 使用Javassist库为Bytecode Instrumentation开发JVM Agent 内容解析创业公司Stremor推出4款API 2013中国云计算榜单之三:174家云应用服务商,繁花似锦! 盘点各大云服务提供商:麦当劳=AWS,汉堡王=? BlackBerry Jam亚洲开发者大会9月将在香港开幕 把服务器搬进来:Splashtop在中国搭建Bridging Cloud Web框架全对比第五期 新增Windows环境 前Tumblr首席开发者回忆录:一个人也能开发出好产品 测试者和开发者,为何我们不能友好地相处? 讲师秀之11:何刚谈京东的云机遇 讲师秀之10:武汉大学张焕国教授,可信计算是云计算之成败关键 【上海直播】Windows Azure+世纪互联:中国云计算“烈火烹油” 最新版Chrome浏览器推出全新语音搜索功能 请问如何将IE控件中当前显示的页面保存到文件当中去? 用recordset对象怎样能返回个个层次记录集,连接的是SQLSERVR2000 求救:关于表格中单元格合并拆分的问题! 关于注册热键热键和使用键盘钩子的问题,有劳各位出个主意? 很菜的问题,关于SDI中修改打开对话框的问题! 国外有那些比较著名的新闻组? 前几天我在书店看到一本书名叫《远程控制编程技术》 没人回答吗?再问一次,请问如何在代码里确定按钮的选中或者未选中状态? 什么是xp任务栏假死? 十万火急!装D6 PACK2之前能用的取临时文件夹的函数现在不能用了。怎么回事? ini文件如何一次性读写多行,多段? 两块硬盘安装2000后的问题 请问如何向C***App类发送消息 如何去掉IE的标题后面的文字? 如何在VB下将DBF表转化成ACCESS或SQL库(多谢指教) 我想写个可以读EXCEL文件的JSP文件 寻找源代码, 100分相赠,求在VC下,如何打开一个目录(相当于Delphi下的目录对话框),然后枚举它下面的所有文件和子目录?? 我太笨了!! 我想到上海去发展,不知道那里的革命形势如何?( 关于一个制作压缩文件的问题!!请大侠进来看看!!! 如何锁住DataGird的前面几列,当点击水平滚条时 看:VB《葵花宝典》--指针技术有不懂的地方?请各位指教? COM,DCOM过时了吗? 快救命啊,否则我自杀了!!!! dbgrid的问题? 主从表中, 主表移动记录时,相应的从表对应的记录都会显示出来。 关于一个制作压缩文件的问题!!请大侠进来看看!!! 帮帮忙吧!exchange 2000 server安装后的问题! test 怎么反編譯.mde COM,DCOM过时了吗? to 各位高手,数组遍历问题 神呀救救我吧 怎样让combobox显示items的第一项值? 第一次约会的时候,她对我说:爱情是有保质期的。 ★★★快来抢100分★★★:在bcb6里,我打开它自带的任何例程都会出错,总提示[Linker Fatal Error] ,why? Midas服务器无法在另一台计算机上运行,只能在本机运行,请问是什么原因? 请问如何知道数据库中有哪些表存在?在线等待 怎样在主框架类里调用文档类指针,以便获得文档类数据? 兄弟,帮个忙! 怎样实现ftp客户端功能 java中如何象windows那样拦截其他窗口的消息? 告别CSDN,第一个全部进入全部给分 同一个submit可否和如何递交给不同的服务器端的不同的action处理? 一个关于tomcat中servlet的棘手问题。。。。。 谁有jbuilder6的license keys或serial number? 請教:vb里dim oRs as ADODB.Recordset與dim oRs as new ADODB.Recordset的區別在哪里? 请大家指点下在深圳哪里可以办个边防证?谢谢 在程序中如何得到一网页中的按钮焦点? 用vc生成曲面要用到那些类? 有關微軟的MCSE認証 以10m/s的速度前进的汽车,刹车后5s停下来,则汽车的加速度等于多少? 资本主义社会的社会制度是什么样的? 下列物质溶解于水时,溶液的温度无明显变化的是 A,浓硫酸 B,氢氧化钠固体 C,氧化钙固体 D,硝酸钾晶体选D 请问为什么 (2011年淄博中考题) 中国现行的究竟是什么性质的社会制度?根据马克思主义的原理,社会主义是在资本主义高度发展并在其薄弱环节中突破并建立起来,社会主义继承了资本主义的优良元素,同时也拥有资本主义所 为提高百米赛跑运动员的成绩,教练员分析了运动员跑百米全程的录象带,测得:运动员在前7S跑了61米,7S末到7.1S末跑了0.92米,跑到终点共用了10.8S,则选对的答案:A运动员在百米全过程的平均速 溴乙烷水解到底生成乙醇还是乙烯 氯化镁和盐酸与氢氧化钠在氯化镁和盐酸的混合溶液中,不断滴入氢氧化钠溶液至过量,那么PH怎么变化呢?是否有沉淀 某质点沿半径R=5cm的圆形轨道以恒定的速率运动,经过10S运动了2圆周,问该物体10S内平均速度大小是多少?瞬时速度大小是多少?我要有思路分路分析! 氢氧化钠、浓硫酸、硝酸钾晶体、氧化钙溶解在水中,溶液温度无明显变化的是哪个? 氢氧化钠溶液滴入盐酸、氯化镁混合溶液法应同时发生还是有先后顺序?为什么? 加速度的方向为什么和速度变化的方向一致,而不和平均速度方向一致? 化学有机物烷烃的命名看结构式命名的一个口诀有么?顺便有比较容易记的肯定不成立的错误命名么?就是书上写的不明不白的才来问的~我们老师都说教材改的越来越不像样了~该有的都删了或 盐酸,氯化镁和氢氧化钠反应的化学方程式 不明白平均速度和平均速率,以及瞬时速度和瞬时速率?V=S/T 和 V=L/T到底怎么用的?我们老师说:假设一个人在操场跑一圈,问他的平均速度是没有意义的.我不懂为什么,最好附上个例题 化学有机物烷烃的命名 急(CH3)2CCH(CH3)CH2CH(CH2)CH(C2H5)2的名字是什么啊?太多了我分不清啊~括号外面的和字母前面的是小标~达人帮下忙 ①浓硫酸②浓盐酸③生石灰④氢氧化钠固体露置在空气中质量变大且不变质的是(),质量变小的是()质量变大且不变质的是()溶于水且放出热量的是()溶质的质量分数变小的是() 以54km/h的速度行驶的汽车,因故需要中途停车.若减速的加速度大小是0.3m/s^2,停留时间是1分钟,启动时的加速度大小是0.5/m^2.求汽车因临时停车所延误的时间. 化学有机物烷烃的命名的小疑惑2-甲基-4,5-二乙基己烷 名称是否正确?我觉得没什么问题可答案说是错误的,是2,5-二甲基-4-乙基庚烷,非常奇怪这道题没有图的,考的是命名上是否有原则上的错 社会主义国家与资本主义国家的区别,美国的经济危机能威胁到中国吗 近现代以来的中国的社会制度1840年以来腐败的社会制度导致了旧中国在反侵略战争中屡战屡败,那么那腐败的社会制度是如何产生和导致的结果是什么?请用论文的方式写出来 约2500字 汽车关闭油门的瞬时速度是什么 资本主义与社会主义的优越性比较?以中国和美国进行比较 中国的社会制度好不?外国的制度和中国的有什么差距?美国和中国的社会制度哪个好?简答,希望识者告诉我? 关闭油门,汽车会慢慢停下来 受到了什么力? 中国的社会主义制度与美国的资本主义有什么区别? 我国的根本社会制度是什么 为什么汽车关闭油门时的瞬时速度比行驶中的速度大 铜和氯化钠的导电能力谁比较强 中国经历的社会制度和起止时间中国经历的社会制度和每种制度的起止时间,大致时间就可以了. 质量为m的汽车经过A点时速度为v0,这时关闭油门,恰能冲上高度为H的斜坡,求汽车在冲上斜坡的过程中克服摩擦力所做的功 对导电能力相同的铜和氯化钠溶液分别加热,哪个导电能力大? 火车初速度为10米秒,关闭油门后前进150米,速度减为5米每秒,再经过30秒,火车前进的距离为多少 如何处理温表水银,温度计摔坏了? 对导电能力相同的铜和氯化钠溶液分别加热,结果导电能力是哪个强 憎水玻璃的作用是什么呢, 在正常情况下,火车以54km/h的速度开过一个小站,现在因故需在该站停留1min.若已知火车进站过程中减速的位移为375m,出站过程中加速的位移为225m.出站加速后即恢复了正常行驶速度.假说火车进 中国社会制度有哪些问题?这几天奥运会也关注了吧,看见跳水、乒乓这些中国的强项运动,但是又反过来看足球就迷惑了.百度上搜索大部分人说是体制问题(各种其他经济、民生也都这样说) 火车的初速度为10m/s,关闭发动机后前进150m,速度减为5m/s,求火车的加速度/ 火车沿平直轨道匀加速前进,通过某段路标,速度为10.8km/h,1min后变为54km/h,还需要经多少时 中国都经历了哪些社会制度 初速10m/s,关油门后前进150m,速度减为5m/s,求再过30s,前进的距离?若用  150=10+1/2at^2   ,5=10-at 怎么算,和正确答案不一样啊就是用x=v+1/2at^2 vt=v0+at 检验氢氧化钠中的杂质氧化钙 我国的社会制度 在平直轨道上行驶的火车初速度为20m/s,关闭油门后前进100m停止,求火车速度减小过程中加速度的大小为 (在平直轨道上行驶的火车初速度为20m/s,关闭油门后前进100m停止,求火车速度减小过程 氢氧化钠和氧化钙的变质是怎么回事?和空气中的水和二氧化碳都有关吗? 中国经理过哪些社会制度?从5000年前到现代(公元2007年12月29日),我国经理过哪些社会制度?如:封建、社会主义、原始社会……………… 红墨水与生石灰,熟石灰,浓硫酸,氢氧化钠,食盐哪种能反应 NaCl溶液能导电是因为溶液中有Na+和Cl-为什么这句话不正确? 乙二醇 密度 中国以后有没有可能走资本主义路线?我不太懂政治,所以我问一下,因为我有点疑问.现在的中国,跟周边的国家差不多一样,但是又分为资本主义与社会主义,我搞不懂,中国与周边的国家没什么 古代官僚制度弊端 为什么皇帝都称呼自己是朕? 在醋酸、熟石灰、烧碱、浓硫酸、食盐中选择适当的物质填空(写化学式)用作调味品和防腐剂的是 ?除去家中热水瓶里水垢的是 ?用于改良土壤酸性的是 ?能洗去油腻物质的是 官僚制度是什么 为什么皇帝称自己“朕、寡人、孤”等不同称号?不同时期称号也不同啊,那分别是什么时期这样称自己呢? 目前世界上除了社会主义和资本主义还有什么社会制度社会主义和资本主义制度区别在哪 不要书本上的套话 说些容易懂 某温度时,向一定量的的饱和氢氧化钠溶液中加入少量生石灰,再回复到原温,下列各相关的变化图像正确的是 BC是否都正确? 为什么皇帝称自己“朕、寡人、孤”等不同称号?不同时期称号也不同,请问分别是什么时期这样称自己呢? 中国的社会制度真的比资本主义优秀么? 氢氧化钠晶体和生石灰溶于水都能使混合物的温度升高,这两者的原理是否完全相同?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘