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

  看重构:改善既有代码的设计,表达一些想法。

 何谓重构?重构是对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低修改成本。重构是用微小的步伐修改程序,在这个过程中也能够很容易的发现程序中的错误。重构的时机可以是添加功能时,也可以是修补错误时,还可以是复审代码时。重构的目标是让代码容易阅读、所有逻辑都在唯一地点指定、新的改动不会危及现有行为、尽可能简单的表达逻辑。好多时候我们考察一个程序员,都是看他懂多少东西,知道多少概念,做过什么项目,但其实一个程序员最关键的素质是要写出好的代码。好的代码不是一天炼成,往往都要经过大量重构迭代之后才能成型,这本书就是讲怎么去重构代码的。

重构第一章给出一些说法,是一些开发需要遵守的规范,更改变量名是绝对值得的行为,好的代码应该清楚表达出自己的功能,变量名是代码清晰的关键。任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员 。
绝大多数情况下,函数应该放在它所使用的数据的所属对象内。
重构的前提是需要有测试工具和测试用例,每次重构一小部分代码就进行测试,保证在不改变代码行为的前提下重构。
不要对另一个对象的属性用switch,如果要用switch,也应该在自己的属性上用,这样可以解耦,别的对象的修改也影响不到你。
影片可能会根据不同的类型有不同的收费规则,所以影片可以根据类型有不同的子类,但是有个问题,影片如果换了类型,但是class是不能换的,所以可以考虑影片没有子类,但是影片包含一个Price的类,这个类可以根据不同类型有不同子类。Movie有一个Price类的引用,不同的类型对应不同的Price子类,调用Price类的方法来计算收费。
关于添加新功能和重构。首先尝试添加新功能,然后意识到如果把程序结构改一下,添加新功能会方便很多,于是你换顶帽子,做一会重构。然后把帽子换回来,继续添加新功能,如此循环往复。

他关于重构的说法很有意思,在我写了一些代码之后,我觉的这些说法很有共鸣。会在开发时注意到这样的问题。

原文地址:https://www.cnblogs.com/buyaoya-pingdao/p/14752724.html