Litong's Blog

Work to become, not to acquire.

第1章 本书的写作缘由

软件模式的伟大之处,就在于它们传达了许多有用的设计思想。通过重构实现模式、趋向模式和去除模式。

过度设计

过度设计(over-engineering)是指代码的灵活性和复杂性超出所需。

不要做那些自认为”聪明“的假设。

如果预计错误,浪费的将是宝贵的时间和金钱。

过度设计的代码会影响生产率。

模式万灵丹

模式不是万灵丹,有时候一些短小、简单和直截了当的代码就可以完成冗余的设计模式。

设计不足(under-engineering)

设计不足比过度设计要常见得多。

产生设计不足的原因有如下几种:

随着时间的推移,设计不足的软件将变成昂贵、难以维护深圳无法维护的大麻烦。

测试驱动开发和持续重构

通过测试驱动开发和持续重构,我们将编程变成一种对话,从而高效地使可以工作的代码不断演变。

问:编写一个测试,向系统提问。 答:编写代码通过这个测试,回答这一提问。 提炼:通过合并概念、去芜存菁、消除歧义,提炼你的回答。 反复:提出下一个问题,继续进行对话。

测试驱动开发+持续重构,强调的是持续分析和设计,与测试关系不大,这种方式有助于:

重构与模式

通过重构实现模式,或者通过趋向模式进行重构,它们的动机都是一样的:减少或去除重复的地方,简化复杂之处,使代码更好地表达其意思。

模式之所以存在,就是为了解决问题,因此必须先了解它们有助于解决什么问题。

模式和重构之间存在着天然联系。模式是你想到达的目的地,而重构则是从其他地方抵达这个目的地的条条道路。

演进式设计

重构产生设计结构。

通过重构实现模式或者通过重构趋向模式。

如果想成为一名更优秀的软件设计师,了解优秀软件设计的演变过程比学习优秀设计本身更有价值,因为设计的演变过程中隐藏着真正的大智慧。

”那些父辈们传下来的东西,如果你能够拥有它,你就能重新得到它们“。

将模式放到重构的背景中领会。

测试驱动开发和持续重构是演进式设计的关键实践。