为什么重构有用

 

摘自《重构,改善既有代码的设计》

程序有两面价值:「今天可以为你做什么」和「明天可以为你做什么」。大多数时候,我们都只关注自己今天想要程序做什么。不论是修复错误或是添加特性,我们都是为了让程序力更强,让它在今天更有价值。

但是系统当下行为,只是整个故事的一部分,如果没有认清这一点,你无法长期从事编程工作。如果你「为求完成今天任务」而釆取的手法使你不可能在明天完成明天的任务,那么你还是失败。但是,你知道自己今天需要什么,却不一定知道自己明天需要什么。也许你可以猜到明天的需求,也许吧,但肯定还有些事情出乎你的意料。

对于今天的工作,我了解得很充分:对于明天的工作,我了解得不够充分。但如果我纯粹只是为今天工作,明天我将完全无法工作。

重构是一条摆脱束缚的道路。如果你发现昨天的决定已经不适合今天的情况,放心改变这个决定就是,然后你就可以完成今天的工作了。明天,喔,明天回头看今天的理解也许觉得幼稚,那时你还可以改变你的理解。

是什么让程序如此难以相与?下笔此刻,我想起四个原因,它们是:

·难以阅读的程序,难以修改。
·逻辑重复(duplicated logic)的程序,难以修改。
·添加新行为时需要修改既有代码者,难以修改。
·带复杂条件逻辑(complex conditional logic)的程序,难以修改。

 

因此,我们希望程序:(1)容易理解;(2)所有逻辑都只在唯一地点指定;(3)新的改动不会危及现有行为;(4)尽可能简单表达条件逻辑(conditional logic)。

 

重构是这样一个过程:它在一个目前可运行的程序上进行,企图在「不改变程序行为」的情况下赋予上述美好性质,使我们能够继续保持高速开发,从而增加程序的价值。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值