重构

作者: LeaveStyle | 来源:发表于2020-04-22 17:22 被阅读0次

1. 何谓重构

重构是对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。

2. 为何重构

  • 改进软件设计
  • 使软件更容易理解
  • 帮助找到bug
  • 提高编程速度

3. 何时重构

  • 添加功能时重构
  • 修补错误时重构
  • 复审代码时重构

4. 坏代码

  1. Duplicated Code(重复代码)
    • Template Method设计模式
  2. Long Method(过长函数)
    • 需要注释说明的内容都需要提炼到独立函数中
    • 提炼循环语句到独立函数
    • 使用Decompose Conditional(238)处理条件表达式
  3. Large Class(过大的类)
    • Extract Class(149)
    • Extract Subclass(330)
  4. Long Parameter List(过长参数列)
    • Replace Parameter with Method(292)
    • Preserve Whole Object(288)
    • Introduce Parameter Object(295)
  5. Divergent Change(发散式变化):一个类受多种变化的影响
    • Extract Class(149)
  6. Shotgun Surgery(霰弹式修改): 一个类变化引发多个类相应修改
    • Move Method(142)
    • Move Field(146)
    • Inline Class(154)
  7. Feature Envy(依恋情结)
  8. Data Clumps(数据泥团)
  9. Primitive Obsession(基本类型偏执)
    • Replace Data Value with Object
  10. Switch Statements
    • 使用多态代替
  11. Parallel Inheritance Hierarchies(平行继承体系)
  12. Lazy Class(冗赘类)
    • Collapse Hierarchy(344)
    • Inline Class(154)
  13. Speculative Generality(夸夸其谈未来性):定义了目前不会用到的类或方法
  14. Temporary Field(令人迷惑的暂时字段)
  15. Message Chains(过度耦合的消息链)
  16. Middle Man(中间人)
  17. Inappropriate Intimacy(狎昵关系)
  18. Alternative Classes with Different Interfaces(异曲同工的类)
  19. Incomplete Library Class(不完美的库类)
    • Introduce Foreign Method(162)
    • Introduce Local Extension(164)
  20. Data Class(纯稚的数据类)
  21. Refused Bequest(被拒绝的遗赠)
    • Replace Inheritance with Delegation(352)
  22. Comments(过多的注释)

相关文章

  • 代码重构专题(转载)

    代码重构(一):函数重构规则代码重构(二):类重构规则代码重构(三):数据重构规则代码重构(四):条件表达式重构规...

  • 重构代码之美

    什么是重构; 为什么要重构; 什么时候重构; 怎样避免重构的现象; 重构的难点在哪里; 如何来实施代码重构; 重构...

  • 30 - 重构之代码解耦

    重构可以分为大规模高层重构(简称“大型重构”)和小规模低层次重构(简称“小型重构”)。大型重构是对系统、模块、代码...

  • 重构、重构、重构

    【待完成】

  • 重构

    为何重构? 1.重构改进软件设计 2.重构使软件更容易理解 3.重构帮助找到bug 4.重构提高编程速度 何时重构...

  • Effective Refactoring in C++ (二)

    如何实施重构 稍微复杂的重构,基本都是由一系列的重构手法组成. 《重构》一书中针对各种重构场景,给出了大量的重构手...

  • 代码重构流程

    目录 重构功能名称 需求整理 需求评审 设计方案 设计评审 代码重构 重构验收 汇总意见 重构功能名称 待重构功能...

  • 把《重构》变成工具书

    前言一、把它变成工具书二、概述何谓重构注释为何重构何时重构重构、架构和YAGNI重构与软件开发过程重构与性能如何重...

  • 《重构》一书总结(二)

    《重构》一书总结(二) 重构的重点,在于对那些代码进行重构,如果重构不当,反而适得其反。 重构代码终结如下 1.D...

  • 《重构》一书经典总结(一)

    《重构》一书经典总结(一) 为何重构 1.重构改进软件设计2.重构使软件更容易理解3.重构提交稿编程速度4.重构帮...

网友评论

    本文标题:重构

    本文链接:https://www.haomeiwen.com/subject/qydwihtx.html