重构到模式
2004
多年来,我一直致力于倡导敏捷方法,特别是极限编程。当我这样做时,人们经常质疑这与我对设计模式的长期兴趣如何相符。事实上,我听说过有人声称,通过鼓励重构和演化设计,我正在背叛我之前关于分析和设计模式的著作。
然而,只要快速观察一下人们,就会意识到这种观点是错误的。看看模式社区的领导成员和敏捷和 XP 社区的领导成员,你会发现一个巨大的交集。事实是,模式和演化设计从一开始就有着密切的关系。
Josh Kerievsky 一直处于这种重叠的核心。我第一次见到他是在他组织纽约市成功的模式学习小组时。这些小组对不断增长的设计模式文献进行了协作研究。我很快发现 Josh 对设计模式的理解首屈一指,并且通过听他讲课,我对这些模式有了很多了解。Josh 很早就采用了重构,并且是我这本书的非常有帮助的审稿人。因此,他也是极限编程的先驱,这对我来说并不奇怪。他在第一个 XP 大会上发表的关于模式和极限编程的论文是我最喜欢的论文之一。
因此,如果有人最适合撰写关于模式和重构的相互作用,那就是 Josh。我在《重构》中稍微探索了一下这个领域,但我没有走得太远,因为我想专注于基本的重构。这本书极大地扩展了这个领域,详细讨论了如何演化大多数流行的四人帮模式,表明它们不需要在前期设计,而是在系统发展过程中演化。
除了通过学习这些重构可以获得的关于这些重构的特定知识外,这本书还告诉您更多关于模式和重构的一般信息。许多人说,他们发现重构方法是学习模式的更好方法,因为您会看到问题和解决方案的相互作用的逐步过程。这些重构也强化了重构的关键事实,即重构就是以微小的步骤进行重大更改。
因此,我很高兴能够向您介绍这本书。我花了很长时间说服 Josh 写一本书,然后与他一起完成这本书。我对结果感到高兴,我认为您也会感到高兴。