类似推荐
编辑推荐
计算机专家Michael C. Feathers的经典之作。
内容简介
本书内容包括,理解修改软件的机制:添加特性、修正缺陷、改进设计、优化性能把遗留代码放到测试用具之中编写测试,防止引入新的问题包含Java、C++、C和C#的示例。其中介绍的大多数技术适用于其他任何语言或平台,精确地确定要在哪些地方修改代码,处理非面向对象的遗留代码,处理看起来没有任何结构的应用程序。
作者简介
作者Michael C. Feathers,软件开发大师,就职于Object Mentor公司。他是ACM和IEEE成员,也是CppUnit和FitCpp的最初作者,曾3次担任OOPSLA会议的CodeFest主席。目前他在世界范围内提供测试驱动开发、重构、面向对象设计、Java、C#、C++以及极限编程方面的培训和指导。
章节目录
版权信息
译者序
序
前言
第一部分 修改机制
第1章 修改软件
1.1 修改软件的四大原因
1.2 组合在一起
第2章 利用反馈
2.1 什么是单元测试
2.2 高层次测试
2.3 测试覆盖
2.4 遗留代码修改方法
2.5 本书其他部分
第3章 感知和分离
3.1 伪协作程序
第4章 接缝模型
4.1 大片的文本
4.2 接缝
4.3 接缝类型
第5章 工具
5.1 自动化重构工具
5.2 模拟对象
5.3 单元测试用具
5.4 一般测试用具
第二部分 修改软件
第6章 时间很紧张,但还需要修改
6.1 新生方法(Sprout Method)
6.2 新生类(Sprout Class)
6.3 包装方法
6.4 包装类
6.5 小结
第7章 永远都无法完成的修改
7.1 理解
7.2 延迟时间
7.3 打破依赖关系
7.4 构建依赖关系
7.5 小结
第8章 如何添加新特性
8.1 测试驱动开发
8.2 根据差异编程
8.3 小结
第9章 无法把类放到测试用具中
9.1 恼人的参数
9.2 具有隐藏依赖的情况
9.3 构造Blob的情况
9.4 恼人的全局依赖
9.5 可怕的Include依赖
9.6 洋葱皮参数
9.7 别名参数
第10章 无法在测试用具中运行方法
10.1 隐藏方法的情况
10.2 “有帮助的”语言特性
10.3 检测不到的副作用
第11章 我需要修改代码,应该测试哪些方法
11.1 推断影响
11.2 正向推理
11.3 影响传播
11.4 推理影响的工具
11.5 从影响分析中学习
11.6 简化影响草图
第12章 我需要在一个地方做多处变更,需要为所有涉及的类打破依赖关系吗
12.1 拦截点
12.2 使用夹点来判断设计
12.3 夹点陷阱
第13章 我需要修改代码,但不知道要编写哪些测试
13.1 鉴定测试
13.2 鉴定类
13.3 定向测试(Targeted Testing)
13.4 编写鉴定测试的启示
第14章 对库的依赖让我快要崩溃了
第15章 应用全是API调用
第16章 对代码理解不够,所以无法修改
16.1 做笔记,画草图
16.2 列表标记
16.3 临时重构
16.4 删除没有用的代码
第17章 应用没有结构
17.1 讲述系统的故事
17.2 裸CRC
17.3 对话审查(Conversation Scrutiny)
第18章 测试代码挡路了
18.1 类命名规范
18.2 测试位置
第19章 项目并非面向对象,如何才能够安全地修改
19.1 简单的案例
19.2 困难的案例
19.3 增加新行为
19.4 充分利用面向对象
19.5 完全面向对象
第20章 类太大了,我不想让它继续膨胀
20.1 查看职责
20.2 其他技术
20.3 继续前进
20.4 提取类之后
第21章 在各个地方修改的都是同样的代码
第22章 我需要修改一个巨兽方法,但无法为其编写测试
22.1 巨兽的种类
22.2 使用自动重构支持来对付巨兽
22.3 手动重构挑战
22.4 策略
第23章 如何知道没有造成任何破坏
23.1 超感编辑(Hyperaware Editing)
23.2 单一目标编辑
23.3 保留签名
23.4 依赖于编译器
23.5 结对编程
第24章 我要崩溃了,它不会再有任何改进
第三部分 打破依赖的技术
第25章 打破依赖的技术
25.1 调整参数
25.2 分解方法对象
25.3 完善定义
25.4 封装全局引用
25.5 暴露静态方法
25.6 提取并重写调用
25.7 提取并重写工厂方法
25.8 提取并重写getter方法
25.9 提取实现器
25.10 提取接口
25.11 引入实例委托器
25.12 引入静态设置器
25.13 链接替换
23.14 参数化构造函数
25.15 参数化方法
25.16 原始化参数(Primitivize Parameter)
25.17 上推特性
25.18 下推依赖
25.19 使用函数指针替换函数
25.20 使用getter方法替换全局引用
25.21 创建子类并重写方法
25.22 替代实例变量
25.23 模板重定义
25.24 文本重定义
附录 重构
术语表
修改代码的艺术是2014年由机械工业出版社出版,作者(美)MichaelC.Feathers。
得书感谢您对《修改代码的艺术》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。