• 读书笔记 Week6 2018-4-12


    Chap 24 重构 读书笔记

    一、需求的变更

    单纯就科目学习中的小项目来说,目标在一开始便被明确下来,即可定义一份严谨的列表来描述功能。故在原来的编程经历中,只要上交了程序便一切都没事儿了,也没有重构的发生。

    在结对项目中,也算是第一次进行了重构的体验。一开始仅仅编写了对于整数运算式的程序,在后续逐渐加入小数和分数时,便可以说进行了重构。但是实际上效果不佳,单纯的修改让整个函数的行数几乎增加了两倍,逻辑链相应也复杂了不少,也算是切实的感受到文中所说的,“掌握重构技巧的重要性”。显然,重构并不是单纯的重写。

    二、重构的技巧

    首先在数据级别的重构中,重要的一点是让数据尽可能的明确,无论是把变量命名为具体的功能,还是用函数替代表达式,都可以很好的做到这一点。

    还有一点较为在意。就是说用多个单一变量代替多用途变量,还特别提到了惯用的循环遍历I,j和交换变量temp,虽然可能会不习惯,但自己以后的编程过程中,确实是可以参照这个原则。例如,用“loop_xxxxx”和“temp xxxx and xxxx”来命名,增加可读性。

    语句级的重构中,有一点觉得很好,“在嵌套的 if-then-else语句中一旦知道答案就立即返回,而不是去赋一个返回值” 个人也算是有体会,多种嵌套下,指不定就会在满足一个条件以后,又满足了后面不知道哪个不期望的条件,然后把所希望的值给替代掉。例如:在个人任务中,有如下逻辑

    “是否是字符 是否是字母 是否是数字 如果都不是,就是分隔符,判断是否已经构成了一个单词”

    改结构便把判断这个重要功能放到了 if 嵌套的最里层,最后也确实是在这里出了问题(可见个人任务总结)。

    三、何时重构

    这里提到的有一点个人深以为然,即“不要把重构当先写后改的代名词”。简单来说就是不要滥用重构,至少你所重构的对象,是一个已经能够运行用的代码,而不是把为了让无法运行的代码能够运行叫做重构

  • 相关阅读:
    多个表单项的动态校验
    js遍历循坏二维数组,显示天气情况
    纯css3 实现的焦点图
    实现元素水平和垂直居中的问题
    简易商品购物车
    用jquery的animate动画做成的左侧菜单伸缩
    MongoDB聚合
    NoSQL介绍
    MongoDB索引
    数据库索引简介
  • 原文地址:https://www.cnblogs.com/aiyz/p/8807303.html
Copyright © 2020-2023  润新知