设计模式之美-重构

软件设计大师 Martin Fowler 是这样定义重构的: 重构是一种对软件内部结构的改善,目的是在不改变软件的可见行为的情况下,使其更易理解,修改成本更低。

也可以把重构理解为,在保持功能不变的前提下,利用设计思想、原则、模式、编程规范等理论来优化代码,修改设计上的不足,提高代码质量。

重构的目的

  • 重构是时刻保证代码质量的一个极其有效的手段

  • 优秀的代码或架构不是一开始就能完全设计好的,我们无法 100% 遇见未来的需求,也没有足够的精力、时间、资源为遥远的未来买单,所以,随着系统的演进,重构代码也是不可避免的。

  • 重构是避免过度设计的有效手段

  • 重构对一个工程师本身技术的成长也有重要的意义,重构能力也是衡量一个工程师代码能力的有效手段

重构的对象

重构的规模,我们可以笼统地分为大规模高层次重构和小规模低层次的重构。

大规模高层次重构:指的是对顶层代码设计的重构,包括系统、模块、代码结构、类与类之间的关系等的重构,重构的手段有:分层、模块化、解耦、抽象可复用组件等等。利用的更多的是比较抽象、比较顶层的设计思想、原则、模式

小规模低层次的重构:指的是对代码细节的重构,主要是针对类、函数、变量等代码级别的重构,比如规范命名、规范注释、消除超大类或函数、提取重复代码等等。更多的是利用编码规范这一理论知识

重构的时机

持续重构把持续重构也作为开发的一部分,成为一种开发习惯。尽管说重构能力很重要,但持续重构意识更重要。时刻具有持续重构意识,才能避免开发初期就过度设计,避免代码维护的过程中质量的下降。而不是等到代码出现很大问题的时候,再大刀阔斧地重构。

重构的方法

大规模高层次的重构一定是有组织、有计划,并且非常谨慎的,需要有经验、熟悉业务的资深同事来主导。而小规模低层次的重构,因为影响范围小,改动耗时短,随时都可以去做。除了人工去发现低层次的质量问题,还可以借助一些静态代码分析工具(比如 CheckStyle、FindBugs、PMD),来自动发现代码中的问题,然后针对性地进行重构优化。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值