• 重构:改善既有代码的设计有感3


    书的第六章讲到重新组织函数有以下这么几个点

    1 . Extract Method 提炼函数
    将一段代码放进一个独立函数中,并让函数名称解释该函数的用途。
    增加可读性,函数粒度小更容易被复用和覆写。

    2 . Inline Method(内联函数)
    在函数调用点插入函数本体,然后移除该函数。
    函数的本体与名称同样清楚易懂,间接层太多反而不易理解。

    3 . Inline Temp(内联临时变量)
    将所有对该变量的引用动作,替换为对它赋值的那个表达式自身。

    4 . Replace Temp with Query(以查询取代临时变量)
    将一个表达式提炼到一个独立函数中,并将临时变量的引用点替换为对函数的调用。
    临时变量扩展为查询函数,就可以将使用范围扩展到整个类。
    减少临时变量,使函数更短更易维护。

    5 . Introduce Explaining Variable(引入解释性变量)
    将该复杂表达式的结果放进一个临时变量,以变量名来解释其用途。

    6 . Split Temporary Variable(分解临时变量)
    针对每次赋值,创造一个独立、对应的临时变量。
    临时变量会被多次赋值,容易产生理解歧义。
    如果变量被多次赋值(除了“循环变量”和“结果收集变量”),说明承担了多个职责,应该分解。

    7 . Remove Assignments to Parameters(移除对参数的赋值)
    以一个临时变量取代该参数的位置。
    对参数赋值容易降低代码的清晰度;
    容易混淆按值传递和按引用传递的方式 ;

    8 . Replace Method with Method object 函数对象取代函数
    一个大型函数如果包含了很多临时变量,用Extract Method很难拆解,
    可以把函数放到一个新创建的类中,把临时变量变成类的实体变量,再用Extract Method拆解。

    9 . Substitute Algorithm 替换算法
    复杂的算法会增加维护的成本,替换成较简单的算法实现,往往能明显提高代码的可读性和可维护性。

    作者提出这几个点来告诉我们怎样更好更健康的来书写我们的代码,是一本适合有代码开发经历的程序员阅读,会有醍醐灌顶的感觉,同时也需要比较高的技术力,至少以我目前的水平我很多东西做不到,甚至理解不了,这本书,会让程序员对代码有敬畏之心要谨慎考虑开发代码,需要考虑的东西很多,而我们需要注意的去意识到问题,修改问题,提高开发水平。




  • 相关阅读:
    Parameter Binding in ASP.NET Web API
    Which HTTP methods match up to which CRUD methods?
    ErrorHandling in asp.net web api
    HttpStatusCode
    Autofac Getting Started(默认的构造函数注入)
    Autofac Controlling Scope and Lifetime
    luvit 被忽视的lua 高性能框架(仿nodejs)
    undefined与null的区别
    VsCode中使用Emmet神器快速编写HTML代码
    字符串匹配---KMP算法
  • 原文地址:https://www.cnblogs.com/buyaoya-pingdao/p/14953262.html
Copyright © 2020-2023  润新知