Erlang 程序设计 - Armstrong

Erlang 程序设计

Armstrong

出版时间

2008-01-01

ISBN

9787115188694

评分

★★★★★
书籍介绍

书是讲述下一代编程语言Erlang 的权威著作,主要涵盖顺序型编程、异常处理、编译和运行代码、并发编程、并发编程中的错误处理、分布式编程、多核编程等内容。本书将帮助读者在消息传递的基础上构建分布式的并发系统,免去锁与互斥技术的羁绊,使程序在多核CPU 上高效运行。本书讲述的各种设计方法和行为将成为设计容错与分布式系统中的利器。.

在多核、并发、分布为王的时代,谁将成为下一个主流编程语言?来自全世界的众多专家都认为,Erlang最有可能在竞争中胜出。

Erlang开源语言系出名门,通信巨头爱立信公司用它开发出了可靠性惊人的交换机系统AXD301。它天生就是面向并发、分布和高容错的,兼有函数式语言和脚本语言的各种优点,而且已经用于商业开发多年,具有稳定性极高的虚拟机和平台库。有了这些天时地利,无怪乎Erlang能够迅速成为热门的开发语言,除了广泛应用于通信行业之外,它已经进入了各个领域:Facebook用它实现了聊天系统,Yahoo用它重写了Delicious,Amazon用它开发了云计算数据服务SimpleDB,还有多人游戏、测试工具、电子支付、数据采集与监控、企业消息、电子邮件、空中交通管制……..

本书由Erlang之父Joe Armstrong编写,是毋庸置疑的经典著作。书中兼顾了顺序编程、并发编程和分布式编程,较深入地讨论了开发Erlang应用中至关重要的文件和网络编程、OTP、MNesia、Ets和Dets等主题,更为精彩的是,大师亲自操刀,构建了MapReduce实例和多人聊天实例,一定让你大呼过瘾。...

AI导读
核心看点
  • Erlang之父亲笔撰写,权威解读语言设计哲学。
  • 深入讲解并发、分布式及容错系统设计核心。
  • 涵盖顺序编程、OTP框架及MapReduce实战。
适合谁读
  • 希望掌握高并发与分布式系统开发的工程师。
  • 对函数式编程范式及Erlang语言感兴趣的读者。
  • 从事通信、即时通讯或云计算领域开发的程序员。
读前提醒
  • 书中Erlang版本较旧,建议配合最新官方手册阅读。
  • 函数式思维差异大,需耐心适应无副作用编程模式。
  • 附录篇幅较长,初学者可先聚焦核心章节与实例。
读者共识
  • 公认的Erlang入门经典,思维冲击力强,必读之作。
  • 作者行文幽默,讲解深入浅出,适合新手建立体系。
  • 部分读者认为OTP章节较浅,需结合源码深入实践。

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "The world is parallel. If we want to write programs that behave as other objects behave in the real world, then these programs will have a concurrent structure. Use a language that was designed for writing concurrent applications, and development becomes a lot easier. Erlang programs model how we th"
  • "Functional programming forbids code with side effects. Side effects and concurrency don’t mix. You can have sequential code with side effects, or you can have code and concurrency that is free from side effects.You have to choose. There is no middle way."
  • "Erlang is a language where concurrency belongs to the programming language and not the operating system."
  • "A guard sequence is either a single guard or a series of guards, separated by semicolons (;). The guard sequence G1; G2; ...; Gn is true if at least one of the guards—G1, G2, ...—evaluates to true. A guard is a series of guard expressions, separated by commas (,). The guard GuardExpr1, GuardExpr2, ."
  • "1. When we enter a receive statement, we start a timer (but only if an after section is present in the expression). 2. Take the first message in the mailbox and try to match it against Pattern1, Pattern2, and so on. If the match succeeds, the message is removed from the mailbox, and the expressions "
  • "Download edemo2.erl 1> edemo2:start(false, abc). Process c received {'EXIT',<0.81.0>,abc} Process a received {'EXIT',<0.81.0>,abc} process b (<0.81.0>) is dead process c (<0.82.0>) is alive ok 2> edemo2:start(false, normal). process b (<0.85.0>) is alive process c (<0.86.0>) is alive ok 3> edemo2:st"
  • "Note: When you read this code, you’ll see we just used a variable Pid everywhere. This is the process identifier of the linked process. We can’t use a variable name like LinkedPid to say this, because before we have evaluated link(Pid), it’s not a linked process. When you see a message like {’EXIT’,"
  • "Step 1: Start an Erlang node on doris: doris $ erl -name gandalf -setcookie abc (gandalf@doris.myerl.example.com) 1> kvs:start(). true Step 2: Start an Erlang node on george, and send some commands to gandalf: george $ erl -name bilbo -setcookie abc (bilbo@george.myerl.example.com) 1> rpc:call(ganda"
作者简介
Joe Armstrong,Erlang最初的设计者和实现者,也是Erlang OTP系统项目的首席架构师。他拥有瑞典皇家理工学院博士学位,是容错系统开发领域的世界级专家。此外,他还在开发旨在替代XML的标记语言ML9。现任职于爱立信公司。 赵东炜,(Jackyz)独立软件顾问,一直专注于Web应用开发,曾负责设计和维护某大型门户网站的多个核心应用,对高并发大容量的分布式应用领域有独到见解。曾担任过软件开发工程师、系统架构师、技术经理、产品经理、创业者等多种不同的角色。闲暇时以思考技术问题为乐,从事软件行业10余年来,从最初的 ASP/PHP到之后的Java/.NET以及现在的Ajax和Erlang,一直都活跃在技术的最前沿。2006年作为主要译者参与了 AjaxcincAction(中译本《Ajax实战》,由人民邮电出版社出版)的翻译工作。之后为Erlang强大的并发能力所吸引,是国内学习和传播 Erlang技术的第一批人,迄今已有2年多的实际开发经验。在2007年3月创建了Erlang中文社区(erlang-china.org),现在是国内Erlang爱好者聚集和分享资料的主要网站。 金尹,长期从事电信行业的大规模语音通信程序的研发,有丰富的并发/分布式网络系统的开发经验。业余从事于数学与编程语言理论,以及并行计算方面的研究。致力于在国内推广函数式语言的发展,分别在2001年和2006年在《程序员》杂志上介绍 Python、Erlang等前卫的编程理念。
目录
第1章 引言
1.1 路线图
1.2 正式起航
1.3 致谢
第2章 入门

显示全部
用户评论
fb 不用otp 为毛呢
大致看了下语法章节。OTP部分交给另一本书
赞爆了!!既有FP的传统,又有很好的消息通讯机制,简直是一把屠龙刀...不管做不做高性能方面的应用,这本书都值得一读,当开阔眼界也好啊~~~~~~~
基本看完。OTP章节不爽内容太少
感觉并不是很深入,推荐还是直接看API源码,不过作为入门级的书来说,的确不错
讲的泛泛,深度不够
想了解erlang和并发的程序员非常推荐,但是对并发没有兴趣就不要读了,你体会不到快感。自学编程想找一份高薪工作的新人也没必要读,因为新人在工作中根本用不到这些概念。挺遗憾的,软件开发环境越来越差,好的技术好的概念都被花里胡哨的广告掩盖了。typescript 和 golang 都好烂啊。
粗略扫盲,太过随性的定义像lib_misc的代码一样整本书都是
非常好的书。学些Erlang不仅可以帮助你成为更好的程序员,还可以帮助你成为更好的运维。
erlang学习参考书
下载
收藏