| 作者: | Kyle Baley and Donald Belcham |
| 语言: | 英文 |
| 出版年份: | 2010 |
| 下载链接: |
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。 |
Brownfield Application Development in .NET 是一本专门讨论"棕地应用"(brownfield application)的实战指南。所谓棕地应用,指那些既非全新启动的绿地项目(greenfield),也不完全等同于 Michael Feathers 所定义的遗留系统——它们通常已有一定业务价值,但代码库被糟糕的编程实践"污染",团队士气低落,流程混乱。本书不是一本鼓吹推倒重来的书,而是一本教你如何在现有混乱中逐步建立秩序、在不中断业务的前提下渐进式改善代码质量和开发流程的实用手册。两位作者 Kyle Baley 和 Donald Belcham 拥有丰富的 .NET 项目接手与改造经验。
全书采用"先治生态、再治代码"的双阶段推进策略。第一部分聚焦开发基础设施:从版本控制、持续集成、自动化测试,到代码度量与缺陷管理,逐层搭建起支撑团队高效协作的工程环境。第二部分深入代码层面:从面向对象基本原则出发,依次讨论分层架构重构、依赖解耦与依赖注入、UI 层清理(MVP/MVC 模式)、数据访问层改造,以及第三方依赖管理。最后一章专门讨论如何保持改进势头,避免团队退回旧习惯。全书贯穿一个核心信念:改善不是一次性的大手术,而是持续的小步迭代。
| 章节 | 核心内容 |
|---|---|
| 第一章 理解棕地应用 | 棕地定义、典型痛点(政治因素、团队士气、技术债务)、接手评估框架 |
| 第二章 版本控制 | 缺失引用与程序集、文件锁定、分支策略、第三方依赖的仓库组织、签入规范 |
| 第三章 持续集成 | 反馈回路、自动构建与构建服务器、签入流程升级、编译/测试/部署一体化 |
| 第四章 自动化测试 | 状态测试与交互测试、现有测试项目重新集成、UI 测试、数据库初始化与管理策略 |
| 第五章 代码度量与分析 | 圈复杂度、类耦合度、内聚性、继承深度、可维护性指数、覆盖率自动化 |
| 第六章 缺陷管理 | 缺陷分类与初始分诊、缺陷条目解剖(5C 原则)、零缺陷文化、缺陷与需求的边界划分、趋势报告 |
| 第七章 引入更好的 OO 实践 | 封装/继承/多态/抽象、SOLID 原则、组合优于继承、向团队推广设计原则与敏捷实践 |
| 第八章 重新分层 | 层与 tier 的区别、防腐层、垂直分层、AOP、领域中心化方法、渐进式分层重构 |
| 第九章 驯服依赖 | 依赖反转原则、接口抽象、IoC 容器、构造函数链、棕地中的依赖注入落地路径 |
| 第十章 清理用户界面 | Passive View / Supervising Controller / Presentation Model、MVP 重构步骤、MVC 对比与选择 |
| 第十一章 重构数据访问 | CRUD 隔离、存储过程迁移、DAL 特性(事务/UoW/延迟加载/缓存)、ORM vs 手写 |
| 第十二章 管理外部依赖 | 编译时与运行时依赖、Web 服务封装、Office 集成包装、Adapter/Proxy/Façade 模式 |
| 第十三章 保持势头 | 调整节奏、"春季大扫除"迭代、里程碑回顾、建立质量文化、提升团队信心 |
适合接手已有 .NET 项目的开发者和技术 Leader,尤其是面对代码质量差、流程缺失、团队士气低落的"烂摊子"项目。需要具备基本的 .NET 开发和面向对象编程基础。不太适合追求全新架构设计理论或绿地项目最佳实践的读者——本书的焦点始终是"如何在约束条件下改善现状"。对敏捷教练和技术管理者也有参考价值,书中大量讨论了如何向团队和管理层推销改进方案。
本书的最大价值在于诚实——它直面大多数开发者日常面对的真实处境,而非描绘理想化的开发场景。两位作者反复强调"每个项目都不同""没有银弹",这种务实态度贯穿始终。与 Feathers 的 Working Effectively with Legacy Code 相比,本书更侧重 .NET 生态的工具链和工程实践,且对团队协作、政治因素等软性话题着墨更多。2010 年出版,部分工具已过时,但核心理念——渐进式改善、先建基础设施再动代码、用数据说服利益相关者——至今仍然有效。篇幅适中(约 380 页),适合作为接手遗留 .NET 项目时的案头参考。