标签
内容简介
本书是《Adaptive Code via C#: Agile coding with design patterns and SOLID principles》的中文译本,围绕“如何写出能够适应变化的自适应代码”这一主题展开,共分三大部分。 第一部分「敏捷基础」从Scrum这一敏捷项目管理方法论讲起,介绍Scrum中的角色、工件、度量指标和冲刺会议,并指出僵化、难以变更的代码是敏捷实践真正的瓶颈。随后依次讨论依赖与分层(第一方、第三方与框架依赖,new代码味道、随从反模式与阶梯模式、依赖解析与NuGet、纵切关注点与非对称分层)、接口与设计模式(显式实现、多态、空对象、适配器、策略模式,以及鸭子类型、混合类型、流接口),以及单元测试与重构(布置—动作—断言、测试驱动开发、模拟与真实重构示例)。 第二部分「编写SOLID代码」逐章讲解SOLID五原则:单一职责原则及修饰器模式的各种变体、开放与封闭原则与扩展点、Liskov替换原则与代码契约和协变逆变、接口分离原则与超级接口反模式、依赖注入原则与控制反转容器、组合根和约定优于配置。 第三部分「自适应实例」以一个基于ASP.NET MVC 5的在线聊天应用为主线,按Scrum冲刺组织,演示用测试驱动开发实现查看与创建房间、消息发送等特性,并在第二个冲刺中处理客户提出的需求变更,展示自适应代码如何消化变化。附录介绍用Git与GitHub获取示例代码、使用Visual Studio编译的方法。全书含大量C#代码示例,面向有一定经验的.NET开发者。
编辑推荐
很多讲敏捷的书只谈流程和会议,而本书把目光落回代码本身:如果需求一变,代码就大面积崩坏,再标准的Scrum也救不了项目。作者Gary McLean Hall长期在敏捷团队中做.NET开发与咨询,他以“自适应代码”为主线,把Scrum、依赖管理、接口与设计模式、单元测试与重构串成一条可操作的链路。 亮点有三:一是结构清晰,三部分从流程到原则再到实战,每章聚焦一个主题并配有交叉索引,可以按需跳读;二是SOLID五个原则各占一章,配上修饰器、空对象、策略、阶梯模式等具体实现,讲的不是口号而是可落地的写法;三是第三部分用Trey Research的在线聊天应用按两个冲刺走完全程,展示从积压工作项到测试驱动开发再到应对变更的真实节奏。 译者为有.NET研发背景的技术人员,术语处理较稳妥。虽以2014年前后的.NET Framework与Visual Studio 2013为背景,但针对依赖、抽象、可测试性的讨论并不过时,读完后对照现代.NET重写示例,收获会更大。适合已有一定C#经验、想把设计能力补上的开发者。
适合谁读
适合
- 有1年以上C#/.NET开发经验、希望提升代码设计能力的程序员
- 正在团队中推行Scrum或敏捷实践,却苦于代码难以响应变更的技术负责人
- 想系统补齐SOLID原则、设计模式与依赖注入知识的中级开发者
- 准备从业务代码转向架构设计,需要可测试性与分层思路的人
不适合
- 刚接触编程、尚未掌握类与接口基本概念的零基础读者
- 只关心项目管理流程、不打算阅读代码示例的项目经理或产品经理
- 寻找ASP.NET Core、.NET 6+最新特性的现代框架教程的读者
- 期望拿到可直接套用的完整项目源码模板的读者
阅读建议
- 先读前言与第1章,理解作者把“流程”与“代码”结合的主线,再决定从哪部分切入。
- 第2—4章可边读边在Visual Studio中复现示例,尤其把阶梯模式与依赖注入部分亲手敲一遍。
- 读SOLID五章时,把书上的修饰器、空对象、策略模式套用到自己正在维护的项目,效果更直观。
- 第三部分建议按冲刺顺序读完,再对照GitHub上的示例代码体会需求变更如何被自适应代码吸收。
出版社简介
人民邮电出版社
中国 · 成立于 1953 年
人民邮电出版社以科技、计算机与信息通信类图书见长,并由此延伸至摄影、艺术、软件学习与励志成长等门类,形成较为多元的出版方向。库内图书既涵盖《重构与模式(修订版)》《华为交换机学习指南(第二版)》等计算机与通信技术读物,也收录《小王子(中英法彩绘典藏纪念版)》《了不起的盖茨比》《假如给我三天光明》等双语典藏类作品;《北京十年:1980-1990》与《鬼刀 WLOP个人插画作品集》则体现其在摄影与艺术领域的布局。作者资源包括安东尼·圣埃克苏佩里、海伦·凯勒、Joshua Kerievsky、王达、张兆增与WLOP等。
目录
- 第一部分 敏捷基础
- 第1章 Scrum介绍
- 第2章 依赖和分层
- 第3章 接口和设计模式
- 第4章 单元测试和重构
- 第二部分 编写SOLID代码
- 第5章 单一职责原则
- 第6章 开放与封闭原则
- 第7章 Liskov替换原则
- 第8章 接口分离原则
- 第9章 依赖注入原则
- 第三部分 自适应实例
- 第10章 自适应实例简介
- 第11章 自适应实例冲刺1
- 第12章 自适应实例冲刺2
- 附录 自适应工具
常见问题
这本书和《敏捷软件开发:原则、模式与实践(C#版)》是同一本吗?
不是。本书的原名是《Adaptive Code via C#》,作者为Gary McLean Hall,2016年由人民邮电出版社出版;后者是Robert C. Martin等人的经典著作,主题虽相近,但作者、内容和结构都不同,选购时注意区分。
书中的技术栈是否已经过时?
示例基于.NET Framework、ASP.NET MVC 5与Visual Studio 2013,部分API与今天不同。但依赖管理、分层、SOLID原则、单元测试与依赖注入的思想依然适用,可在现代.NET环境中重新实现。
需要先懂Scrum才能读吗?
不需要。第1章从Scrum与瀑布的区别讲起,逐步介绍角色、工件、冲刺会议等概念,即使没有敏捷团队经验也能跟上。
书中的示例代码在哪里获取?
附录介绍了如何用Git从GitHub下载示例代码,并用Visual Studio编译。建议在练习时使用作者提供的代码库,以便与书中章节对应。
零基础能直接读这本吗?
不太合适。作者在前言中明确说明本书不适合刚学编程的人,需要具备面向对象开发经验并理解接口概念,否则容易在第二部分卡住。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。