refactoring

重构(refactoring)

当一个程序已经变得难以维护时,是推到重新实现一次还是既有代码上选择重构?

具体问题具体分析,这里假设我们保守一点,选择了重构。

《重构:改善既有代码的设计》 读书笔记,这本书中的范例全都使用 Java 撰写的。

本书清晰揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了 70 多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。

Java 和 .NET 的自动化重构工具已经相当成熟,但另一些重要的面向对象语言(C++、PHP、Python……)还远未享受到这样的便利。

  • Java 要学会使用 Eclipse 中的自动测试和重构功能。
  • .NET 的 Visual Studio 中有良好的 重构(refactoring)支持。

设计模式 与 重构

在设计前期使用模式常常导致过度工程。这是一个残酷的事实,单凭对完美的追求无法写出实用的代码,而“实用”是软件压倒一切的要素。——《极限编程研究》

更实际的做法应该将既有代码参照模式来重构。

Refactoring to Patterns ——《停止过度工程》

设计模式为重构提供了目标。

一个良好的框架(Framework)不应该是实现设计出来的,而应该来自于对实际项目的不断重构慢慢演化出来的。

风险 与 重构

不重构,坑会越挖越深,最终是自掘坟墓。所以答案是必须重构!

最佳实践是,运用本书中的重构手法,保证每次只走一步。这种重构手法不但让开发压力更小,而且也能让你对最终的结果更有信心!

什么是重构?

重构是一种经千锤百炼形成的有条不紊的程序整理方法,可以最大限度地减少整理过程中引入错误的几率。本质上说,重构就是在代码写好之后改进它的设计。

在接触重构的概念之前,我一直都是认为应该先设计后编码。但事实是你开始有了一个良好的设计,但是,随着时间的流逝,我们需要不断修改代码,于是原先的设计已经跟不上不断修改的代码。

所以我们应该不断地执行在代码写好之后改进它的设计

你会发现所谓设计不再是一切动作的前提,而是整个开发过程中逐渐浮现出来。