
本书详细阐述如何在设计、规划和实现软件时做出更好的决策,通过真实的案例,以抽丝剥茧的方式分析那些失误的决策,探讨还有哪些可能的解决方案,并对比各种方案的优缺,摸索软件设计的常青模式。本书通过实例来说明某些决策的后果,例如代码重复如何影响系统的耦合与演速度,以及如何在日期和时间信息方面隐藏细微差别。本书还介绍如何根据帕累托法则有效地缩小优化范围,确保分布式系统的一致性。 通过阅读本书,读者很快就可以将作者来之不易的经验应用到自己的项目中,以预防错误并采取更合适的编程决策。<br/>【推荐语】<br/>深刻剖析软件设计决策中的权衡与取舍,涵盖单体系统、微服务、大数据处理等多领域。 通过真实案例与代码片段,展示软件设计模式的实际应用与错误决策的教训。 深分析软件设计中的潜在问题与局限,提前预防未来可能出现的陷阱。 通过预识别设计问题,减少后期修改与重构的成本。 阐释如何平衡灵活性与复杂性、性能与优化等关键设计要素。 提供一套系统化的方法,帮助软件工程师在有限资源下做出更明智的决策。 通过增对软件设计取舍的理解,提升代码质量与项目成功率。<br/>【作者】<br/>托马斯·莱莱克(Tomasz Lelek) 托马斯在他的软件发职业生涯里,设计并发过各种各样的生产服务、软件架构,他精通多种编程语言(大多数是基于 JVM 的)。他既实现过单体系统,也曾做过与微服务架构相关的工作。他设计的有些系统可服务数千万用户,每秒处理数十万的操作量。他的工作方向如下: ? 设计采用 CQRS 架构的微服务(基于 Apache Kafka); ? 市场自动化及事件流处理; ? 基于 Apache Spark 和 Scala 的大数据处理。 托马斯现在就职于 Dremio,负责创建现代大数据处理的数据湖解决方案。在此之前,他在DataStax 负责与 Cassandra 数据库相关的一些产品。他设计的工具帮助成千上万的发者设计出性能优异、用户友好的 API,发挥了重要的作用。他为 Java-Driver、Cassandra Quarkus、Cassandra-Kafka Connector 以及 Stargate 都贡献过代码。 乔恩·斯基特(Jon Skeet) 乔恩是谷歌公司的资深发工程师,目前的工作方向是谷歌云的.NET 客户端库。他向源社区贡献了.NET 版本的 Noda 时间库,然而他最让人称道的是他在 Stack Overflow 发者社区的贡献。乔恩是 Manning 出版社出版的 C# in Depth 一书的作者,此外,他还对 Groovy in Action 以及 Real-World Functional Programming 两书有所贡献。乔恩对日期时间 API 以及 API版本非常感兴趣,这些通常是无人问津的冷门话题。<br/>

評論0