如何成为优秀开发人员[6]:正确地做事(善用工具)

  俗话说“工欲善其事,必先利其器”,今天我们来说说和开发工具有关的话题。由于开发过程中会用到的工具多种多样,根据“ 二八原理”,我只挑选和开发最密切相关的少数几种工具来聊一聊。

  ★编辑器
  编辑器显然是用的最频繁的工具了(尤其是对于经常写代码的人),但是很大一部分人不善于使用编辑器。因此我先来说一下对编辑器使用的一些体会。顺便提一下,如果你连盲打都没过关,请先去学打字,再回来看这个帖子。
  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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值