分布式系统架构:架构策略与难题求解
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

Neal和Mark撰写Fundamentals of Software Architecture[1]一书时,不断遇到复杂的架构示例,虽然想要谈及但却处处受阻。每个示例都没有简单的解决方案,只有一系列杂乱的权衡。我们把这些示例集中在一起,取名为“The Hard Parts”。在完成那本书后,我们看着这一大堆困难问题,想要弄清楚:为什么在现代架构中解决这些问题如此困难?

我们像架构师一样,针对所有的示例,对每一种情况进行权衡分析,同时也留意做出权衡的过程。早期的发现之一是,数据在架构决策中越来越重要:谁可以/应该访问数据,谁可以/应该写入数据,以及如何管理分析型数据和业务型数据的分离。为此,我们邀请了这些领域的专家加入,使得本书能够在决策过程中结合两个不同的角度:架构到数据,数据到架构。

这个成果便是这本书——一个现代软件架构中的困难问题集,权衡使得做决策更困难,但最终我们会手把手用示例告诉你如何将相同的权衡分析应用到具体问题中。

排版约定

本书中使用以下排版约定:

斜体(Italic

表示新的术语、URL、电子邮件地址、文件名和文件扩展名。

等宽字体(Constant width)

用于程序清单,以及段落中的程序元素,例如变量名、函数名、数据库、数据类型、环境变量、语句以及关键字。

等宽粗体(Constant width bold

表示应由用户直接输入的命令或其他文本。

等宽斜体(Constant width italic

表示应由用户提供的值或由上下文确定的值替换的文本。

该图示表示提示或建议。

示例代码

可以从http://architecturethehardparts.com下载补充材料(示例代码、练习、勘误等)。

这里的代码是为了帮助你更好地理解本书的内容。通常,可以在程序或文档中使用本书中的代码,而不需要联系O'Reilly获得许可,除非需要大段地复制代码。例如,使用本书中所提供的几个代码片段来编写一个程序不需要得到我们的许可,但销售或发布本书中的示例代码则需要获得许可。引用本书的示例代码来回答问题也不需要许可,将本书中的很大一部分示例代码放到自己的产品文档中则需要获得许可。

非常欢迎读者使用本书中的代码,希望(但不强制)注明出处。注明出处时包含书名、作者、出版社和ISBN,例如:

Software Architecture: The Hard Parts,作者Neal Ford、Mark Richards、Pramod Sadalage和Zhamak Dehghani,由O'Reilly出版,书号978-1-492-08689-5。

如果读者觉得对示例代码的使用超出了上面所给出的许可范围,欢迎通过permissions@oreilly.com联系我们。

O'Reilly在线学习平台(O'Reilly Online Learning)

40多年来,O'Reilly Media致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。

我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O'Reilly的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O'Reilly和200多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问https://oreilly.com

如何联系我们

对于本书,如果有任何意见或疑问,请按照以下地址联系本书出版商。

美国:

O'Reilly Media,Inc.

1005 Gravenstein Highway North

Sebastopol,CA 95472

中国:

北京市西城区西直门南大街2号成铭大厦C座807室(100035)

奥莱利技术咨询(北京)有限公司

要询问技术问题或对本书提出建议,请发送电子邮件至errata@oreilly.com.cn

本书配套网站https://oreil.ly/sa-the-hard-parts上列出了勘误表、示例以及其他信息。

关于书籍、课程、会议和新闻的更多信息,请访问我们的网站http://oreilly.com

我们在Facebook上的地址:http://facebook.com/oreilly

我们在Twitter上的地址:http://twitter.com/oreillymedia

我们在YouTube上的地址:http://www.youtube.com/oreillymedia

致谢

Mark和Neal想感谢所有参加我们(基本全是线上)课程、研讨会、会议和用户群会议的人,以及对本书给予反馈的人。我们感谢O'Reilly的出版团队让本书得以顺利出版。我们也感谢一些令人保持理智、文思泉涌的小组,比如Pasty Geeks和Hacker B&B。

感谢本书的技术审校者:Vanya Seth、Venkat Subramanian、Joost van Weenen、Grady Booch、Ruben Diaz、David Kloet、Matt Stein、Danilo Sato、James Lewis和Sam Newman。

Mark Richards的致谢

感谢我亲爱的妻子Rebecca,她无尽的容忍、支持和建议成就了这本书,即使这占据了她写作小说的时间。Rebecca,你对我来说就是整个世界。我还要感谢我的好朋友、合著者Neal Ford,和他一起写书对我来说是宝贵且获益匪浅的体验。他永远是我的朋友。

Neal Ford的致谢

感谢Thoughtworks这个大家庭,特别鸣谢Rebecca Parsons和Martin Fowler。Thoughtworks是一个非凡的集体,在为客户带来价值的同时也关注事物的运作规律,从而提升它们。Thoughtworks在各个方面助力本书的完成,不断成长的Thoughtworks同事让我每天受到挑战和激励。我还要感谢隔壁的鸡尾酒俱乐部和我的老朋友Norman Zapien,这是我放松身心的源泉。最后,我要感谢我的妻子Candy,她的支持和忍耐让我可以专心写作。

Pramod Sadalage的致谢

感谢我的妻子Rupali的支持和理解,以及我可爱的女儿Arula和Arhana的鼓励,爸爸爱你们俩。感谢我的新客户AvidXchange的支持,它提供了极大的空间让我迭代新的概念。感谢Thoughtworks的持续支持,以及作为导师的Neal Ford、Rebecca Parsons和Martin Fowler的帮助。最后,谢谢我的父母,尤其是妈妈Shobha,我每一天都在思念她。

Zhamak Dehghani的致谢

感谢Mark和Neal的邀请,让我参与这项了不起的工作。感谢我的丈夫Adrian的不断支持以及我的女儿Arianna的耐心。我爱你们。


[1]:本书已由机械工业出版社引进出版,中文书名为《软件架构:架构模式、特征及实践指南》,ISBN为978-7-111-68219-6。