重读《重构 2》- 提炼变量
6.3 提炼变量(Extract Variable)
曾用名:引入解释性变量(Introduce Explaining Variable) 从曾用名就可以看出,这个方法主要是用来改善代码表达能力的。
其实这条提炼变量和提炼函数是同构的,具有一致性;
说白了,可以合并到一起,叫做:提炼 Extract
提炼是策略,可以考虑的维度有:复杂度,引用数;
可以组合成如下方法:
复杂度低 + 一个调用:提炼表达式;
复杂度低 + 多个调用:提炼内联函数;
复杂度高 + 一个调用:提炼私有函数;
复杂度高 + 多个调用:提炼公有函数。
6.4 内联变量(Inline Variable)
这个很鸡肋,同样是属于提炼策略里的。
至此,我们归纳出第一个策略:提炼 Extract
下面说下这个策略存在的理由:
代码的首要价值是完成功能,但代码的输出由程序员个人的编程思维所决定,所以某功能的实现代码由某人脑中的编程思维所决定,确切地说是首次输出/第一个版本。
所以下面的 2 个前提条件决定了代码需要有第二个版本:
1、某人掌握的编程模型不能保证是最优的;
2、代码的第二个价值:可维护性
这时,优化已有代码时,要应用的第一个策略就是:提炼。
提炼是让代码可维护性/可读性达到最优状态的方法之一;
其驱动力是:阅读代码时对理解难度的抗拒;
就像草坪上的小路,是人对走绕弯路的抗拒。
重构是为了提高代码质量,所以提炼也是为了改善代码质量。
但如果对软件质量负责的不是自己的话,就容易忽略质量。
上面是从软件的角度进行的分析;
下面从程序员角度分析,这涉及到社会学,人都有被认可的需求,程序员的社会关系简单,工作关系占了主要成分,所以程序员写的代码被认可,对其个人来说是比较重要的。
代码被认可,就不能出质量问题,所以就需要常提炼。
版权声明: 本文为 InfoQ 作者【顿晓】的原创文章。
原文链接:【http://xie.infoq.cn/article/0bc90a5da210c7f4a9fa81eff】。文章转载请联系作者。
评论