如何做代码重构

如同Martin Fowler所说,

代码是主要是写给人看的,其次才是给机器看的.  换句说,如果你的代码别人看不懂,就是你的水平差,不是别人水平差.

保证代码架构清晰, 是保证项目长远发展的基石. 在重构代码必须注意,重构不改变软件的功能. (重构不应增加功能或是Fix bug)

代码重构的步骤

  1. 建立测试实例和日志系统
  2. 删除不用代码
  3. 改变变量名称, 函数名称,类名称
  4. 消除函数内部不需要的临时变量
  5. 通过各种编程技巧,改变代码段的复杂性. 如continue, break来减少嵌套层数
  6. 提取相同代码
  7. 提取复杂代码
  8. 重新review现有类的private, public, protect, 将函数功能放到正确的类下.
  9. 尽量加上const
  10. 建立新类, 这是在上一步, 提取了复杂代码上的进一步改进, 很多复杂代码无法/很难单独提取为一个函数. 
  11. 建立新继承体系
  12. 分解现有复杂类,   在分解前,必须建立一张现有架构的类图,如能有时序图更好.
  13. class抽象为模板类
  14. 分解现有复杂继承体系

以上步骤, 1-7步不需要采用面向对象技术, 8-10步可以采取基本面向对象技术, 11-14步需要采取设计模式,架构设计等高级技能.

以上每一小条都可以扩展很多,根据开发人员水平的不一样,侧重点不一样.

我曾经将一个15000行的类,分解成5000行的继承体系,功能不减,修改灵活性大大增加.

Martin Fowler提到了代码的坏味道. 但是这些坏味道是如何产生的,或是哪些编程的坏习惯我们应该避免团队里出现呢?

1. 拷贝,黏贴式编程

2. 随心所欲的调用 (包括逻辑和数据)

3. 从来不重审原来的代码,能用就行

其根本还是能力的问题和态度的问题, 我们必须通过技术和管理手段来帮助团队克服.

根据我的开发和管理经验,有一些独到的方法来帮助达到.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值