推荐序

推荐序

本书将讲述一个完整的故事。

将此作为一本书的首要定位似乎有点奇怪,但对我而言这很重要。我们曾回绝数十位申请撰写“七周系列丛书”的作者,他们认为只要将七个分散主题拼凑起来就是一本书,但这有违我们的初衷。

先前的《七周七语言:理解多种编程范型》1讲述了一个面向对象编程语言的故事,这是很适应当时的环境的。但在多核架构的驱动下,软件复杂度的增长和并发技术的发展所带来的压力,将函数式编程推到舞台之上,并对今后的编程方式有着深远的影响。Paul Butcher是《七周七语言》最给力的审校者之一,相识四年后,我开始理解其中原因。

1本书中文版电子书在图灵社区有售:http://www.ituring.com.cn/book/829。——编者注

Paul一直奋斗在将高可扩展的并发技术应用于实际业务系统的第一线。读过《七周七语言》后,对于他所处的日益重要但日趋复杂的问题领域,Paul觉得可以从编程语言级别获得一些启发。几年后,Paul表示要写一本自己的书。他解释道:尽管编程语言在整个故事中有着重要的作用,但也只触及了问题的表面。他要为读者讲述一个更完整的故事,为非专业人士介绍现代应用程序用以解决大型并行问题的扩展性良好的重要工具。

一开始我们是持怀疑态度的。这类书是很难写的——比起其他领域的书,这类书需要花费更长的时间,而且失败的几率很高——Paul显然选择了一块难啃的骨头。作为一个团队,我们不断磨合前进,终于从最初的大纲中研磨出一个优秀的故事。随着书稿逐渐完成,我们更加自信于Paul的技术能力和攻关热情。现在,我们已经确信这是一本特别的书,而且恰逢其时。随着阅读的深入,我相信你也会同意这个观点。

当你在开篇阅读到“线程与锁”这种当今最广泛使用的并发解决方案时,可能会不以为然。不过你很快就会看到这种解决方案的不足之处,并开始思考如何解决。Paul将引领你学习多种非常不同的技术,从一些社交平台使用的Lambda架构,到现今世界上许多最大最可靠的电信系统使用的actor模型。你会学到职业高手使用的一些语言,从Java到Clojure,再到基于Erlang的闪亮新秀Elixir。旅途中的每一步,Paul都将从专业的角度为你剖析其中的玄妙和精彩。

在此,我诚意奉上《七周七并发模型》。希望你和我一样乐享其中。

Bruce A. Tate

icanmakeitbetter.com网站CTO,七周系列丛书主编

于美国德克萨斯州奥斯汀

目录

  • 版权声明
  • 译者序
  • 推荐序
  • 前言
  • 致谢
  • 第 1 章 概述
  • 第 2 章 线程与锁
  • 第 3 章 函数式编程
  • 第 4 章 Clojure之道——分离标识与状态
  • 第 5 章 Actor
  • 第 6 章 通信顺序进程
  • 第 7 章 数据并行
  • 第 8 章 Lambda架构
  • 第 9 章 圆满结束
  • 参考书目