所谓重构(refactoring)是这样一个过程:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。重构是一种经千锤百炼形成的有条不紊的程序整理方法,可以最大限度地减少整理过程中引入错误的几率。这本书告诉你如何以一种可控制且高效率的方式进行重构,如何有条不紊地改进程序结构,而且不会引入错误。
重构第一个案例
如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目的,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。
第一步
构建完整的测试用例,保证重构之后的代码行为表现与之前无异。
Extract Method
修改变量命名
Move Method
Replace Temp with Query
Replace Conditional with Polymorphism 用多态取代条件表达式
Self Encapsulate Field 自封装字段(字段访问保护)
Replace Type Code with State/Strategy
用于改善基于类型码(Type Code)的条件逻辑,并通过引入状态模式(State Pattern)或策略模式(Strategy Pattern)来实现更清晰和可扩展的代码结构
重构原则
什么是重构
对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本
两顶帽子,当你使用重构技术进行开发时,把时间分配到两种不同的行为:添加新功能以及重构。添加新功能时,你不应该修改既有代码,只管添加新功能。
重构时你就不应该添加新功能而是只管改变程序结构。两顶帽子要随时切换,应该清除意识到你戴的是什么帽子。
为何重构
重构改进软件设计
重构使软件更容易理解
何时重构
事不过三,三则重构
代码的坏味道
Duplicated Code
Long Method(过长函数)
Large Class(过大的类)
Long Parameter List(过长参数列)
Divergent Change(发散式变化)
Shotgun Surgery(霰弹式修改)
Feature Envy(依恋情结)
重构列表
原文链接: https://alexhuihui.github.io/article/20230613.html
版权声明: 转载请注明出处.