科技
类型
6.7
豆瓣评分
可以朗读
语音朗读
292千字
字数
2014-06-01
发行日期
展开全部
主编推荐语
计算机专家Michael C. Feathers的经典之作。
内容简介
本书内容包括,理解修改软件的机制:添加特性、修正缺陷、改进设计、优化性能把遗留代码放到测试用具之中编写测试,防止引入新的问题包含Java、C++、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 文本重定义
- 附录 重构
- 术语表
展开全部
出版方
机械工业出版社
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。