扯诞🤪 zgw106813
关注数: 28 粉丝数: 16 发帖数: 440 关注贴吧数: 12
重构-改善既有代码的设计 第八章 阅读第八章的感受:主要讲解通过重构手法可以帮助开发者改进代码的内部结构,同时不改变其外部行为 1、搬移函数:将一个函数从一个类或模块移动到另一个更合适的类或模块中,将功能组合相似的函数聚集到一起;2、搬移字段:搬移字段是将一个字段从一个类移动到另一个更合适的类中。当一个字段在另一个类中更频繁地被使用时,进行这种重构可以减少耦合,提高数据的封装性; 3、搬移语句到函数:将一组相关的语句提取到一个独立的函数中,可以提高代码的可读性和复用性。这种重构有助于简化复杂的函数,使代码更易于理解和维护; 4、以函数调用取代内联代码:将重复的内联代码替换为函数调用,可以减少代码的冗余,提高代码的复用性和可维护性。这种重构有助于集中和统一处理逻辑,减少错误的可能性; 5、移动语句:通过调整语句的顺序,使代码逻辑更加连贯和清晰。这种重构有助于减少变量的作用范围,提高代码的可读性; 6、拆分循环:将一个复杂的循环拆分成多个简单的循环,每个循环只处理一种逻辑。这样可以提高代码的清晰度和可维护性,降低出现复杂错误的可能性; 7、移除死代码:移除不再使用的代码可以减少代码库的复杂性,提高代码的清晰度和可维护性;
重构-改善既有代码的设计 第七章 阅读第七章的感受: 主要讲解重构过程中的封装, 封装的意义,在于提炼相同的代码逻辑,借以复用: 1、封装记录:通俗说法就是,将变量对象或需要处理的数据,或不想改变原有值的对象数据,将其封装在一个类中,暴露各种获取方法,产生逻辑所需要的各种数据! 多用于数据转化、深拷贝、格式化数据等等...(注:同时缺点也明显,在复制巨大数据结构时,性能消耗大,按需使用) 2、封装集合:封装记录后返回只读数据/副本数据,即深拷贝后的新数据,避免外部操作,引发数据源的变动;基于以上操作,你需要在类中添加新增/修改/移除函数,用于修改函数数值,避免在外部操作数据! 3、以查询代替临时变量:某些只需要使用一次的计算,且不再改变的变量,可以直接忽略声明,直接在逻辑中以函数代替 4、提炼类:当一个类中函数过于庞大,过于多时,或让这个类难以被人理解,可以考虑将部分功能拆分为更为具体的类,活着提炼一部分超类出来! 5、内联类:当一个类中的函数逐渐被优化、被废弃、被提炼,最终只剩下为数不多的细小的功能,可以考虑将类废弃,并将函数直接放到具体的代码逻辑中 6、替换算法:将一些复杂的算法,拆分为多了小的算法,最后组合长想要的数据,算法也是需要根据时代去变化的
重构-改善既有代码的设计-第六章 阅读第六章的感受: 主要讲解重构过程中函数的重构方法: 1、提炼函数:一些过长的函数或需要注释才能使人理解的函数;将函数细粒度的切分为多个独立函数,函数被复用的机会越大,对函数的覆写也更容易 2、内联函数:有些小函数,他的代码读起来和函数名一样清晰易读,这个时候可以不作为独立函数;有一堆组织不合理的小函数,可以将其组成一个大函数,然后重新拆分为组织合理的小函数 3、临时变量:临时变量往往是用来替换某个查询值。临时变量的存在往往会影响重构;唯一需要使用临时变量的情况是临时变量被赋予一个函数返回值,这种基本没有什么危害; 可以以查询代替临变量:将临时变量赋值提炼为一个有返回值的函数;临时变量是暂时的,且只能在所属函数内使用。导致所在函数变长。把临时变量替换为查询,使得同一个类中所有函数都可以使用。在提炼函数之前往往需要这么做。 一个临时变量被多次赋值:说明它被不同的对象逻辑所需要,这个时候应该拆成多个临时变量分别承载不同对象逻辑的功能赋值 4、函数声明注释:优化调整函数的声明包括函数作者、时间、功能描述等等,便于其他研发更好的理解函数的逻辑内容 5、封装变量:将变量封装成函数的形式进行访问,便于控制变量不会被外部随意修改,同时也能提升代码的可读性和可维护性
重构-改善既有代码的设计 第一章 阅读第一章的感受: 作者通过第一章主要为了告诉我们,什么是重构?为什么要重构?作者通过一个示例给我们讲解了重构的大致过程;当需求发生了变化或者是整个代码看起来很难让人理解的时候,就需要进行重构;重构是为了让代码看起来更加的容易理解,提升代码的可维护性可扩展性; 重构的过程: 1、需求变化 当需求发生了变更的时候,那么重构就是必须要做的事情;当一段代码它能正常的运行,并且也不会再去调整它的话,那么是不需要重构的,哪怕这段代码没人能看得懂,没人能理解,也不会影响什么;但如果有人需要去修改它,那么就必须要去理解它的工作原理,如果理解起来很费劲,且程序不易扩展,那么就需要对它进行重构。 2、测试 必须保证全面的测试 3、小范围的修改 建议小范围一点一点的修改,不管修改的简单还是复杂,修改完成后必须测试,保障修改的代码没有问题;不建议一次改动过大,当我们需要进行重构的时候说代码已经很混乱或者很难让人理解,如果大范围的修改,可能造成的问题就是陷入各种bug调试,费时费力 4、性能问题 重构过程中可能重构后代码变得容易理解,且可扩展性较好,但是性能下降了,这个时候一般是先重构完成,再进行性能的优化 5、代码的命名 代码中好的变量命名、函数命名能容易让人理解,维护起来比较方便
1 下一页