迈克尔·C.弗伊特的《有效处理遗留代码》:策略与工具
![](https://csdnimg.cn/release/wenkucmsfe/public/img/starY.0159711c.png)
"《有效处理遗留代码》(Working Effectively with Legacy Code, English) 是Michael C. Feathers所著的一本书,该书隶属于罗伯特·C·马丁系列。这本著作深入探讨了在现有软件系统中进行有效改变的问题,对于那些面临大量遗留代码挑战的开发人员来说是一份宝贵的指南。
第一部分,"机械原理:变化的艺术",从如何理解软件变化的原因开始。章节1阐述了四个驱动软件变更的因素:改进设计、降低风险、适应需求变化和修复错误。作者强调了在面对复杂依赖关系时,如图2.2所示的更新发票类案例,如何谨慎处理以减少对系统的破坏性影响。
第二章关注如何处理反馈,尤其是单元测试的作用。作者引入了软件工作台的概念,并解释了什么是单元测试以及不同类型的测试工具,包括测试 Harnesses 和更高层次的测试覆盖策略。书中还讨论了遗留代码困境及其解决方法——The Legacy Code Change Algorithm,旨在帮助开发者制定有效的变更策略。
第三章探讨了"感知与分离"的技巧,例如通过伪造(Faking)协作对象来支持真实测试。作者区分了两种类型的伪造对象,强调了它们在测试中的应用,以及如何在不破坏原有系统结构的情况下进行操作。
第四章介绍了Seam模型,这是一种将系统模块化的设计方法,通过识别和处理接口之间的连接点(Seams),使系统更易于管理和测试。书中详细讲解了不同类型Seams,如对象Seams,以及如何通过Enabling Points和Link Seams实现无缝集成。
第五部分关注于工具的使用,包括自动化重构工具、测试与自动化的结合,以及mock objects(模拟对象)在单元测试中的关键作用,以及通用的测试框架。
第六章针对实际场景,提出了在时间紧迫且必须进行代码更改的情况下,如何高效地处理遗留代码问题。这部分强调了在有限的时间内,如何权衡风险,优先处理关键部分以实现最小影响的修改。
《有效处理遗留代码》是一本实战导向的书籍,提供了解决遗留代码挑战的方法论和实用技巧,对于任何需要与既有代码库打交道的开发人员来说,都是一本不可或缺的参考文献。"
相关推荐
![filetype](https://img-home.csdnimg.cn/images/20241231044930.png)
206 浏览量
![filetype](https://img-home.csdnimg.cn/images/20241231044930.png)
141 浏览量
![filetype](https://img-home.csdnimg.cn/images/20210720083646.png)
![filetype](https://img-home.csdnimg.cn/images/20241231044930.png)
![filetype](https://img-home.csdnimg.cn/images/20210720083606.png)
![filetype](https://img-home.csdnimg.cn/images/20210720083606.png)
![filetype](https://img-home.csdnimg.cn/images/20241231044736.png)
![filetype](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://profile-avatar.csdnimg.cn/34b3e0e836eb4ff4bfc3ea1c686a4e85_stone_sh.jpg!1)
stone_sh
- 粉丝: 5
最新资源
- OpenGL实现旋转的glut代码教程
- Diagramos:一元逻辑公式证明工具的应用介绍
- Spring Security 2.0.4 完整包及源码下载
- 雪球用户数据爬取及多维数据集导入教程
- MARC2015实例教程第5-6-9章节及常见问题解析
- Qt与Matlab混合编程实现加法教程及文件下载
- PHP分页类实现数据库操作教程
- 基于MSP430F149实现的12864显示屏简便串口通信
- HashUtil:简易校验和哈希计算器工具使用指南
- PHPUnit代码测试库dbunit下载与应用
- C#实现调用本机摄像头及截图操作
- 高中生Santhosh探索自动化、AI与TensorFlow学习之路
- C#实现24路舵机控制板编程及USB通信
- 银行家算法在vc++环境下的实现教程
- 探索 Maven Findbugs 插件在 Java 开发中的应用
- RecruitHerd Mini-crx插件: 招聘软件解决方案的简化版