Fork me on GitHub
秋染蒹葭

重构与改善之一:阅读笔记

重构应该变得像空气和水一样普通,在不改变软件可观察行为的前提下改变其内部结构。

软件自有其美感所在,软件工程希望建立完美的需求和设计;

如果你编写的是一个永远不需要修改的程序,那么剪剪贴贴还好,但是如果程序要保存很长时间,而且还可能需要修改,那么复制粘贴行为就会造成潜在的威胁
永远不要依靠复制粘贴解决问题,那样只会让你的代码越来越不可控,这是真的教训

如果你发现自己需要微程序添加一个特性,而代码结构使你无法很方便地达成目的,那就先重构那个程序,使得添加特性更加容易进行,然后再添加特性

进行重构的时候 需要依赖测试,让它告诉我们是否引入了bug;好的测试是重构的根本,花时间建立一个优良的测试机制是完成值得的,因为当你测试程序时,好的测试会给你必要的安全保障。测试机制在重构的领域时很重要的;

重构前先检查自己是否有一套可靠的测试机制,这些测试必须有自我检验能力

代码块越小,代码的功能就愈容易管理,代码的处理和移动就更轻松

  1. 找到代码的逻辑泥团,任何不会被修改的变量都可以被当成参数传入,若一个变量会被修改,就可以把它当成返回值

重构就是以微小的步伐修改程序,如果你犯下错误,很容易便可以发现它

更改变量名称是值得的行为吗?绝对是,好的代码应该清楚表达哦资的功能,变量名称是关键。如果为了提高代码的清晰度,需要修改某些东西的名字,那就大胆去做吧

任何一个傻瓜都能写出计算机可以理解的代码,唯有写出人类容易理解的代码才是优秀的程序员。

代码应该表现自己的目的

函数应该放在他所使用的数据的所属对象内

应该尽量除去这一类的临时变量,临时变量往往会引发问题,他们会导致大量参数被传来传去,你很容易跟丢他们,长长的函数更容易如此,当然这样做也付出了性能的代价,因为有些时候会被重复计算一些值,但是这种情况很容易被优化的

去除临时变量,他们只在自己的函数中有效,所以他们会助长冗长而复杂的函数。

除非我进行评测,否则我无法确定循环的执行时间,也无法知道这个循环是否精彩使用以至于影响系统的整体性能,重构时你不必担心这些,优化时的你才应该担心这些,但是那个时候你已经处于一个比较有利的地位,有更多的选择可以完成有效优化。

最好不要在另一个对象的属性基础上运用switch语句,如果不得不使用,那应该在对象自己的数据上使用,而不是在别人的数据上使用

一部影片可以在生命周期内修改自己的分类,一个对象却不能在生命周期内修改自己所属的类,不过这里有个解决办法:state模式【Gang Of Four】,加入一个price层进行子类化操作

所有重构的行为都是使得程序的责任分配更加合理,代码的维护更轻松,风格更迥异于过程化的风格,但是若你习惯了重构后的风格,你将很难再满足于结构化的风格了。

重构的节奏:测试、小修改、测试、小修改…,这种节奏让重构得以快速安全地进行

参考资料

本文标题:重构与改善之一:阅读笔记

文章作者:zhyjor

发布时间:2020年05月01日 - 20:05

最后更新:2023年10月11日 - 02:10

原始链接:https://zhyjor.github.io/2020/05/01/重构与改善之一:阅读笔记/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

🐶 您的支持将鼓励我继续创作 🐶

热评文章