具体描述
《Erlang编程(影印版)》深入介绍了Erlang,这是一门满足高并发、容错和快速响应等苛刻要求的理想编程语言。随着多核CPU以及与之俱来的新并发扩展方式崭露头角,Erlang正在获得更广泛的接受和应用。只要拥有这本指南,无论此前的编程水平或经验如何,你都将学会用Erlang编写复杂的并发程序。
《Erlang编程》由Erlang国际社区的两位领袖级人物基于他们的培训教材撰写,重点解析该语言的语法和语义,并详细阐述模式匹配、严格列表(proper lists)、递归、调试、网络与并发等重要概念的精髓要义。
《Erlang编程(影印版)》可以帮助你:理解并掌握Erlang的诸多强项,以及其设计者潜心设计的各种特性;学习并发背后的概念和Erlang相应的处理方法;编写高效的Erlang程序,并且保持代码整洁易读;发现Erlang如何满足分布式系统的需求;小试牛刀,添加简单图形用户界面;学习Erlang的追踪机制,用于调试并发和分布式系统;使用内嵌的Mnesia数据库和其他表存储特性。
无论你是新手还是富有经验的Erlang开发者,《Erlang编程》都是案头必备的重要参考资料。
作者简介
Francesco Cesarini 14年来一直向学生、开发人员、测试人员、项目和技术经理教授Erlang/OTP技术。他协助在爱尔兰、美国和英国建立起了Erlang开发中心。
Simon Thompson是一位肯特大学计算机实验室的逻辑和计算学教授,在过去25年里,他在那里教授本科生和研究生的计算学课程。
目录信息
Why Should I Use Erlang?
The History of Erlang
Erlangs Characteristics
High-Level Constructs
Concurrent Processes and Message Passing
Scalable, Safe, and Efficient Concurrency
Soft Real-Time Properties
Robustness
Distributed Computation
Integration and Openness
Erlang and Multicore
Case Studies
The AXD301 ATM Switch
CouchDB
Comparing Erlang to C++
How Should I Use Erlang?
2.basic erlang integers
the erlang shell
floats
atoms
booleans
tuples
lists
term comparison
variables
complex data structures
pattern matching
functions
modules
exercises
3.sequential erlang conditional evaluations
guards
built-in functions
recursion
runtime errors
handling errors
library modules
the debugger
exercises
4.concurrent programming creating processes
message passing
receiving messages
registered processes
timeouts
benchmarking
process skeletons
tail recursion and memory leaks
a case study on concurrency-oriented programming
race conditions, deadlocks, and process starvation
the process manager
exercises
5.process design patterns client/server models
a process pattern example
finite state machines
event managers and handlers
exercises
6.process error handling process links and exit signals
robust systems
exercises
7.records and macros records
macros
exercises
8.software upgrade upgrading modules
behind the scenes
upgrading processes
the .erlang file
exercise
9.more data types and high-level constructs functional programming for real
funs and higher-order functions
list comprehensions
binaries and serialization
references
exercises
10.ets and dets tables ets tables
dets tables
a mobile subscriber database example
exercises
11.distributed programming in erlang distributed systems in erlang
distributed computing in erlang: the basics
the epmd process
exercises
12.otp behaviors introduction to otp behaviors
generic servers
supervisors
applications
release handling
other behaviors and further reading
exercises
13.introducing mnesia when to use mnesia
configuring mnesia
transactions
partitioned networks
further reading
exercises
14.gui programming with wxerlang wxwidgets
wxerlang: an erlang binding for wxwidgets
a first example: microblog
the miniblog example
obtaining and running wxerlang
exercises
15.socket programming user datagram protocol
transmission control protocol
the inet module
further reading
exercises
16.interfacing erlang with other programming languages an overview of interworking
interworking with java
c nodes
erlang from the unix shell: erl_call
port programs
library support for communication
linked-in drivers and the ffi
exercises
17.trace bifs, the dbg tracer, and match specifications introduction
the trace bifs
tracing calls with the trace_pattern bif
the dbg tracer
match specifications: the fun syntax
match specifications: the nuts and bolts
further reading
exercises
18.types and documentation types in erlang
typer: success types and type inference
documentation with edoc
exercises
19.eunit and test-driven development test-driven development
eunit
the eunit infrastructure
testing state-based systems
testing concurrent programs in erlang
exercises
20.style and efficiency applications and modules
processes and concurrency
stylistic conventions
coding strategies
efficiency
and finally
appendix: using erlang
index
· · · · · · (收起)
读后感
各种语句翻译得和机器翻译一样不明所以,关键还有大量的翻译错误,造成理解上的困难(尤其对于 erlang 新手)。 同时和以前即有的amstrong的翻译版的术语有些不统一,看得出来译者很没有诚意。 强烈不推荐看此翻译版! 勉强看完一次,已再次入影印版。 影印版推荐。
o'reilly的素质没什么可以怀疑的,和armstrong的不同之处是此书似乎偏重实战,而不全是语言的描述。 更难得的是国内已经开始翻译了,erlang能在国内竟有如此待遇。。
各种语句翻译得和机器翻译一样不明所以,关键还有大量的翻译错误,造成理解上的困难(尤其对于 erlang 新手)。 同时和以前即有的amstrong的翻译版的术语有些不统一,看得出来译者很没有诚意。 强烈不推荐看此翻译版! 勉强看完一次,已再次入影印版。 影印版推荐。
误买的英文影印版,到手后有点害怕。想退,但发现网友说中文版翻译不好,而且又贵了10几块,所以取消了退货。 现在在看英文原版,原来真没有语言上的难度。贵在坚持。 看英文原版,不用担心译者将“atom”译成项元。不用担心译者那不顺畅的言语组织。
随着多内核处理器的流行,如果开发高效的并行程序成了程序设计语言开发者们头疼的事情,Erlang作为一门不新的语言在这个时候成了计算机科学界的宠儿,其面对函数的程序设计思想,无side-effect的变量运用,高效和安全的消息传递以及模块热插拔的概念,使这门诞生于80年代的语言...
用户评价
这本书对于Erlang的错误处理和容错机制的阐述,更是让我惊叹不已。作者详细介绍了Erlang的“let it crash”哲学,以及与之配套的监督树(supervision trees)机制。他通过生动形象的比喻,解释了如何构建一个能够自我修复、自我恢复的系统,让我对Erlang在构建高可靠性系统方面的优势有了更深刻的理解。书中提供的代码示例,展示了如何定义不同的监督策略,以及如何让系统在面对各种故障时,能够优雅地应对并快速恢复。
总而言之,这本书不仅仅是一本Erlang的入门指南,更是一部能够引领读者深入理解Erlang精髓的宝典。作者的讲解风格严谨而不失风趣,技术内容深入浅出,代码示例丰富且贴近实战。阅读这本书,我不仅掌握了Erlang的核心语法和函数式编程思想,更重要的是,我开始真正理解Erlang在构建高并发、高可用、高容错分布式系统方面的独特优势,也为我未来在相关领域的探索奠定了坚实的基础。
一直以来,我都对函数式编程的严谨和优雅充满了好奇,尤其是ErLang,这个在并发和容错性方面独树一帜的语言,更是让我跃跃欲试。在翻阅了市面上一些资料后,我终于找到了这本《Erlang编程》。从它的封面设计,我就感受到了一种沉静而专业的氛围。翻开第一页,作者的开篇便以一种娓娓道来的方式,勾勒出Erlang的历史渊源和其独特的哲学理念,让我迅速沉浸其中。我尤其喜欢作者在介绍Erlang的进程模型时,那种由浅入深,层层递进的讲解方式。他没有直接抛出复杂的术语,而是从现实世界中的“人”与“通信”这样一个更易于理解的场景切入,逐渐引申到Erlang的Actor模型。这种类比不仅生动形象,而且让我一下子就抓住了Erlang最核心的精髓。
对于Erlang的数据库交互和持久化方面,这本书也给出了详尽的介绍。作者不仅介绍了Erlang内置的一些基本数据存储机制,还重点讲解了如何集成外部的数据库系统,例如Mnesia和PostgreSQL。我特别喜欢作者在讲解Mnesia时,那种由浅入深,从基本概念到高级特性的循序渐进的引导。书中提供的代码示例,展示了如何利用Erlang强大的模式匹配和内置函数,高效地进行数据查询、更新和删除操作,让我对Erlang在数据处理方面的能力有了更全面的认识。
在学习Erlang的模式匹配时,我曾一度感到有些困惑,但这本书的讲解方式彻底颠覆了我的认知。作者将模式匹配比作一种“智能的解构”工具,它不仅仅是简单的相等比较,更是一种强大的数据提取和流程控制手段。书中提供了大量不同场景下的模式匹配示例,从简单的变量绑定到复杂的列表、元组和记录匹配,每一个例子都让我豁然开朗。我尤其喜欢作者在介绍`case`语句和函数头部的模式匹配时,那种循序渐进的引导,让我能够逐渐掌握这种强大的语言特性,并能够将其灵活地运用到实际的编程中。
在函数式编程的学习过程中,我一直对Erlang的OTP(Open Telecom Platform)框架感到好奇。这本书的讲解让我真正理解了OTP的强大之处。作者深入浅出地介绍了OTP中的Supervisor、GenServer、Application等核心组件,并详细阐述了它们之间的协同工作机制。我特别喜欢作者在解释GenServer的生命周期和状态管理时,那种清晰的逻辑和详细的步骤。通过书中的实例,我不仅学会了如何利用OTP构建健壮的应用程序,更领略到了Erlang在构建大规模分布式系统方面的独特魅力。
这本书在解释Erlang的进程间通信机制时,也给我留下了深刻的印象。作者并没有仅仅停留在“发送消息”这个层面,而是详细阐述了消息的传递方式、消息队列的工作原理,以及如何通过模式匹配来高效地处理接收到的消息。我特别欣赏他关于“不可变性”概念的讲解,它解释了为什么Erlang的进程在传递消息时,不会因为修改而产生副作用,这对于理解Erlang强大的并发能力至关重要。书中通过一系列精心设计的代码示例,清晰地展示了如何构建具有高可用性和容错性的分布式系统。每一个示例都经过了细致的分析,让我能够理解其背后的设计思想和技术细节。
在学习Erlang的模块化和代码组织方面,这本书提供了非常有价值的指导。作者不仅介绍了Erlang模块的基本结构,还深入探讨了如何利用导出函数、私有函数以及记录(records)来组织和管理代码。我特别欣赏作者在讲解模块化设计时,强调的“低耦合、高内聚”原则,这对于编写可维护、可重用的Erlang代码至关重要。书中通过一系列实际的项目开发案例,展示了如何将Erlang的模块化特性发挥到极致,从而构建出结构清晰、易于维护的大型应用程序。
这本书在讲解Erlang的语法特性时,也展现了作者的功力。作者并没有机械地列举语法规则,而是通过大量贴合实际场景的代码示例,让读者在实践中学习和掌握Erlang的语法。我特别欣赏作者在讲解递归函数和列表推导式时,那种清晰的逻辑和丰富的例子。这些例子不仅帮助我理解了Erlang的函数式编程范式,还让我学会了如何编写简洁、高效的Erlang代码,能够更轻松地解决各种编程难题。
这本书对于Erlang的并发模型,特别是进程(process)和消息传递(message passing)的讲解,让我耳目一新。作者用非常直观的方式,将Erlang的进程比作独立的“小信使”,它们之间通过异步消息进行通信,而不是共享内存。这种模型的设计,让我立刻理解了Erlang为何能够在并发场景下表现如此出色。书中通过大量的代码片段,演示了如何创建、管理和通信这些进程,以及如何利用这些特性来解决复杂的并发问题,例如同时处理多个客户端请求,或者构建高并发的网络服务。
内容的罗列,对于有经验的程序员不错。
内容的罗列,对于有经验的程序员不错。
图文并茂,基础知识点说得很清楚。
图文并茂,基础知识点说得很清楚。
内容的罗列,对于有经验的程序员不错。