代码坏味道(二)
1、可变数据
数据更新导致,而另外一处期待不同的值
对应的重构手法:封装变量、拆分变量、移动语句、提炼函数、将查询函数和修改函数分离、移除设值函数、查询取代派生变量、函数组合成类、函数组合成变换、引用对象改为值对象
欠理解
2、发散式变化
每次只关心一个上下文(一旦产生修改,跳到系统某个点,只在该处做修改 )
对应的重构手法:拆分阶段、搬移函数、提炼函数、提炼类
3、霰弹式修改
类似于发散式变化,但是又恰恰相反(没明白书里这话是什么意思)
对应重构手法:搬移函数、搬移字段、函数组合成类、函数组合成变换、拆分阶段、内联函数、内联类
4、依恋情结
最大化区域内部交互、最小化跨区域交互,也可以理解为跨模块交互
对应重构手法:搬移函数、提炼函数
5、数据泥团
很多地方看到相同的三四项数据:两个类中相同的字段、许多函数签名中相同的参数,这些总是绑定在一起出现的数据应该拥有属于他们自己的对象
对应重构手法:提炼类·、引入参数对象、保持对象完整
只有永不遏止的奋斗,才能使青春之花,即便是凋谢,也是壮丽地凋谢