读后感3
每个工匠在开始其职业生涯时,都会准备一套品质良好的工具。这些工具将经过认真挑选、打造得更加坚固耐用、并用于完成很少与其他工具重合的特定工作。随后学习与适应的过程就开始了。每样工作都有自身的特性和古怪之处,并且需要得到相应的特殊对待。每样工具都需要以独特的方式进行打磨,或者以独特的方式把持。到时候工具就变成了工匠的头脑与所做的产品之间的通道——他们变成了工匠双手的延伸。到最后工具会放大工匠的才干。工具越好,工匠就越能更好的掌握他们的用法,生产力也就会越高。这指出了我们这些不成形的程序员以及一些新程序员的一个常见错误:采用单一的强力工具。比如特定的集成开发环境IDE,而且再也不离开其舒适的界面。这是个错误,我们要乐于超越IDE所施加的各种限制。要做到这一点,唯一的途径是保持基本工具集的锋利与就绪。
接下来,本书介绍了纯文本的威力。纯文本是可以直接让人理解的形式,与二进制编码相比,纯文本所处的层面更高。但是纯文本也有两个缺点:1.所需空间很大;2.需要解释及处理的文件,计算上的代价更大。但是纯文本也有很重要的优势特性:1.保证不过时;2.杠杆作用;3.更易于测试。保证不过时很容易达成,而且可以自动保存所有改动的历史,可以监视文件是否收到偶然的修改。
后面,又接连介绍了shell游戏、强力编辑、源码控制、调试、文本操控、代码生成器等,解释了他们各自的优缺点以及相应的特性,对于我们这些初学者来说有着很大的启迪。
You Can't Write Perfect Software!(你不可能写出完美的软件!)
完美的软件是不存在的。这让我们感到压抑,但注重实效的程序员却能把它变成有利的条件。编码的相似性相当明显,我们要防卫性的编码。但是注重实效性的程序员会更进一步,他们连自己也不信任,因为没有完美的代码,所以他们会针对自己的错误进行防卫性的编码。本文重点解释按合约设计、死程序不说谎、断言式编程、何时使用异常、怎样配平资源这五个方法,帮助我们提高程序的时效性,这对于我这种菜鸟来说是一种宝贵的资源。