第三章 基本工具 The Basic Tools

 

     


就像每个工匠刚刚开始职业生涯时,都会准备一套品质良好的基本工具,新程序员也需要准备一套的工具,也许它不是最好的,但最重要的是它在程序员看来是最顺手的。

随后学习与适应的过程开始,每种工具都有其自身的特性与古怪之处,都需要得到相应的特殊对待。随着时间的推移,工具与程序员的磨合程度越来越高,工具将程序员的才干放大,工具掌握的越好,程序员的效率越高。伴随一些特殊需求,程序员需要新的工具来解决问题。要像工匠一样,想着定期添加工具,总是寻找更好的做事方式。

 纯文本的威力


纯文本:即有可打印字符组成。 人可以直接阅读和理解其形式。使用纯文本可以保证不过时,即人们可以随时自由阅读的形式,不需要软件来辅助解读;更易于测试,使用纯文本的合成数据,对于增加,更新或是测试数据是一件简单的事情,并且无需为此创建任何的特殊工具。

 

shell游戏


注重实效的程序员并只是剪切代码,或是开发对象模型,或是撰写文档,或是使构建过程自动化——所有这些事情我们都要做。如果我们习惯了使用GUI界面和集成开发环境,在这样的环境下成长起来,就是丧失对底层的了解,对于shell的“游戏”无法了解。这样做只会让环境限制了自我,自我的生产率会被所使用的工具所限制,无法有自我的提高。而通过使用shell语句,则不会让工具限制你。

强力编辑与源码控制

选择一种可以在多平台使用并且既有GUI版本,又有非GUI版本的编辑器,精通它,将其用于所有的编辑任务:代码,文档,备忘录,系统管理等等。精通一种编辑器可以提高你的生产率,它可以帮助你使常用操作流水线化,提供自动缩进等等,从各个方面提高你的生产率。

源码控制系统,可以比作一个巨大的UNDO键——一个项目级的时间机器,能够让你返回修改源码几周前的太平时期,代码还能够运行的时期。

调试

每一个程序的必经之路,每一个程序员都会花费大量时间的步骤。

调试当中的bug是必不可少的,对调试要有正确的心态。要接受现实:调试就是解决问题。对于bug 不要一味去指责某个引起bug的人或物,要专注于修正问题,而不是发出指责。

对于调试要有正确的方式:不要想当然的按照对的方式去调试,那样做永远不会找出bug,你要放弃自我程序员的身份,站在客户的角度去调试,以客户的眼光看待问题,而且不要害怕出现bug,不要惊慌,对待bug不要持有“那不可能”的惊讶感,任何bug都是可能的。

修改bug时,要确保错误成功编译的代码没有警告。修改bug,要知道bug出现在什么地方,在寻找bug原因的过程中,让自己的数据可视化,用肉眼去追踪数据,寻找bug原因。对于原因,不要将bug的第一原因归于第三方的产品或者其他成员编写的应用代码,而是有大可能的bug的位置定位在正在开发的应用代码当中。