重构的作用

—— from Kent Beck

程序有两面价值:今天的价值和明天的价值。但大多时候我们都只是关注今天的价值,也就是今天的程序能做什么。不论是修复错误或是添加特性,我们都是为了让程序能力更强,让它在今天更有价值。
  但是系统当下的行为,只是整个故事的一部分,如果没有认清这一点,你无法长期从事编程工作。如果你为求完成今天的任务而不择手段,导致不可能在明天完成任务,那么最终还是会失败。但是,你知道自己今天需要什么,却不一定知道自己明天需要什么。也许你可以猜到明天的需求,也许吧,但肯定还有些事情出乎你的意料。
对于今天的工作,我了解得很充分:对于明天的工作,我了解得不够充分。但是如果只是为今天的工作,明天我将无法工作。
  重构是一条摆脱困境的道路。如果你发现昨天的决定已经不适合今天的情况,放心改变这个决定就是,然后你就可以完成今天的工作了。明天,喔,明天回头看今天的理解也许觉得很幼稚,那是你还可以改变你的理解。
  是什么让程序如此难以 相与?眼瞎我能响起下述四个原因,它们是:

  • 难以阅读的程序,难以修改;
  • 逻辑重复的程序,难以修改;
  • 添加新行为时需要修改已有代码的程序,难以修改;
  • 带复杂条件逻辑的程序,难以修改。
      因此,我们希望程序:1.容易阅读;2.所有逻辑都只有在唯一地点指定;3.新的改动不会危险现有行为;4.尽可能使用简单表达条件逻辑。
      重构是这样一个过程:它在一个目前可运行的程序上进行,在不改变程序行为的前提下使其具备上述美好性质,使我们能够继续保持高速开发,从而增加程序的价值。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 《重构》读书笔记 总览 第一部分 第一章从实例程序出发,展示设计的缺陷,对其重构可以了解重构的过程和方法。 第二部...
    白桦叶阅读 7,042评论 2 5
  • 先说项目开发过程中团队人员的分工协作。 一 人员安排 毕业至今的大部分项目都是独立完成,虽然也有和其他同事协作的时...
    SnowflakeCloud阅读 13,720评论 3 59
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,043评论 25 709
  • 恐惧,是一种人类及生物心理活动状态,通常称为情绪的一种。从心理学的角度来讲,恐惧是一种有机体企图摆脱、逃避...
    掮商阅读 4,889评论 0 3
  • 未散场的青春和不能接近的美丽,永远都像是带刺的玫瑰。莫使金樽空对月,心比天高,游过就好⊙⊙情人节的狂欢,情人节的情人…
    hotIcecream阅读 2,118评论 0 1