围城书评
肯特·贝克(Kent Beck)的新书《实现模式》是一本有关用Java编写代码的书。 本书中的模式基于Kent对现有代码的阅读以及他自己的编程习惯。 这些模式与开发人员通过代码进行通信有关,这使他想起了他先前在Smalltalk Patterns上的工作。 它们的级别低于设计模式,并且粒度与Larman的GRASP模式相同 。 本书中的模式旨在使人们可以理解如何编写满足人类和经济需求的代码。
编程理论
当然,好的代码(更不用说好的代码)这一概念并不是所有开发人员都会同意的。 肯特提出了他的编程理论,以此作为区分代码质量的基础。 在第2章中,经过几个介绍性的章节,一个是本书的目标,另一个是关于模式的章节,Kent描述了编程中的两个跨领域关注点:值和原则。
这些值是编程的通用总体主题。 当我工作得很好时,我非常珍视与其他人进行交流,从代码中消除过多的复杂性以及保持选项开放的重要性。 这些价值-沟通,简单和灵活-为我在编程时所做的每个决定增色不少。
这里描述的原理并不像值那么深远或普遍,但是每一个都由许多模式表示。 这些原则在普遍但通常难以直接应用的价值观与明确适用但又具体适用的模式之间架起了桥梁。 ...面对含糊不清的情况,理解这些原则使我能够“做出一些与我的其余练习相一致的东西”,并且结果可能会很好。
肯特随后详细讨论了价值观和原则。 本书中的模式都参考了价值观和原则-它们帮助开发人员了解每种模式如何帮助实现更大的目标。
值是:
- 通讯
- 简单
- 灵活性
原则是:
- 当地后果
- 减少重复
- 逻辑和数据在一起
- 对称
- 陈述式
- 变化率
本章后面是关于驱动软件开发的动机(主要是经济动机)的章节。 简而言之,我们将大部分时间用于软件维护。 反过来,更改的成本是理解代码,更改代码,测试代码以及最终部署代码的总和。
模式
这些模式以论文格式编写,涵盖了从应该在类中创建数据字段的时间到相等方法再到子类化的所有内容。 这些模式按以下章节分为几章:
- 类:有关如何创建类和接口的模式。
- 状态:与数据有关的模式。
- 行为:与功能有关的模式,但不一定位于类中。
- 方法:涉及类中不同类型方法的模式。
- 集合:与汇总数据有关的模式。
- 框架:与解决框架问题有关的模式。
所涵盖模式的一些示例如下:(肯特比这里的摘要更优雅地展示了它们。)
- 从类模式:
- 简单的超类名称:讨论简洁和表达之间的张力。 肯特(Kent)讨论如何为超类命名。
- 合格的子类名称:名称子类,以与超类沟通相似性和差异。 因为超类没有像子类那样频繁地被引用,所以名称不必如此简洁。
- 从状态模式:
- 直接访问:例如x = 10非常清晰简洁。 其中太多的内容也会使代码混乱。
- 延迟初始化:如果初始化成本很高,则有时推迟初始化是有意义的。
- 从方法模式:
- 组合方法:方法调出其他方法,每个方法大致具有相同的抽象级别。
- 相等方法:一起定义equals()和hashCode()方法以获得正确的相等性。
结论
肯特以简洁简洁的格式为我们提供了他的经验(整本书,带附录,共156页)。 他没有给出规则,但是给出了价值观,原则和经验法则:
没有普遍的规则。 程序员需要思考,交流和学习。 那是专业的一部分。
这是一本对初级和高级开发人员都有用的书-每个书都有不同的地方。 那些软件开发新手将通过当今最有才华的开发人员之一看到开发。 其他有更多经验的人将能够反思他们为什么以自己的方式做事-实践通过关注自己为什么做而具有不同的含义。 最后,将价值和原则(尤其是价值)与软件开发联系在一起,可以使每件事都与众不同-很好。
围城书评