`
xiaoshao
  • 浏览: 53788 次
社区版块
存档分类
最新评论

编程工具

 
阅读更多

读了一篇文章挺有感触了,做了几年开发了,应该总结一下自己对哪些工具已经熟悉,还需要学习哪些工具的使用。

1. 版本控制工具

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

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

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

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

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

目前自己在使用VSS,SVN

2. 文件比较工具

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

自己一直在使用winmerge、diff,自己感觉diff比较好使。

3. 编辑器

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

目前在做java方向的开发,一直使用eclipse

4. 构建工具

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

这些需要学习。

5. 脚本工具

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

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

这个也需要学习。同时需要学习一下脚本语言。

6. 数值分析工具

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

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

大学的时候弄过matlab,不过已经生疏了,需要重新温习。

7. 文档工具

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

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

大学的时候搞过visio,不过也已经好久没用过了,所以也需要学习。

8. 终端以及通信工具

有时候你会需要通过串口进行通信,这时你就需要终端工具了,在Web浏览器出现之前,这更为常见。曾经与Windows绑定的HyperTerminal不够强大,不建议使用,而且微软在Vista之后也不再集成它。我个人更喜欢PuTTYtelTeraTermPro。其它通信工具如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用户可以下载相应的二进制文件

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

这个也需要学习。

看了这篇文章,觉得自己的开发才刚刚起步,还有许多东西需要进一步学习。

分享到:
评论

相关推荐

    常用设计编程工具 Excel公式应用大全

    常用设计编程工具 Excel公式应用大全常用设计编程工具 Excel公式应用大全常用设计编程工具 Excel公式应用大全常用设计编程工具 Excel公式应用大全常用设计编程工具 Excel公式应用大全常用设计编程工具 Excel公式应用...

    TMS320C6000系列DSP编程工具与指南.pdf

    ### TMS320C6000系列DSP编程工具与指南 #### 一、TMS320C6000系列DSP简介 TMS320C6000系列是德州仪器(Texas Instruments, TI)推出的一款高性能数字信号处理器(Digital Signal Processor, DSP)系列。该系列DSP...

    广数980+系列PLC编程工具

    《广数980+系列PLC编程工具详解》 广数980+系列PLC编程工具是一款专为广州数控系统的用户设计的编程软件,主要用于980TDb、980MDA、988T、980TDC、988Td、988TDS、980MDC、980TTC和980THC等不同型号的数控系统进行...

    Goc编程工具

    **Goc编程工具详解** Goc编程工具是一种专为初学者设计的C++学习辅助工具,尤其适合小学二年级到高中的学生。它利用图形化界面来帮助用户理解和操作C++编程,使得复杂的编程概念变得更为直观易懂。在本文中,我们将...

    英飞凌编程工具的使用.pdf

    在单片机的开发过程中,需要使用一系列的编程工具来完成从设计到编程、调试的整个流程。 英飞凌XC800系列单片机的编程工具主要包括DAvE软件、Keil软件、下载工具(如FLOAD和MEMTOOL)。DAvE(Digital Application ...

    Posiflex键盘编程工具

    Posiflex可编程键盘编程工具是一款专为Posiflex品牌的键盘设计的应用软件,它允许用户根据实际业务需求自定义键盘的按键功能。在零售、餐饮、医疗和其他领域中,这样的定制化键盘能极大提高工作效率,减少操作错误。...

    最好的ASP编程工具

    最好的ASP编程工具|工具|编程|最好|专业的编程工具

    ADuC824系列在线下载编程工具

    这个标题提及的"ADuC824系列在线下载编程工具"是一款专门针对该系列芯片进行程序烧录和调试的软件,它允许用户通过计算机直接将用Keil C编译生成的HEX文件下载到ADuC824芯片中,极大地简化了开发流程。 1. **HEX...

    常用设计编程工具 挠度计算

    常用设计编程工具 挠度计算常用设计编程工具 挠度计算常用设计编程工具 挠度计算常用设计编程工具 挠度计算常用设计编程工具 挠度计算常用设计编程工具 挠度计算常用设计编程工具 挠度计算常用设计编程工具 挠度计算...

    汇编软件 是一个编程工具集合

    【标题】:“汇编软件 是一个编程工具集合” 在计算机科学领域,汇编软件通常指的是用于编写、编译和调试汇编语言程序的工具集合。汇编语言是一种低级编程语言,它与机器语言密切相关,但比机器语言更易于理解和...

    infoteam OpenPCS-IEC 61131-3编程工具.zip

    《infoteam OpenPCS-IEC 61131-3编程工具:揭秘工业自动化编程新维度》 在现代工业自动化领域,IEC 61131-3标准扮演着至关重要的角色,它为多种编程语言提供了一个统一的框架,促进了不同设备间的互操作性。...

    常用设计编程工具 天圆地方

    常用设计编程工具 天圆地方常用设计编程工具 天圆地方常用设计编程工具 天圆地方常用设计编程工具 天圆地方常用设计编程工具 天圆地方常用设计编程工具 天圆地方常用设计编程工具 天圆地方常用设计编程工具 天圆地方...

    广数980系列PLC编程工具 V2.7版本

    《广数980系列PLC编程工具V2.7版本详解》 在工业自动化领域,PLC(可编程逻辑控制器)是不可或缺的核心组件之一,它用于控制生产设备的运行。广州数控作为国内知名的自动化设备制造商,其980系列PLC因其稳定性和...

    编程工具箱

    编程工具箱是一款旨在提升程序员工作效率的应用程序,它整合了多种实用功能,如多选剪切板、代码片段管理、快捷命令集等,让编程工作变得更为便捷和高效。这款工具通常包含一系列定制化的功能,旨在解决程序员在日常...

    常用设计编程工具 高数计算器.zip

    常用设计编程工具 高数计算器.zip常用设计编程工具 高数计算器.zip常用设计编程工具 高数计算器.zip常用设计编程工具 高数计算器.zip常用设计编程工具 高数计算器.zip常用设计编程工具 高数计算器.zip常用设计编程...

    linux编程入门与基本编程工具的使用

    linux编程入门与基本编程工具的使用:1.1 什么是 Linux Linux 的发音 Linux 的官方定义 POSIX 及其重要地位 GNU 和 Linux 的关系 GPL 及其主要内容 Linux 的主要发行版 1.1.1 Linux 的发音 Linux 发音...

    常用设计编程工具 压缩弹簧设计

    常用设计编程工具 压缩弹簧设计常用设计编程工具 压缩弹簧设计常用设计编程工具 压缩弹簧设计常用设计编程工具 压缩弹簧设计常用设计编程工具 压缩弹簧设计常用设计编程工具 压缩弹簧设计常用设计编程工具 压缩弹簧...

Global site tag (gtag.js) - Google Analytics