minor change to improve translation of preface

This commit is contained in:
jiajia.debug 2018-03-30 21:52:00 +08:00
parent fd3cbf5701
commit b12f63edef

View File

@ -4,26 +4,26 @@
在最近十年中,我们看到了很多有趣的进展,关于数据库,分布式系统,以及在此基础上构建应用程序的方式。这些进展有着各种各样的驱动力:
* 谷歌,雅虎,亚马逊,脸书,领英,微软和推特等互联网公司正在和巨大的流量/数据打交道,这迫使它们创造能有效应对这种规模的新工具。
* 企业需要敏捷,廉价地测试假设,通过缩短开发周期和保持数据模型的灵活性,快速响应新的市场洞察。
* 谷歌,雅虎,亚马逊,脸书,领英,微软和推特等互联网公司正在和巨大的流量/数据打交道,这迫使他们去创造能有效应对如此规模的新工具。
* 企业需要变得敏捷,需要低成本地检验假设,需要通过缩短开发周期和保持数据模型的灵活性,快速响应新的市场洞察。
* 免费和开源软件变得非常成功,在许多环境中比商业软件和定制软件更受欢迎。
* 处理器主频几乎没有增长,但是多核处理器已经成为标配,网络也越来越快。这意味着并行程度只增不减。
* 处理器主频几乎没有增长,但是多核处理器已经成为标配,网络也越来越快。这意味着并行只增不减。
* 即使您在一个小团队中工作现在也可以构建分布在多台计算机甚至多个地理区域的系统这要归功于譬如亚马逊网络服务AWS等基础设施即服务IaaS概念的践行者。
* 许多服务都要求高可用,因停电或维护导致的服务不可用,变得越来越难以接受。
数据密集型应用正在通过利用这些技术进步推动可能性的边界。如果**数据是其主要挑战**(数据量,数据复杂度或数据变化速度),我们称这类应用为**数据密集型**,与之相对的是**计算密集型**,即处理器速度是瓶颈。
数据密集型应用正在通过利用这些技术进步推动可能性的边界。如果**数据是其主要挑战**(数据量,数据复杂度或数据变化速度),这类应用被称为**数据密集型**,与之相对的是**计算密集型**,即处理器速度是瓶颈。
帮助数据密集型应用程序存储和处理数据的工具和技术已经迅速适应这些变化。新型数据库系统“NoSQL”已经引起了人们的关注,但消息队列,缓存,搜索索引,批处理和流处理框架以及相关技术也非常重要。许多应用程序组合使用这些技术
工具和技术迅速适应着这些变化,帮助数据密集型应用程序存储和处理数据。新型数据库系统“NoSQL”已经引起了众多关注,然而消息队列,缓存,搜索索引,批处理和流处理框架以及相关技术也非常重要。这些技术被组合使用在很多应用程序上
这些充满整个空间的流行语是对新的可能性的热情的表现,这是一件好事。但是,作为软件工程师和架构师,如果我们想要建立良好的应用程序,我们还需要对各种层出不穷的技术持有准确而严谨的技术性理解,以及它们之间的取舍权衡。为此,我们必须深入挖掘流行语背后的内容。
这些充满整个空间的流行语体现出人们对新可能性的热情,这是一件好事。但是,作为软件工程师和架构师,如果要建立良好的应用程序,我们还需要对各种层出不穷的技术及其利弊持有准确而严谨的技术性理解。为此,必须深入挖掘流行语背后的内容。
幸运的是,在技术快速变化的背后,无论您使用的是什么版本的特定工具,都存在一些持久的原则。如果你了解这些原则,你就可以看到每个工具的适用位置,如何充分利用它们,以及如何避免其中的陷阱。这是本书的初衷。
幸运的是,在技术快速变化的背后,无论您使用的是哪个版本的特定工具,存在一些持久的原则。如果您了解这些原则,您就可以领会这些工具适用于何处,如何充分利用它们,以及如何避免其中的陷阱。这是本书的初衷。
本书的目标是帮助您在多样而快速变化的处理和存储数据技术的大观园中找到方向。这本书不是一个特定工具的教程,也不是一本充满干枯理论的教科书。相反,我们将看到一些成功的数据系统示例:一些构成了许多流行应用程序基础,必须在每天的生产中满足可伸缩性,性能和可靠性需求的技术。
我们将深入这些系统的内部,梳理他们的关键算法,讨论他们的原则和们必须做出的权衡。在这个过程中,我们将尝试寻找有用的思考数据系统的方式 —— 不仅仅关于它们是如何工作的,还包括为什么它们以这种方式工作,以及我们需要问什么问题。
我们将深入这些系统的内部,梳理他们的关键算法,讨论他们的原则和们必须做出的权衡。在这个过程中,我们将尝试寻找有用的方式来思考数据系统 —— 不仅仅关于它们是如何工作的,还包括为什么它们以这种方式工作,以及我们需要问什么问题。
阅读本书后,您将能够很好地决定哪种技术适合哪种用途,并了解如何将工具组合起来,形成良好应用架构的基础。您不会获得从头开始构建自己的数据库存储引擎的能力,但幸运的是,这是很少有必要的。您将会获得的是,对你的系统在底层做什么有一个很好的直觉,这样您就可以推断它们的行为,做出好的设计决定,并追踪任何可能出现的问题。
阅读本书后,您将能够很好地决定哪种技术适合哪种用途,并了解如何将工具组合起来,为一个良好应用架构奠定基础。您并不能够因此准备好从头开始构建自己的数据库存储引擎的技能,不过幸运地很,这很少是必要的。您将会获得的是,建立起对系统底层运行的敏锐直觉,这样您就有能力推理它们的行为,做出好的设计方案,并追踪任何可能出现的问题。
@ -35,7 +35,7 @@
您应该具有构建基于Web的应用程序或网络服务的一些经验并且您应该熟悉关系数据库和SQL。任何您了解的非关系型数据库和其他与数据相关的工具都会更有帮助但不是必需的。常见的网络协议如TCP和HTTP的一般理解是有帮助的。编程语言或框架的选择对阅读本书没有任何不同影响。
如果以下任何一条对你是真的,你会发现这本书很有价值:
如果以下任何一条对您是真的,您会发现这本书很有价值:
* 您想了解如何使数据系统可扩展例如支持拥有数百万用户的Web或移动应用程序。
* 您需要提高应用程序的可用性(最大限度地减少停机时间)和运行稳定。