万本电子书0元读

万本电子书0元读

顶部广告

修改代码的艺术电子书

  ***计算机专家Michael C. Feathers的经典之作,软件发大师Robert C. Martin作序倾情推荐,修改遗留代码的权威指南   深剖析修改遗留代码的各种方法和策略,从理解遗留代码、为其编码测试、重构及增加特性等方面给出大量实用建议,是所有程序发人员之作 

售       价:¥

纸质售价:¥59.20购买纸书

0人正在读 | 0人评论 6.4

作       者:(美)Michael C· Feathers

出  版  社:机械工业出版社

出版时间:2014-06-05

字       数:20.0万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
理解修改软件的机制:添加特性、修正缺陷、改设计、优化性能 把遗留代码放到测试用具之中 编写测试,防止引新的问题 包含Java、C++、C和C#的示例,其中介绍的大多数技术适用于其他任何语言或平台 精确地确定要在哪些地方修改代码 处理非面向对象的遗留代码 处理看起来没有任何结构的应用程序<br/>【推荐语】<br/>***计算机专家Michael C. Feathers的经典之作,软件发大师Robert C. Martin作序倾情推荐,修改遗留代码的权威指南 深剖析修改遗留代码的各种方法和策略,从理解遗留代码、为其编码测试、重构及增加特性等方面给出大量实用建议,是所有程序发人员之作<br/>【作者】<br/>Michael C. Feathers *软件发大师,就职于Object Mentor公司(这是一家*的提供软件领域的指导、技能发、知识传播和领导力服务的公司)。他是ACM和IEEE成员,也是CppUnit(从JUnit移植到C++上的单元测试框架)和FitCpp(FIT集成测试框架在C++上的实现)的初作者,曾3次担任OOPSLA会议的CodeFest主席。目前他在世界范围内提供测试驱动发、重构、面向对象设计、Java、C#、C++以及极限编程方面的培训和指导。 译者简介 侯伯薇 中荷人寿保险有限公司高级系统分析师,InfoQ中文站翻译团队主编,拥有十多年发经验,目前致力于技术与业务的融合,让发出来的程序能够真正提高业务人员的工作效率。热衷于通过翻译和演讲的方式与广大程序员分享和交流,曾翻译过多本技术书籍和几百篇技术短文,并在Scrumgathering、QClub、敏捷之旅等活动上做过技术演讲。<br/>
目录展开

译者序

前言

如何使用本书

致谢

第一部分修改机制

第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 文本重定义

附录重构

术语表

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部