本书从最基本的设计原则和准则出发,全方位地介绍了设计框架的最佳实践,是微软的工程师从 .NET Framework 开发伊始到现如今的 .NET 这二十来年间宝贵经验的总结。
与第二版发布的 2008 年相比,今天的软件开发范式用翻天覆地来形容也不为过,容器化、云服务、跨平台、DevOps等等,都对今天的软件开发者和框架设计者提出了更高的要求。本书对第二版的内容进行了全面的更新,以适应当下发展的潮流。
本书虽然是面向 .NET 平台上的框架设计的,但对其他平台的框架设计同样具有非凡的借鉴价值。通过阅读本书,读者可以了解到如何设计出一个对使用者而言简单易用且具有一致性的优秀框架。
第一章,“导论”,涵盖了本书的简要定位,描述了框架设计的一般理念,这是书中唯一没有准则的章节。
第二章,“框架设计基础”,提供了整体框架设计中最基本的原则和准则。
第三章,“命名准则”,包含了框架中许多方面的通用的设计惯例和命名准则,比如说,命名空间、类型和成员。
第四章,“类型设计准则”,为类型的一般设计提供了指导。
第五章,“成员设计准则”,更进一步地介绍了类型成员的设计准则。
第六章,“可扩展性设计”,介绍的问题和准则对保证框架适当的可扩展性十分重要。
第七章,“异常”,介绍了异常处理相关的的准则与首选的错误报告机制。
第八章,“使用准则”,包含了如何扩展及使用框架中常见类型的准则。
第九章,“通用设计模式”,提供了常见框架设计模式中所涉及的准则和相关代码样例。
附录 A,“C# 代码风格约定”,描述了 .NET 核心团队使用的编码约定。
附录 B,“过时的指南”,包含了在之前版本出现过,本书不再推荐的应用于特定特性或概念的准则。
附录 C,“API 规范示例”,是一份微软的框架设计师们在设计 API 时所创建的 API 规范的部分示例。
附录 D,“不兼容变更”,列出了各种可能会对你的用户产生负面影响的变更。
如果中间有什么错漏之处,还请大家通过 issue 批评指正。如果有其他任何与本书相关的问题,也可以通过 issue 和 discussion 来共同探讨。