第一章 重构
所谓重构是这样一个过程:
在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构
重构前: 先检查即将修改的代码是否有一组可靠的测试机制,避免引入bug,尽管遵循重构手法,但是人毕竟是人,毕竟可能犯错。
重构技术就是以小步的方式修改程序,如果犯下错误,也很容易发现它。
任何一个傻瓜都能写出计算机可以理解的代码,唯有写出人类容易理解的代码,才是优秀的程序员。
第二章 重构原则
重构提供了一种高效且受控的代码整理技术。
重构的目的:使得软件更容易被理解和修改。
kent beck: 我不是个伟大的程序员,我只是个有着一些优秀习惯的好程序员。
为何重构?
- 改进软件设计 : 消除重复,修改容易;保持代码既有的设计。
- 使软件更容易被理解:然代码精确的表达出它干的事;早期重构帮助理解
- 重构帮助找到bug
何时重构?
- 理解代码时,试着想想难呢过不能冲过它
- 代码的设计无法帮助我轻松添加我所需要的功能
- 修补错误时,有bug,却不能一眼看出来
- 复审代码时
- code review 的好处:
- 改善开发状况
- 在开发团队中传播知识:
- 新知识的传播
- 有经验的开发者把知识传播给欠缺经验的人
- 让更多的人有机会提出有用的意见,编写清晰的代码
- code review 的好处:
- 结对编程时
为什么要重构?
程序有两面价值:“今天可以为难你做什么?” 和“明天可以为你做什么?”
- 难以阅读的程序,难以修改
- 逻辑重复的程序,难以修改
- 添加新行为时需要修改已有代码的程序,难以修改
- 带复杂条件逻辑的程序,难以修改
第三章
- 消除重复代码
- 避免过长参数
- 采用对象封装参数列表
- 避免过大的类
- 避免 散弹式修改
- 将数据和对数据的操作行为包装在一起(依恋情节)
- 总是在多个类或者方法中同时出现的几个字段(参数),可以将它们提炼到一个独立的对象中
- 避免异曲同工的类,对其重命名,或者抽方法到类中
- 代码即注释,如果需要注释的,就应该先尝试重构,试着让所有的注释变得多余
未完待续。。。。!