《软件设计精要与模式》第二版设想

在我看来,我从第一版出版之后得到的读者反馈实在是有限。除了有少数几位细心的读者给我指出书中的错误之外,大体上就都是泛泛而谈了。这对本书第二版的写作带来一些障碍。因为我无法知道读者对每一章的评价,不知道哪些章节对大家有益,哪些章节还有不足之处。我只能根据自己的经验来揣摩读者的想法,对第一版的内容进行改善。同时,在新版中增加第一版出书之后所获得的新知识与新认识。第二版在风格上仍然沿袭了第一版的特色,但内容无疑更加丰富。

在第一篇《设计之要》中,我会增加两个新的章节,分别介绍面向对象思想与设计原则,以及领域驱动设计。同时,删去原书的第5章《设计,由你掌握》。增加的这两章,前者是讲解设计基础,而后者则会以一个完整的案例为读者展现领域驱动设计的要点、宗旨、原则和相关思想。第五章的部分内容会合并到原书第1章《设计之道》与第2章《封装变化》之中。此外,我会极大地丰富第1章的内容,企图通过这一章为读者全面介绍软件设计的相关思想与技术。对于《封装变化》一章,我修订了一些小小错误,同时增加了“封装对象结构变化”一节。关于解除具体耦合,原书只是简单介绍了依赖注入。第二版不仅会深入介绍依赖注入,还将增加注入表驱动法、惯例优于配置、服务定位器等模式与方法。对于原书第3章和第4章对于重构和测试驱动开发的介绍,我准备更换一下演示的案例。尤其是重构一章,关于数学容器的设计实在太过于简单了。

第二篇《.NET Framework与设计模式》在第一版是针对.NET 2.0进行分析的。在第二版会针对最新的.NET框架进行分析。这一篇的变动不会太大,但可能会增加一些在.NET框架中的设计模式分析。目前,我已经完成了第6章《Factory Method模式》和第7章《Composite模式》的修改。我修改了第6章的Factory Method模式的例子。而在第7章,我则改善了原有的设计,使之更加完美和优雅。

第三篇《媒体播放器的设计之旅》的变化或许会比较大。因为我会开发一个真实的媒体播放器,用以演示各种模式的运用。因此,可能会增加几种模式的运用,不过关于第一版中讲解Adapter模式的章节,则可能会删去。

第四篇《设计模式应用实践》仍然沿用旧有的风格。我会对第17章的Builder模式案例进行调整,因为本章的案例对于Builder模式的应用还不够典型。第18章《Command模式应用实践》的案例不会改变,但我会进一步完善它,尤其是充分利用Command模式的特性。第19章《Chain of Responsibility模式应用实践》写得过于矫情,我可能会考虑删去它,也可能会用另外的案例代替。经读者提醒,第21章《Proxy模式应用实践》存在一个小小的错误,我会在第二版中对其进行修正。第22章《复合的设计模式实践》思想是好的,但明显有过度设计的嫌疑,且设计思路并不够好。我会考虑对其进行大的手术。此外,我可能还会增加一些章节,不过具体有哪些,我现在还说不清楚。

第五篇《.NET体系架构设计》叙述的内容以现在看来,过于陈旧了。我会在其中适度地增加体系架构设计的相关知识。最关键的是,第二版不再以PetShop作为讲解的模板,拟考虑对DinnerNow(或者StockTrader)进行分析。在这一篇中,会增加对LINQ、WCF、WF等知识的介绍。当然,介绍的思路与结构不会发生太大的变化,仍然以分层式架构作为主体框架。

posted @   张逸  阅读(1539)  评论(18编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示