重构 改善既有代码的设计之第二章 重构的原则
2.1、何谓重构
1、重构有名词和动词两种解释,其都表达了一种意思:在不改变软件行为(方法行为)的前提下,对内部结构进行调整,目的都是为了提高其可理解性
2、提倡小步修改,凡是导致功能点不可用,甚至系统瘫痪,并非重构
3、重构和性能优化是两个完全不同的概念,前者仅仅是为了降低理解成本、后者为了提高程序运行速度
2.2、两顶帽子
添加新功能、重构,日常工作中时常为了更好的添加新功能,先进行一会重构工作
2.3、为何重构
1、改进软件的设计,经常性的重构有助于代码维持自己该有的形态。举个例子来说:消除重复代码,我就可以确定所有事物和行为在代码中只表述一次,这正是优秀设计的根本
2、使软件更容易理解,不只是计算机,更重要的是未来的维护者
3、帮助找到bug
4、提高编程速度,符合“设计耐久性假说”(通过保持内部设计的改善、长期保持开发速度)
2.4、何时重构
1、预备性重构
为了更好的添加新功能,先对当前代码结构做适当的调整,再对新功能做兼容
2、帮助理解的重构
结合各大重构手法对当前需要理解的代码进行重构
3、捡垃圾式重构
比当初到达营地时干净一点,每次只做一点点重构
4、有计划的重构和见机行事的重构
不建议抽出专门时间做重构,要把重构作为平时顺带的事情
5、长期重构
重构意识
6、review时重构
找同事过来看,提提建议啥的
7、何时不用重构
不需要理解其一段代码时,即使再ugly,也可以不用重构
总结
重构是一种很有价值的技术,绝大多数人并不在意,反正我身边的同事重构意识淡薄,在这里顺便吐槽下,我有个同事有一天说马丁重构这本书,有点垃圾,绝了,你比世界大师还牛皮