美文网首页程序员读书
函数相关的重构方法

函数相关的重构方法

作者: 千里山南 | 来源:发表于2016-07-24 13:10 被阅读49次

    构筑测试体系

    • 可靠的测试环境是重构的前提,因为debug在我们的开发中占据了大多数时间。
    • 自动化测试对于增量开发非常有利
    • 重构的基本技巧是小步前进、频繁测试

    重新组织函数

    • ExtractMethod
      主要需要考虑函数名字和函数体之间的语义距离。另外,更小的函数更容易被复用。
    • InlineMethod
      如果某些函数其内部的代码和函数名称同样清晰易读,就可以考虑将此函数内联。
      另外,重构一个比较散乱的函数的时候,我们也可先将函数调用的其他函数全部内联,而后进行重构。
      如果遇到某个函数内联比较麻烦,可能需要考虑是否有必要内联
    • Inline Temp
      如果临时变量只被某简单表达式赋值一次,考虑内联
    • Replace Temp With Query
      临时变量有可能会使得我们写的函数更长(这样才能访问到需要的临时变量),会增大复杂度,尽可能减少使用临时变量。(注,不可否认,对于会被多次使用的变量,使用临时变量效率更高。而且减少了函数数目)
    • Intruduce Explaining Variable
      如果我们有一个比较复杂的表达式(特别是条件表达式),此时我们可以考虑使用临时变量来接收此表达式,并用该变量的名字来解释此表达式的用途。(作者更喜欢提取为函数)
    • Split Temporary Variable
      如果有临时变量被赋值超过一次,它既不循环也不搜集计算结果,那么我们针对每一次计算结果都创建一个独立的临时变量。(看到很多代码为了所谓的优化反其道而为之)
    • Remove Assignments to Parameters
      对参数重新赋值容易引起混乱,代码不清晰(类似上一条)
    • Replace Method with Method Object
      如果某函数内部局部变量比较多,很难重构成多个小函数,可以试着尝试使用函数对象。
    • Subsitute Algorithm(替换算法)
      “重构可以把一些复杂东西分解为较简单的小块”,对于某些算法可以考虑是否有更精简的算法。在替换算法之前我们往往需要先分解算法,因为替换一个巨大而复杂的算法是非常困难的。替换的过程中要注意做好测试,保证算法的一致性。

    总结

    本章主要介绍一些常见的重构手法,其原则是化繁为简,将复杂的类、算法、函数进行拆分,尽可能的复用逻辑,尽可能的写出清晰易读的代码。

    相关文章

      网友评论

        本文标题:函数相关的重构方法

        本文链接:https://www.haomeiwen.com/subject/qsawjttx.html