重构,从来不只是代码上的微小调整,它是随着对领域知识理解的不断加深、随着系统各组成部分实现的不断深入,而对设计的不断完善。所以,重构不是一种纯粹的编码技术,而应归就于完善设计的一种方法。
老马的《重构:改善既有代码的设计》一直是我搁在案头上反复研读的经典之一。此番双11入手第二版后,我抓紧时间读了一遍,并与第一版进行了比较。个人感觉,第二版更具条理,表现在他对每种重构手法的“为什么要这样或为什么不能这样”基本都有一小段说明,并且在范例中进行了演示,这就帮助我们在做重构的抉择时,有了更充分的依据。
以下,便是我对全书重构手法的整理。当然,其必然是不符合老马的章节安排的,而完全是与我个人风格紧密相关的。在这个过程中,我有意无意地将老马在书中提到的重构时需要考虑的因素,向函数式编程范式涉及的不变量、函数第一公民,领域驱动设计范畴的值对象等方面倾斜,从而为在实际工作中更好地运用FP和DDD的理论,去实践这些重构手法提供指引。