修改代码的艺术

修改代码的艺术

(美) 费瑟 (Feathers,M.C.) , 著

出版社:人民邮电出版社

年代:2007

定价:49.0

书籍简介:

修改代码是每一位软件开发人员不可或缺的日常工作。开发人员常常面对的现实是,即便是最训练有素的开发团队也会写出混乱的代码,而且系统的腐化程度也会日积月累。本书针对大型的、无测试的遗留代码基,提供了从头到尾的方案,让你能够更有效地应付它们,将你的遗留代码基改善得更高性能、更多功能、更好的可靠性和可控性。本书还包括了一组共24项解依赖技术,它们能帮助你单独对付代码中的问题片段,并实现更安全的修改。

书籍目录:

第一部分修改机理

第1章修改软件

1.1修改软件的四个起因

1.1.1添加特性和修正bug

1.1.2改善设计

1.1.3优化

1.1.4综合起来

1.2危险的修改

第2章带着反馈工作

2.1什么是单元测试

2.2高层测试

2.3测试覆盖

2.4遗留代码修改算法

2.4.1确定修改点

2.4.2找出测试点

2.4.3解依赖

2.4.4编写测试

2.4.5改动和重构

2.4.6其他内容

第3章感知和分离

3.1伪装成合作者

3.1.1伪对象

3.1.2伪对象的两面性

3.1.3伪对象手法的核心理念

3.1.4仿对象

第4章接缝模型

4.1一大段文本

4.2接缝

4.3接缝类型

4.3.1预处理期接缝

4.3.2连接期接缝

4.3.3对象接缝

第5章工具

5.1自动化重构工具

5.2仿对象

5.3单元测试用具

5.3.1JUnit

5.3.2CppUnitLite

5.3.3NUnit

5.3.4其他xUnit框架

5.4一般测试用具

5.4.1集成测试框架

5.4.2Fitnesse

第二部分修改代码的技术

第6章时间紧迫,但必须修改

6.1新生方法

6.2新生类

6.3外覆方法

6.4外覆类

6.5小结

第7章漫长的修改

7.1理解代码

7.2时滞

7.3解依赖

7.4小结

第8章添加特性

8.1测试驱动开发

8.1.1编写一个失败测试用例

8.1.2让它通过编译

8.1.3让测试通过

8.1.4消除重复

8.1.5编写一个失败测试用例

8.1.6让它通过编译

8.1.7让测试通过

8.1.8消除重复代码

8.1.9编写一个失败测试用例

8.1.10让它通过编译

8.1.11让测试通过

8.1.12消除重复

8.2差异式编程

8.3小结

第9章无法将类放入测试用具中

9.1令人恼火的参数

9.2隐藏依赖

9.3构造块

9.4恼人的全局依赖

9.5可怕的包含依赖

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.1.1简单的情形

12.1.2高层拦截点

12.2通过汇点来判断设计的好坏

12.3汇点的陷阱

第13章修改时应该怎样写测试

13.1特征测试

13.2刻画类

13.3目标测试

13.4编写特征测试的启发式方法

第14章棘手的库依赖问题

第15章到处都是API调用

第16章对代码的理解不足

16.1注记/草图

16.2清单标注

16.2.1职责分离

16.2.2理解方法结构

16.2.3方法提取

16.2.4理解你的修改产生的影响

16.3草稿式重构

16.4删除不用的代码

第17章应用毫无结构可言

17.1讲述系统的故事

17.2NakedCRC

17.3反省你们的交流或讨论

第18章测试代码碍手碍脚

18.1类命名约定

18.2测试代码放在哪儿

第19章对非面向对象的项目,如何安全地对它进行修改

19.1一个简单的案例

19.2一个棘手的案例

19.3添加新行为

19.4利用面向对象的优势

19.5一切都是面向对象

第20章处理大类

20.1职责识别

20.2其他技术

20.3继续前进

20.3.1战略

20.3.2战术

20.4类提取之后

第21章需要修改大量相同的代码

第22章要修改一个巨型方法,却没法为它编写测试

22.1巨型方法的种类

22.1.1项目列表式方法

22.1.2锯齿状方法

22.2利用自动重构支持来对付巨型方法

22.3手动重构的挑战

22.3.1引入感知变量

22.3.2只提取你所了解的

22.3.3依赖收集

22.3.4分解出方法对象

22.4策略

22.4.1主干提取

22.4.2序列发现

22.4.3优先提取到当前类中

22.4.4小块提取

22.4.5时刻准备重新提取

第23章降低修改的风险

23.1超感编辑

23.2单一目标的编辑

23.3签名保持

23.4依靠编译器

第24章当你感到绝望时

第三部分解依赖技术

第25章解依赖技术

25.1参数适配

25.2分解出方法对象

25.3定义补全

25.4封装全局引用

25.5暴露静态方法

25.6提取并重写调用

25.7提取并重写工厂方法

25.8提取并重写获取方法

25.9实现提取

25.9.1步骤

25.9.2一个更复杂的例子

25.10接口提取

25.11引入实例委托

25.12引入静态设置方法

25.13连接替换

25.14参数化构造函数

25.15数化方法

25.16朴素化参数

25.17特性提升

25.18依赖下推

25.19换函数为函数指针

25.20以获取方法替换全局引用

25.21子类化并重写方法

25.22替换实例变量

25.23模板重定义

25.24文本重定义

附录重构

术语表

索引

内容摘要:

  本书是继《重构》和《重构与模式》之后探讨修改代码技术的又一里程碑式的著作,而且从广度和深度上都超过了前两部经典。书中不仅讲述了面向对象语言(Java、C#和C++)代码,也有专章讨论C这样的过程式语言。作者将理解、测试和修改代码的原理、技术和最新工具(自动化重构工具、单元测试框架、仿对象、集成测试框架等)与解依赖技术及大量开发和设计优秀代码的原则、最佳实践相结合,许多内容非常深入,而且常常发前人所未发。书中处处体现出作者独到的洞察力,以及多年开发和指导软件项目所积累的丰富经验和深厚功力。通过这部集大成之作,你不仅能掌握最顶尖的修改代码技术,还可以大大提高对代码和软件开发的领悟力。  修改代码是每一位软件开发人员的日常工作。开发人员常常面对的现实是,即便是最训练有素的开发团队也会写出混乱的代码,而且系统的腐化程度也会日积月累。本书是一部里程碑式的著作,针对大型的、无测试的遗留代码基,提供了从头到尾的方案,让你能够更有效地应付它们,将你的遗留代码基改善得具有更高性能、更多功能、更好的可靠性和可控性。本书还包括了一组共24项解依赖技术,它们能帮助你单独对付代码中的问题片段,并实现更安全的修改。  本书适合各层次软件开发人员、管理人员和测试人员阅读。

书籍规格:

书籍详细信息
书名修改代码的艺术站内查询相似图书
丛书名图灵程序设计丛书
9787115163622
如需购买下载《修改代码的艺术》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位人民邮电出版社
版次1版印次1
定价(元)49.0语种简体中文
尺寸26装帧平装
页数 197 印数

书籍信息归属:

修改代码的艺术是人民邮电出版社于2007.06出版的中图分类号为 TP311.52 的主题关于 软件开发 的书籍。