俗话说“工欲善其事,必先利其器”,今天我们来说说和开发工具有关的话题。由于开发过程中会用到的工具多种多样,根据“二八原理”,我只挑选和开发最密切相关的少数几种工具来聊一聊。<!--program-think-->
★编辑器
编辑器显然是用的最频繁的工具了(尤其是对于经常写代码的人),但是很大一部分人不善于使用编辑器。因此我先来说一下对编辑器使用的一些体会。顺便提一下,如果你连盲打都没过关,请先去学打字,再回来看这个帖子。
1、字体的配置
对于写代码而言,字体的选择是非常重要的(看起来舒服的字体起码能保护眼睛)。首先必须选择一种等宽的字体(比如FixedSys、Courier New);其次该字体必须能够清楚地区分如下几种容易混淆的字符,避免阅读代码的时候看错:
数字0 和 字母O
数字1 和 大写字母I 和 小写字母l 和 或运算符|
数字2 和 字母z
数字9 和 小写字母q
乘号* 和 字母X
分号; 和 冒号:
2、颜色的设置
你使用的编辑器必须支持自定义的词法高亮(词法着色)。对词法高亮进行设置时,至少要把:“代码注释、关键字、字符串、数字”这几种语法要素用不同的颜色区分开。当然,如果还能根据“类名、函数名、变量名等”进行着色,那就更好了。
3、快捷键
熟练地使用快捷键能大大提高编辑的效率。因为你的手不需要离开键盘去操纵鼠标。而且当编辑的文本比较大时,有些编辑命令即使用鼠标操作也挺费劲(比如全选、移动到文件尾),不如快捷键方便。
所以,你使用的编辑器必须支持快捷键(这个大多数都能做到),而且还必须支持编辑命令和快捷键的绑定(也就是自己设置某个编辑命令对应的快捷键),便于根据个人喜好设置快捷键。
4、其它功能
还有一些比较琐碎的功能,比如:代码自动缩进、自动补全、动态提示等等。最后,如果你需要经常在不同的操作系统上进行工作,那你的编辑器还必须得支持跨平台才行。
虽然说了这么多条条框框,但是符合全部要求的软件并不难找,比如Emacs、VIM、Eclipse等软件都可以满足上述的编辑功能,具体选哪个就看各自的偏爱了。
★源代码管理工具(版本管理软件)
为了打字方便,以下简称RCS(Revision Control System)。
通过RCS的使用状况,可以看出一个开发团队在软件工程方面的成熟度,因此我们接下来要说说RCS的问题。如果你所在的开发团队从来不使用RCS进行代码的版本控制,那我建议你赶紧考虑跳槽。
我观察下来,发觉RCS主要有如下几种误用的情况:
1、不正确的提交频度
有很多新手不习惯使用RCS,很少进行代码的提交。有些人甚至到项目快结束时还没有提交过一行代码。结果导致整个RCS形同虚设。
还有一些人则走向另一个极端,频繁提交代码。有些人每改完一个文件就提交一次,还有些人甚至把修改一半,尚不能编译通过的代码也提交到RCS。
我个人认为,正确的提交频度应该分两种情况:在编写功能代码时,每完成一个功能点,并且自己经过了自测之后,提交一次;在调试的时候,每修复一个bug,提交一次。这样能够保证提交到RCS的代码都是能编译通过的(详见每日构建系列),并且业务逻辑上也是相对完整的(对于每日构建后的测试很重要)。
2、提交时不写注释
很多人提交代码时不写注释,将来再想到版本历史里面找代码就犹如大海捞针般困难。比如在我经手的代码中,有些源代码文件历时3年,提交次数上百次,如果提交时不写注释,日后根本没法找。
3、不做代码基线(Baseline)、不做代码分支(Branch)
在正规的开发团队,每当有一个版本发布(Release)并交付给用户使用时,都需要在RCS中制作一个基线,以便于进行相应的bug跟踪和补丁制作。因此,诸如做基线之类的事情,属于整个团队的集体行为,需要由Team Leader牵头来搞。
假如一个开发团队从来不做代码基线或者代码分支,仅仅是把RCS当成一个源文件的备份工具来用,那至少说明这个团队的Team Leader在软件工程管理方面非常失败。
★用于调试/测试的运行辅助工具
运行辅助工具对于开发效率的影响也很大。一般来说,你自己的开发机器上要有尽可能仿真(和用户的环境相似)的运行环境,并且运行辅助工具能够有效地发现运行时的一些不正常的信息。这样有利于让bug在交付给用户之前尽早暴露出来。
如果你是Web开发人员,那么你自己肯定要安装好常用的浏览器(至少包括IE和Firefox)。对于IE,还得设置成显示脚本错误通知。
如果你主要开发Windows应用程序,你手头肯定要备好诸如:Depends(Visual C++自带)、Process Explorer等工具,便于查看进程、线程、动态库、堆内存等运行时信息。
如果你是搞手机应用的,那么你至少得有目标系统的模拟器软件(如果能配一个真机当然更好)。
如果你主要进行跨平台方面的开发,那么诸如VMware之类的虚拟机软件是必不可少的。
......
限于篇幅,今天就只说这些。其它我未提及的工具,大伙儿自己可以举一反三。下一个话题,打算说说“善用自动化”。
http://program-think.blogspot.com/2009/02/6.html
分享到:
相关推荐
人教版道德与法治八年级上册:第3课时善用法律(精品教案).docx
Bootstrap是世界上最流行的前端开发框架之一,它为开发者提供了一套完整的工具集,用于快速构建响应式、移动优先的Web应用程序。本篇文章将深入探讨Bootstrap的原理、技术、工具及其最佳实践,帮助您提升Web开发效率...
【标题】:Moss开发常用工具 在SharePoint(Moss)开发过程中,有一系列的工具可以帮助开发者提高效率,优化工作流程。这些工具涵盖了从设计、开发、测试...对于一个成功的Moss开发项目,熟悉并善用这些工具至关重要。
6. **设定优先级**:与开发人员一起讨论bug的优先级和严重性,确保关键问题首先得到处理。理解开发者的资源限制和项目进度,合理安排修复顺序。 7. **警惕心理外交手段**:虽然要灵活应对,但也要保持警觉,防止被...
[6105] 01 流程意识 :如何成为善用流程的高手?.md
善用工具,图片隐写工具Free_File_Camouflage最新版
《善用佳软:高效能人士的软件之道》是一本专为提高个人生产力而撰写的指南,它深入探讨了如何通过正确使用软件工具提升工作效率,从而成为高效能人士。本书的核心理念是,软件不仅是工具,更是提升个人效能、管理...
熟悉并善用这些标准库可以极大地提高开发效率。 2. **第三方库管理**: Golang的依赖管理工具有`go mod`(Go Modules),它允许开发者通过`go get`命令获取并管理项目依赖。在`goutils-main`中,可能会有`go.mod`...
对于Java和Android开发人员来说,理解这些工具如何集成到他们的项目中是至关重要的,因为这可以帮助他们优化代码结构,减少重复工作,并遵循最佳实践。 "AndroidUtilCode_master.zip"这个名字暗示这是一个Android...
为了提升开发速度,各种辅助工具应运而生,其中“Visual Assist”作为一款备受推崇的插件,成为了众多VC开发者的得力助手。本文将详细介绍Visual Assist v6.0.0.1079这一版本的功能、优势以及如何在实际开发中发挥其...
总而言之,"arxdbgd2007"是AutoCAD 2007二次开发中不可或缺的工具,它极大地便利了开发者对ObjectARX应用的调试和优化。对于任何希望在AutoCAD平台上构建自定义功能的程序员来说,熟悉并善用此类工具都是至关重要的...
安全培训是保障组织技术安全的重要环节,而善用培训工具则能显著提升培训的效果和质量。以下是一些关键的培训工具及其在安全培训中的应用: 1. **白板和书写设备**:白板是传统的培训工具,对于控制课堂节奏、调整...
【Delphi开发小工具-取色器TColor】是一款专为Delphi编程环境设计的实用辅助工具,它允许开发者在编程过程中快速、准确地获取...在今后的Delphi编程实践中,掌握并善用这类小工具,无疑会成为提升专业技能的有效途径。
在Java开发过程中,掌握JDK内置工具是提升效率和优化代码的关键步骤。本文将深入探讨六个对于普通开发者极具价值的JDK内置工具,这些...因此,对于普通开发者来说,熟悉并善用这些工具是成为高效Java开发者的必备条件。
**源码分析利器——SourceMonitor** SourceMonitor是一款强大的源代码分析工具,专为软件开发者设计,用于度量和管理代码的复杂性。...在日常开发工作中,善用SourceMonitor将极大地提升工作效率。
【标题】:善用信息资源规划的管理工具 在当今数字化时代,信息资源规划(Information Resource Planning, IRP)已成为企业管理和决策的关键组成部分。IRP旨在整合企业的信息技术(IT)和业务战略,确保IT资源的...
研发企业人力资源管理需要解决不能知人善用、重要岗位用错人、优秀人才难招到和留不住、难以准确的评价考核研发人员的业绩等问题。 IT 组织结构也是提高软件开发效率的重要手段。IT 组织结构需要解决组织结构臃肿、...
6. **通信与协作工具**:Slack、Microsoft Teams、Zoom等,使得远程团队间的即时沟通和协作成为可能。 7. **自动化工具**:如IFTTT(If This Then That)、Zapier,通过设定规则实现日常任务的自动化,节省时间。 ...