摘要: 对于软件开发,多少代工程师梦想能像堆积木一样堆出满足功能需求的软件。Brooks在No Silver Bullet一文中提到解决软件开发过程中复杂性的一种可能方案就是成熟的组件市场,人们可以购买需要的组件而不是再自行开发。但对于开发工作,有没有一种更高层面的模式,可以把原来混乱无序的开发过程分解成一段段明确定义的步骤?比如说,开发人员接到一个任务,他可以这样跟他的同伴解释他的计划:“我先要抽取类(extract class),然后移动方法(move method),就完成了。”这正是本文试图讨论的主题:通过一系列明确定义的重构步骤,以达到实现系统功能的目的。我们可以进一步假想,重构是否就是开发人员开发软件的领域专属语言呢(refactoring as DSLs to developers' development)
阅读全文