重构

 

重构这个词在不久前第一次走进我的生活

 

以前也听说过重构,只是听听并没有深刻的认识

 

这是项目需要,老大说你把这一块明天给重构好,然后让我检查

 

没有了解过也不知道什么是重构,就开始干了怎么干

 

按自己的理解就是

 

  1. 把重复的代码给提到一个方法里面去
  2. 检查变量名称是否符合规范
  3. 检查方法参数是否太多
  4. 检查逻辑顺序是否合适
  5. 是否有直接使用字符串的给提成常量
  6. 一个类的内部是否承载了过多的职责
  7. 方法,属性,变量的修饰符是否合适
  8. 是否会有数据库N+1的问题
  9. 是否会出现数据多的时候,内存会不会死掉
  10. 下次别人看到这块代码的时候能不能很快的就理解什么意思
  11. 排版是否美观

 

后来自己认为重构完的代码没有问题了,老大一检查总能发现一些小细节的问题

 

结果就是反复修改,最后老大推荐了一本书给我,告诉我好好看看

 

《重构,改善既有代码的设计》

 

慢慢的我才理解,为什么要有重构,那么也就得先知道什么是重构

 

原来我的理解都是具体的怎么干

 

却并不知道为什么要重构,什么时候重构,重构成什么样才是合适的

 

重构有什么样的好处,有什么样的坏处

 

看完这本书,才理解的更全面一点,首先为什么要有重构

 

这本书名,已经很明确的告诉我们了,改善既有代码的设计

 

 

一定是改善么,会不会有的重构完之后,还没有之前好使的?

 

代码设计改了,会不会影响原来的性能?

 

重构完之后,代码是不是确实比原来好维护了?

 

带着重重的疑问,我开始边重构,边阅读这本书

 

重构第一层意思:

 

对软件内部结构的一种调整,目的在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本

 

重构第二层意思:

 

使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构

 

重构

  1. 可以使软件更容易被理解
  2. 帮助找到bug
  3. 提高编程速度

 

何时开始重构

1.  三次法则

第一次做某件事的时候,尽管去做

第二次做类似事的时候会产生反感

第三次再做类似的事的时候,就应该重构

2.添加新功能时

   原来代码的设计无法帮助我轻松添加我所需要的功能

3.修补错误时重构

4.复审代码时重构

 

可以重构的信号

  1. 重复的代码
  2. 过长的函数
  3. 过大的类
  4. 过长的参数列表
  5. 发散式的变化
  6. 霰弹式修改
  7. 令人迷惑的暂时字段
  8. 过度耦合的消息链
  9. 中间人
  10. 过多的注释

 

posted on 2017-12-01 08:10  行周  阅读(212)  评论(0编辑  收藏  举报

导航