searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

重构 改善既有代码设计-读书笔记(一)

2023-05-24 01:39:04
73
0

《重构 改善既有代码的设计》,让我们了解本书中那些坏味道,不仅仅可以发现代码中的那些坏味道,更可以鞭策自己以及整个团队,在一开始就尽量不写或少些这种代码,并深入地理解架构、理解业务、理解需求,减少因设计失误而导致徒劳的反复重构。

1. 什么是重构

       重构是指在不改变既有代码外部行为的前提下,对代码内部进行修改,以改善其设计和可读性,从而使得代码更加易于理解、扩展和维护。

改善既有代码的设计可以通过以下几种方式来实现:

  1. 提高抽象水平:将代码中的具体实现细节抽象成更高层次的概念或模块,从而提高代码的可复用性和可扩展性。

  2. 消除重复代码:通过抽象出通用逻辑或函数,消除代码中的重复代码,从而降低代码的复杂度和维护成本。

  3. 分离关注点:将代码中的不同关注点分离开来,例如将用户界面和业务逻辑分离,从而使得代码结构更加清晰、易于理解和维护。

  4. 提高代码可测试性:通过引入依赖注入、Mocking等技术,增加代码的可测试性,从而降低测试的难度和成本。

总之,改善既有代码的设计需要我们通过深入理解代码和需求,识别出代码中的问题和缺陷,并采取合适的技术手段进行改进。这样做可以帮助我们提高代码的质量和效率,降低维护成本,增强代码的可读性和可维护性。

2. 为什么要重构

  1. 重构改进软件的设计。

  2. 让添加新功能更容易。

  3. 使代码更容易理解

  4. 提供开发的速度与方便定位错误

  5. 提高代码质量

3. 何时重构

  1. 增加功能时重构。

  2. 修补错误时重构。

  3. 复审代码时重构。

4. 代码的坏味道

  • 神秘命名(Mysterious Name)
  • 重复代码(Duplicated Code)
  • 过长函数(Long Method)
  • 过大的类(Large Class)
  • 过长参数列(Long Parameter List)
  • 发散式变化(Divergent Change)
  • 霰弹式修改(Shotgun Surgery)
  • 依恋情结(Feature Envy)
  • 数据泥团(Data Clumps)
  • 基本类型偏执(Private Obsession)
  • switch惊悚现身(Switch Statements)
  • 平行继承体系(Parallel Inheritance Hierarchies)
  • 冗赘类(Lazy Class)
  • 夸夸其谈的未来星(Speculative Generality)
  • 令人迷惑的暂时字段(Temporary Field)
  • 过度耦合的消息链(Message Chains)
  • 中间人(Middle Man)
  • 内部交易(Insider Trading)
  • 异曲同工的类(Alternative Classes with DifferentInterfaces)
  • 不完美的库类(Incomplete Library Class)
  • 纯数据类(Data Class)
  • 被拒绝的遗赠(Refused Bequest)
  • 过多的注释(Comments)

 

0条评论
作者已关闭评论
开心过
3文章数
0粉丝数
开心过
3 文章 | 0 粉丝
原创

重构 改善既有代码设计-读书笔记(一)

2023-05-24 01:39:04
73
0

《重构 改善既有代码的设计》,让我们了解本书中那些坏味道,不仅仅可以发现代码中的那些坏味道,更可以鞭策自己以及整个团队,在一开始就尽量不写或少些这种代码,并深入地理解架构、理解业务、理解需求,减少因设计失误而导致徒劳的反复重构。

1. 什么是重构

       重构是指在不改变既有代码外部行为的前提下,对代码内部进行修改,以改善其设计和可读性,从而使得代码更加易于理解、扩展和维护。

改善既有代码的设计可以通过以下几种方式来实现:

  1. 提高抽象水平:将代码中的具体实现细节抽象成更高层次的概念或模块,从而提高代码的可复用性和可扩展性。

  2. 消除重复代码:通过抽象出通用逻辑或函数,消除代码中的重复代码,从而降低代码的复杂度和维护成本。

  3. 分离关注点:将代码中的不同关注点分离开来,例如将用户界面和业务逻辑分离,从而使得代码结构更加清晰、易于理解和维护。

  4. 提高代码可测试性:通过引入依赖注入、Mocking等技术,增加代码的可测试性,从而降低测试的难度和成本。

总之,改善既有代码的设计需要我们通过深入理解代码和需求,识别出代码中的问题和缺陷,并采取合适的技术手段进行改进。这样做可以帮助我们提高代码的质量和效率,降低维护成本,增强代码的可读性和可维护性。

2. 为什么要重构

  1. 重构改进软件的设计。

  2. 让添加新功能更容易。

  3. 使代码更容易理解

  4. 提供开发的速度与方便定位错误

  5. 提高代码质量

3. 何时重构

  1. 增加功能时重构。

  2. 修补错误时重构。

  3. 复审代码时重构。

4. 代码的坏味道

  • 神秘命名(Mysterious Name)
  • 重复代码(Duplicated Code)
  • 过长函数(Long Method)
  • 过大的类(Large Class)
  • 过长参数列(Long Parameter List)
  • 发散式变化(Divergent Change)
  • 霰弹式修改(Shotgun Surgery)
  • 依恋情结(Feature Envy)
  • 数据泥团(Data Clumps)
  • 基本类型偏执(Private Obsession)
  • switch惊悚现身(Switch Statements)
  • 平行继承体系(Parallel Inheritance Hierarchies)
  • 冗赘类(Lazy Class)
  • 夸夸其谈的未来星(Speculative Generality)
  • 令人迷惑的暂时字段(Temporary Field)
  • 过度耦合的消息链(Message Chains)
  • 中间人(Middle Man)
  • 内部交易(Insider Trading)
  • 异曲同工的类(Alternative Classes with DifferentInterfaces)
  • 不完美的库类(Incomplete Library Class)
  • 纯数据类(Data Class)
  • 被拒绝的遗赠(Refused Bequest)
  • 过多的注释(Comments)

 

文章来自个人专栏
代码之美
3 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0