重读《重构 2》- 函数组合成变换
6.9 函数组合成类(Combine Functions into Class)
这对减少大类很有用。
如果没有经过重构训练,修改类会本能地先就地修改;
重构没有排斥就地修改,反而推荐就地修改,以减低难度(直到能力到达非就地修改);
但如果没有重构习惯,每次都就地修改,就会导致类复杂,形成大类。
6.10 函数组合成变换(Combine Functions into Transform)
这对减少复杂逻辑很有用。
业务逻辑如果没有经过完整的设计,会导致实现时不断的打补丁,直到完成功能;
这样也是可以接受的,尤其是在需求分析阶段,可以把逻辑用代码实现出来,以寻求发现其中核心的部分;
重点在于能让 top level 的逻辑保持最简单,即没有非必要的临时变量,也没有 howto 的实现细节。
“重构的作用就是应对变化。”
功能完成后的代码,只实现了一次价值;
但软件不是硬件,需要应对变化,持续提供价值。
所以,重构策略一:提炼,首先要做的就是提炼本次修改会导致的变化。
在敏捷时代,版本迭代都很快,原先只以功能列表来定版本的做法,已经不足以维持由此导致的质量恶化。所以在迭代开始前的设计中,必须考虑对已有代码造成的破坏;在修改代码时,及时重构,保证提交代码不会导致软件质量降低。
版本迭代中,除了包含设计、编码、测试,还可包含重构、消除不可维护的遗留代码。
版权声明: 本文为 InfoQ 作者【顿晓】的原创文章。
原文链接:【http://xie.infoq.cn/article/c5292fa3bf594d9fe288dd826】。文章转载请联系作者。
评论