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

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

Wine让Android也能运行Windows软件 Cory Ondrejka,是这位工程师拯救了Facebook! 三星争夺企业市场的三大痛点与对策 Xcode更新至4.6 支持iOS 6.1 工程师揭秘:NVIDIA如何锻造Android掌机 VMware掌控Puppet 老用户会被锁定吗? 试图领导创新:三星创新中心11亿美元建基金 基于WebRTC Chrome与Firefox实现视频通话 将OpenStack私有云部署到Hadoop MapReduce环境 Web设计师必备的10款最佳排版工具 诺基亚CEO谈平板计划 Android为候选系统 244亿美元!戴尔公司正式完成私有化 对抗苹果 Facebook或推Find My Friends应用 前谷歌工程团队负责人:如何打造一个完美的产品 好消息!Google Drive可存储共享JavaScript等网站 Android Rivers:用Kotlin语言写出的新闻应用 辞旧迎新 老牌游戏开发商的移动进化之路 iSuppli:硬盘市场持续萎缩 大数据应用成重要市场 全球最大校园Hackathon:失败后,你能学到什么? 走进Evasi0n,越狱黑客如何拿到iOS权限 提升服务扩展性和冗余的八个编码方向 分析数据预测未来?数据挖掘绝不是大公司的专利 揭秘LinkedIn数据科学家如何工作 为什么响应式设计对SEO有好处? SpaceX团队:想登陆火星吗?学好C++吧 可穿戴设备:越来越清晰的苹果iWatch 苹果设计师:开发者们的应用图标设计对了吗? AWS兴起之路:尚未成功 仍需努力 John Carmack:我们为什么不开发Linux游戏 最具创新力公司50强:耐克居首 Web如何成为另一个应用商店 请教高手在DELPHI里怎样实现把一个文件存储到ORACLE上, 然后又如何调出来使用?? 我快疯了救救我!!!!!!!!!! 我为什么要做个刁民? 屏幕上显示绘多条曲线,要对每条曲线单独进行操作如何实现? 怎样避开程序对softice和trw的检查 想学ACCP不知道社会的认可度? 怎样使用windowsxp/2000的修复程序? C:\winnt\下有一个hh.exe文件,有什么作用? 这首诗我觉得用在程序员身上也很合适 在WebSnap中如何实现gride的隔行显示不同颜色,就象我们现在看到的一样?? 关于《C++ Primer plus(中文版)第四版〉》,大家发表一下看法好吗。 中文文件 颜色代码转换的问题大家帮忙呀.. 程序编译问题 问一个可笑的问题。希望能得到回复 那位用过TfcShapeBtn控件? 急!从NT4到W2000后,为何ASP出错? combustion? 100分有人答了吧 WHERE TO DOWNLOAD??? c#/web,有个约一万行的参数表需用于校验页面录入的数据 帮帮忙啊,急啊 谁有dhtml的中文帮助? 如何使窗口全屏化,即不覆盖Toplevel窗口(winamp),又能覆盖任务栏? 请教各位高手,怎样将网卡的MAC地址与IP地址绑定起来,让用户不能改变? 我自己构造了一个HTTP请求头想要下载swf,但是服务器不接受请求。各位大哥帮忙看一下 简单问题 关于dll的基本问题 求求各位了,急啊(原程序问题) 这段程序问题出在哪儿? 关于防火墙编码的问题500? 明天签约,来问问工资开多少 整一年了 发个帖子吧 win98关机死机具体问题怎样既决????? 既然有了jbuilder,怎么还有人在弄什么jdk 关于正则表达式的问题("(\{)(\r\n)*(.*)(\})"),精通者请进 CreateProcess函数的应用示例 怎样才能克服电脑带来的噪音!!!,困霍很久 散分拉!!! 数据发送的实现,急用,谢谢,一定给分。 写过VB程序的朋友可以进来谈谈。 请问如何在php内刷新页面 在PB如何用setfilter()实现两种条件以上的数据过滤? 请问:.net 7张cd,怎么装?(最优) <<C++ Primer 第三版 中文版>>网友勘误+散分 关于Access主键的问题?请高手帮忙! 我记得有一个查看其他应用程序资源的工具? 有谁知道hookWM_ACTIVATEAPP或WM_ACTIVATE该用什么hook类型.了解消息或hook的进 水晶报表可以分栏吗 我这有250万刚整理好的邮件地址供推广网站! 请问:关于打印完毕停止走纸的问题(我就剩这点分了,谢谢) 绝口不提中的绝是什么意思?①断②一定,哪个是?绝对其中一个 请问为什么两星体可以超光速,怎么就空间膨胀了? 潮湿反义词 绝口不提的绝是什么意思 三月桃花 两人一马 明日天涯 请具体解释清楚, 潮湿的反义词 在我感情的封锁区,有关于你,绝口不提,用英语怎么说? 请问下面这句话翻译成英语有几种译法:“好的!我们可否重来一次?” 七年级下册地理问题.求学霸.读下列气温降水分布图 表述正确的一项是 A、甲乙两地都是全年高温多雨B、 甲是热带雨林气候C、乙是热带季风气候D、乙地可能是位于马来群岛 发错 河马是食肉还是食草 英国人是我们的朋友用英语怎么翻译?有哪几种译法? 湿润的近反义词? 氯化铵的ph为多少 形容两万五千里长征的成语 定价为900元的商品,打九折后再让利40元,仍可获利10%,求进价 可爱的近义词反义词 河马爱吃巧克力吗?电影里这么说.他们被河马袭击,有人丢了几块巧克力到河里,河马就跑开了~~是真的吗? 超光速飞船在宇宙空间中超光速飞行,在飞船里看外界的星空会是怎样?前面的星光会照亮整个视窗还是会被拉成线状?后面的星光会不会完全看不见?1倍光速和100倍光速时看到的星光样子一样 可爱的近义词和反义词 河马怎么吃食物 太阳系还有多久就要灭亡了 汇成的近义词是什么 怎么用物理解释这个现象呢?芜湖方特乐园里面有个游乐项目叫“印第安部落”,里面的印第安老人会神奇般的消失在我们眼前,这到底为什么呢?最令我困惑的是,节目最后印第安老人消失了,他 太阳消亡,太阳系还存在吗? 以绿化好处多为题写一篇说明文 字数600 上海轨道交通2号线虹桥火车站到火车站检票处步行大约要多少时间?上海轨道交通2号线虹桥火车站下地铁到火车站检票处步行大约要多少时间? 30万年后 太阳系会和仙女系相撞并且融为一体 人类灭亡还是未知数 但是不是处女座就从这个世界上消失了... 在光的_______现象中,光的传播速度要改变. 爱惜的反义词是什么 为什么在word里打字,英文变不成中文?输入法没有问题啊 关于长征的成语 爱惜的反义词是什么呀 有关诗词的趣事类似 雪里吟诗 秀才.县官.财主在饮酒赏月,诗兴大发,便提出以“瑞雪”为题,吟诗联句.“大雪纷纷落地,”秀才举杯起句.县官应声接着:“此时皇家瑞气!”财主摇头摆脑地吟 谁有描写长征的成语?急 类星体的红移速度超过光速? 急求关于诗的趣闻文章今天之内啊!急的... 关切的近义词是关心,关怀的反义词是冷漠 判断 英语翻译就是说一本英语的书,全是英文哈,而我又要翻译,但不可能每个单词都查字典吧,况且又如何做笔记啊,那么多不认识的单词~ 将等体积的0.1mol/LCacl2溶液 和0.1mol/LNaoH溶液加入等量氢氧化钙粉末,最有可能溶解不完全的是哪种溶液但题目中OH浓度为0.1 沉淀溶解式中OH的浓度要平方,这样OH对沉淀的影响就小了,那为什么 什么的长征要成语 翻译成英语:获得知识 诗中的趣事 谁有长征的成语? 求以下的反义词:爱好,爱惜,保护,悲痛,本质,成功,惩罚,出色,纯净 为什么用两根吸管喝水,一根在水中,一根在外面,不堵住在外面的那根吸管,喝水要困难些? 为什么天这么蓝, 反义词:爱好 爱惜 保护 悲痛 本质 惩罚 出色 纯净 赞许···(30分内)爱好 爱惜 保护 悲痛 本质 惩罚 出色 纯净 单调 独特 繁忙 奉献 富强 干燥 高尚 广袤 害羞 浅陋 健壮 结实 微弱 贤惠 我的眼睛湿润了中湿润的反义词 爱惜的反义词糟蹋 反义词: 爱好()爱惜()本质()惩罚() 出色()纯净()单调()独特() 繁忙()奉献()干燥()高尚() 广袤() 华丽的近义词和反义词 爱惜和幸福的反义词 填反义词:崇高-----( )反义词;崇高-----( ) 近义词:欢欣一( ) 辛勤一( ) 反义词:华丽一( )近义词:欢欣一( ) 辛勤一( )反义词:华丽一( ) 无私一( ) 爱惜的反义词还有朋友的反义词是啥么 梦随清水逐桃花,萍踪浪迹在天涯什么意思 奢华的近义词和反义词 绝口不提的意思是什么 天体怎样运动 潮湿的反义词是什么但是 韩21名国会议员访问朝开城园区美男子手机“防弹护主”全球首条欧亚海底铁路隧道通车华人要求辱华美媒体道歉“甲壳虫”主唱故居获拍77万 列侬遗美国再发灭门惨案 狂徒强杀前女友一家约旦谴责以色列政府决定在耶路撒冷兴建叙利亚副总理贾米勒被解职都江堰拍到野生大熊猫视频:倒立撒尿圈美情报高官供出欧洲盟友 中国5城市上出差“一夜情”伤脸 澳最高法:不算工普京酷爱百达翡丽 萨科齐最爱Prad津巴布韦男蝉联“最丑先生”美男子遭遇车祸脑部创伤不能交流 女友调查总结女性二十“怕”普京力压奥巴马当选《福布斯》全球最有格鲁吉亚警告:别政治化冬奥会法国情侣将女婴弃于轿车后备厢 涉虐待媒体称比尔·盖茨西雅图豪宅的新邻居多《斯大林格勒》曾欲邀周润发,片酬过高美国被爆在驻华使领馆搞监听 北京上海民进党名嘴这样看宋楚瑜:他是另类“造《择业学》韩国光复节特赦数千人爱心涌动 救助重病男孩《创客:新工业革命》“伊斯兰国”列暗杀名单 锁定1400福州华林路周边一声惊雷 市民误以为地曾经的福州老品牌:戴上电子表 依伯童“安倍谈话”14日17时许发表 英译“像男人一样思考”广告遭批 女权主义沈阳军区某旅转业干部陈贵春抗洪抢险因英国一所小学创纪录迎来19对双胞胎入江苏省委原常委赵少麟被开除党籍 在党图片新闻捡海螺被困礁石惠安女亮相民族大联欢拍个节目用得着兴师动众吗?我省最长的海底隧道初步设计促进融资担保行业加快发展发现李庄,撩开一段湮没的历史聚焦天津滨海新区危险品仓库爆炸公众关
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘