笔记:重构

重构封面

http://book.douban.com/subject/4262627/

 

这本书主要介绍了需要重构的情况、出现这些情况可以用到的方法以及,动手重构之前需要有单元测试。 

 

需要重构的情况:

DuplicatedCode(重复代码)
LongMethod(过长函数)
LargeClass(过大的类)
LongParameterList(过长参数列)
DivergentChange(发散式变化)
ShotgunSurgery(霰弹式修改)
FeatureEnvy(依恋情结)
DataClumps(数据泥团)
PrimitiveObsession(基本类型偏执)
SwitchStatements(switch惊悚现身)
ParallelInheritanceHierarchies(平行继承体系)
LazyClass(冗赘类)
SpeculativeGenerality(夸夸其谈未来性)
TemporaryField(令人迷惑的暂时字段)
MessageChains(过度耦合的消息链)
MiddleMan(中间人)
InappropriateIntimacy(狎昵关系)
AlternativeClasseswithDifferentInterfaces(异曲同工的类)
IncompleteLibraryClass(不完美的库类)
DataClass(纯稚的数据类)
RefusedBequest(被拒绝的遗赠)
Comments(过多的注释)

 

 

要点:

  1. 如果在原来的代码基础上添加新特性有困难,那么先重构再添加新特性。
  2. 重构前必须有单元测试。
  3. 任何一个傻瓜程序员都可以写计算机可以理解的代码。 写出人类可以理解的代码才是优秀的程序员。
  4. 事不过三,三则重构。
  5. 如果觉得需要注释,先尝试重构。
  6. 如果有 bug, 先写一个单元测试来暴露这个 bug.
  7. 考虑边界条件。
  8. 别忘了检查在该出问题的地方是否抛出了异常。
posted @ 2014-01-03 16:58  yyzhang  阅读(264)  评论(0编辑  收藏  举报
无觅关联推荐,快速提升流量