重构:改善既有代码的设计

本书详述了重构的概念和重要性,介绍了如何在不改变软件可观察行为的前提下改进其内部结构。通过实例展示了如何识别和处理代码的坏味道,如重复代码、过长函数等,以及如何运用各种重构技术,如提炼函数、引入多态等。同时,书中强调了测试体系在重构中的关键作用,探讨了重构与设计、性能的关系,并提供了丰富的重构名录和大型重构策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

  • 作者信息:[美] Martin Fowler 著,熊节 译
  • 重构:在不改变软件可观察行为的前提下改善其内部结构。

第1章 重构,第一个案例

1.1 起点

1.2 重构的第一步

  • 为即将修改的代码建立一组可靠的测试环境

1.3 分解并重组statement()

  • 将switch语句块提炼到独立函数中
  • Java IDE,如Eclipse、Idea均已提供良好的重构支持。
  • 更改变量名称是非常值得的行为,好的代码应该清楚表达出自己的功能,变量名称是代码清晰的关键。IDE均已支持更改变量名称。
  • 绝大多数情况下,函数应该放在它所使用的数据的所属对象(类)内。

1.4 运用多态取代与价格相关的条件逻辑

  • 最好不要在一另一个对象的属性基础上运用switch语句。如果不得不使用,也应该在对象自己的数据上使用,而不是在别人的数据上使用。
  • 一部影片可以在生命周期内修改自己的分类,一个对象却不能再声明周期内修改自己所属的类,采用State模式可以解决这个问题。

1.5 结语

第2章 重构原则

2.1 何谓重构

  • 两顶帽子,使用重构技术开发软件时,你把自己的时间分配给两种截然不同的行为:添加新功能、重构。添加新功能时,不应该修改既有代码,只管添加新功能。重构时不能添加新功能,只管改进程序结构。

2.2 为何重构

  • 消除重复代码,这个动作的重要性在于方便未来的修改。
  • Kent Beck,我不是个伟大的程序员,我只是个有着一些优秀习惯的好程序员。

2.3 何时重构

  • 用UML示意图展现设计,并CRC卡展示软件情节

2.4 怎么对经理说

2.5 重构的难题

  • 《数据库重构》

2.6 重构与设计

  • 预先设计

2.7 重构与性能

2.8 重构起源何处

第3章 代码的坏味道

3.1 Duplicated Code(重复的代码)

3.2 Long Method(过长函数)

3.3 Large Class(过大类)

3.4 Long Parameter List(过长参数列)

3.5 Divergent Change(发散式变化)

3.6 Shortgun Surgery(霰弹式修改)

3.7 Feature Envy(依恋情结)

3.8 Data Clumps(数据泥团)

3.9 Primitive Obsession(基本型别偏执)

3.10 Switch Statements(switch惊悚现身)

3.11 Parallel Inheritance Hierarchies(平行继承体系)

3.12 Lazy Class(冗赘类)

3.13 Speculative Generality(夸夸其谈未来性)

3.14 Temporary Field(令人迷惑的暂时值域)

3.15 Message Chai (过度耦合的消息链)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值