Elixir 程序设计

Elixir 程序设计 下载 mobi epub pdf 电子书 2024


简体网页||繁体网页
[美] Dave Thomas(大卫·托马斯) 著,杜万,黄明信 译



点击这里下载
    


想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

发表于2024-11-05

类似图书 点击查看全场最低价

图书介绍

出版社: 电子工业出版社
ISBN:9787121282645
版次:1
商品编码:11900577
品牌:Broadview
包装:平装
开本:16开
出版时间:2016-04-01
用纸:胶版纸
页数:340
正文语种:中文


相关图书





图书描述

编辑推荐

适读人群 :程序员,以及对函数式编程感兴趣的开发者

  学习函数式编程的入门好书

  用一种更优雅、更高效的方式开发高性能的并发软件

内容简介

  《Elixir 程序设计》作者就是15 年前编写了Programming Ruby,将Ruby 带入大众视野的Dave Thomas。这一次他延续了一贯的写作风格,以一个拥有面向对象的开发经历但并未接触过函数式编程的开发者的角度切入,循序渐进地带领读者进入 Elixir 的奇妙世界。通过一步步的实验探索,引导读者逐步跳出已有的编程思维模式,以全新的函数式编程方式来思考及寻找解决实际问题的办法。然而本书并不像Programming Ruby 那样面面俱到,而是给读者讲述基本的Elixir 语法和编程思想,同时提供许多有用的资源,启发读者继续深入探索。这也是学习一门新语言的乐趣所在。

  如果你对函数式编程有兴趣,或者你正在苦苦寻求一种高效的并发编程的方法,Elixir 可以作为入门之选,值得一试。

作者简介

  杜万,毕业于同济大学,就职于 Coding.NET,目前负责 WebIDE 项目和 CodeInsight 项目的架构和研发。从事了近10年以 Java 语言为主的软件开发工作,热衷于整合框架和开发工具,关注交互设计,喜欢写技术博客

  黄明信,毕业于岭南师范学院,就职于 Coding.NET,主要负责后台应用服务的研发。喜欢折腾机器和编程领域的各种玩意儿,专注于软件开发效率的提升和代码表达能力的优化。典型的射手座,兴趣广泛,但只为代码而活。

精彩书评

  Dave Thomas 再一次做到了:《Elixir 程序设计》成为了每本编程书籍都渴望与之比肩的目标。它不是简单地教授语法和举几个刻板的例子,而是引导你如何以Elixir 的方式思考。

  ——Bruce Tate

  icanmakeitbetter.com公司CTO,技术作家

  在《Elixir 程序设计》里,David 出色地介绍了函数式编程,他以一种有趣、实用、充满灵感的方式教我们重新思考如何用不同的方法来设计程序。随着阅读的深入,你会不时会心一笑,因为你发现 Elixir 的某方面可以让你用一种新的、更优雅的方式来解决问题,而且这种方式非常自然和直观,我们这些编程人员必须马上应用起来才行。

  这本书详细地介绍了 Elixir 及其工具,旨在使开发过程更加流畅和富有成效。Dave 解释了 Erlang 运行时系统的核心部件,如分布式、并发和容错,它们为 Elixir 提供了编写可扩展、适应性强的应用程序的能力。

  ——Alexei Sholik

  顺序编程的时代已经过去,如今高性能、可扩展和容错的软件都是并发的。Elixir 是这个全新世界里的关键角色,它将 Erlang 和 OTP 的能力带给更广泛的受众。阅读本书吧,为迎接软件开发新时代开个好头。

  ——Paul Butcher

  《七周七并发模型》的作者

  就像镐头书之于 Ruby,这本书是 Elixir 的事实标准。Dave 以他无可挑剔的风格,全面介绍了Elixir 语言的各方面,包括数据结构、宏、OTP,甚至 Dialyzer。阅读本书是一种享受,因为它带领读者学习 Elixir,并带领他们参与编写函数式程序的整个思维过程。

  如果你想快速掌握 Elixir 语言,《Elixir 程序设计》是你的优先选择。

  ——Jim Freeze

  首届世界Elixir 会议的组织者

  这无疑将成为 Elixir 的镐头书。……Dave 很兴奋地带领读者进入迷人的 Elixir 世界。对于对 Elixir 感兴趣的每一位程序员而言,本书值得拥有。

  ——Dan Kozlowski

  《Elixir 程序设计》是Dave Thomas 的另一佳作。在此之前我尝试的几个函数式编程语言都让我备受挫折。你能感觉到Dave 的热情和在每一章节使用该语言时的喜悦。他会让你以从未想到过的方式来思考解决问题的办法。这本书让我彻底改变了在思考各种语言编程的改进时的方式。

  ——Richard Bishop

  我真的很享受阅读这本书。它不只是一股脑儿地介绍一些语法或特性;总的来说,我认为它对 Elixir 和函数式编程做了非常周到的介绍。

  ——Cody Russe

目录

第1 章 接受现实 1

编程时应该关注数据转换 1

借助管道来组合转换 2

函数是数据转换器 3

安装 Elixir 3

运行 Elixir 4

iex—交互式 Elixir 4

编译和运行 8

对阅读本书的建议 9

练习 9

换一种方式思考 10

第一部分 常规编程

第2 章 模式匹配 12

赋值:并非如你所料 12

更复杂的匹配 13

轮到你了15

用_(下画线)忽略匹配值 15

每次匹配变量仅绑定一次 15

轮到你了17

从另一个角度来看等号 17

第3 章 不可变性 18

你已经拥有了(一些)不可变数据 18

不可变的数据才是已知的 19

不可变性对性能的影响 20

复制数据20

垃圾回收20

用不可变数据编写程序 21

第4 章 Elixir 基础 22

内置类型 22

值类型 23

整数 23

浮点数 23

原子 24

区间 24

正则表达式 24

系统类型 25

PID 和端口 25

引用 25

收集类型 26

元组 26

列表 27

散列表 28

二进制型29

命名、源文件、约定、运算符和其他 30

真值 30

运算符 31

小结 32

第5 章 匿名函数 33

函数和模式匹配 34

轮到你了35

一个函数,多个函数体 35

编写更长的代码 36

轮到你了37

能返回函数的函数 37

记住原始环境的函数 38

参数化函数 39

轮到你了39

将函数作为参数来传递 40

& 运算符 40

轮到你了42

函数是核心 42

第6 章 模块与命名函数 43

编译模块 43

函数体是代码块 44

轮到你了45

函数调用与模式匹配 45

轮到你了48

哨兵子句 48

哨兵子句的限制 49

默认参数 50

轮到你了53

私有函数 53

|> ——美妙的管道运算符 54

模块 55

模块指令57

import 指令 57

alias 指令 58

require 指令 58

模块属性 58

模块名:Elixir、Erlang 和原子类型 59

调用 Erlang 的库函数 60

寻找函数库 60

轮到你了61

第7 章 列表与递归 62

头部和尾部 62

使用头部和尾部来处理列表 63

iex 如何显示列表 64

使用头部和尾部来构造列表 66

创建映射函数 67

在递归过程中跟踪值 68

轮到你了69

生成求和函数 69

轮到你了70

更复杂的列表模式 71

列表的列表 71

轮到你了74

List 模块实战 75

与列表友好相处 76

第8 章 字典:散列表、散列字典、关键字列表、集合与结构体 77

如何在散列表、散列字典和关键字列表之间做选择 77

字典 78

模式匹配和更新散列表 79

模式匹配不能绑定键 81

更新散列表 82

散列表与结构体 82

访问结构体的另一种方式 84

嵌套字典结构 85

嵌套访问器和非结构体 86

动态(运行时)嵌套访问器 87

集合 88

能力越大,诱惑越大 89

第9 章 番外篇—类型是什么 90

第10 章 处理收集—Enum 与Stream 92

Enum——处理收集 92

关于排序的说明 95

轮到你了96

Stream——延迟处理的枚举类型 96

流是可组合的枚举器 97

无限流 99

自定义流99

流在实际中的应用 104

Collectable 协议 104

推导式 105

推导式也可以处理二进制位 106

作用域与推导式 107

推导式的返回值 107

轮到你了108

感动过往的神 109

第11 章 字符串与二进制型 110

字符串字面量 110

Heredoc 111

魔术符 112

“字符串”这个名称 113

单引号字符串——字符编码列表 114

轮到你了116

二进制型 117

双引号字符串是二进制型 118

字符串与Elixir 库 118

轮到你了124

二进制型与模式匹配 124

用二进制型来处理字符串 124

轮到你了125

熟悉却又陌生 126

第12 章 控制流 127

if 与 unless 127

cond 128

case 131

抛出异常 133

包含异常的设计 133

四两拨千斤 134

轮到你了134

第13 章 组织项目 136

项目:从 GitHub 获取 issue 136

我们的代码将如何工作 137

任务:用mix 来创建我们的新项目 137

创建项目树 138

转换:解析命令行 140

进阶:编写一些基本的测试 142

轮到你了144

转换:从 GitHub 获取数据 144

任务:使用外部库 145

寻找库 146

为项目添加库 146

轮到你了148

回到转换148

转换:转换响应内容 151

不在 hex 里的依赖项 152

应用程序配置 152

转换:为数据排序 153

转换:取前n 条 155

轮到你了156

转换:格式化表格 156

任务:创建命令行可执行程序 159

任务:添加日志 161

任务:测试代码注释 163

任务:创建项目文档 167

使用转换数据的方法来编写代码 169

轮到你了170

第14 章 运用多进程 172

简单的进程 173

在进程间发送消息 174

处理多条消息 175

递归、循环与栈 178

进程开销 178

轮到你了181

进程何时结束 182

关联两个进程 183

监控进程185

轮到你了186

并行map——Erlang 版本的“Hello, World” 186

轮到你了187

斐波那契数服务器 188

任务调度器 189

轮到你了192

代理——一个难题 192

以进程的方式来思考 194

第15 章 节点——分布式服务的关键 195

命名节点 195

轮到你了197

节点、cookie 与安全 198

给你的进程命名 199

何时给进程命名 202

轮到你了202

I/O、PID 与节点 203

轮到你了204

节点是分布式的基础 205

第16 章 OTP:服务器 206

一些 OTP 的定义 206

OTP 服务器 207

状态和单个服务器 207

我们的第一个 OTP 服务器 208

轮到你了210

单向调用210

跟踪服务器的执行情况 212

轮到你了214

GenServer 回调函数 214

给进程命名 216

整理接口 217

轮到你了218

第17 章 OTP:应用程序监视器 220

应用程序监视器与工作进程 220

轮到你了223

管理重启前后的进程状态 223

应用程序监视器是可靠性的核心 229

轮到你了229

第18 章 OTP:应用程序 230

这不是传统的应用程序 230

应用程序规范文件 231

将Sequence 程序转变为OTP 应用程序 231

关于应用参数的更多信息 234

监视是可靠性的基础 234

轮到你了235

热代码交换 235

OTP 很大——难以置信的大 241

轮到你了241

第19 章 任务与代理 242

任务 242

任务与监视 243

代理 244

更大的例子 246

使其分布式运行 248

使用代理与任务,还是GenServer 249

第三部分 更高级的Elixir

第20 章 宏与代码求值 252

实现if 语句 252

宏注入代码 254

装载次序255

quote 函数 256

将内部表示作为代码使用 256

unquote 函数 258

展开列表——unquote_splicing 259

回到我们的myif 宏 260

轮到你了261

使用绑定来注入值 261

宏是卫生的 263

执行代码片段的其他方法 264

宏与运算符 265

深入研究 266

更进一步 266

轮到你了267

第21 章 连接多个模块:行为与use 268

行为 268

定义行为268

声明行为269

use 与 __using__ 270

放到一起——跟踪方法调用 270

使用use 275

轮到你了275

第22 章 协议——多态函数 277

定义协议 277

实现协议 278

可用的类型 279

轮到你了280

协议和结构体 280

内置协议:Access 281

内置协议:Enumerable 282

内置协议:String.Chars 285

内置协议:Inspect 286

协议就是多态 288

轮到你了288

第23 章 更酷的玩意儿 290

自定义魔术符 290

获取选项292

轮到你了293

多应用的 umbrella 项目 294

创建 umbrella 项目 295

创建子项目 295

LineSigil 项目 296

Evaluator 项目 296

连接子项目 297

别急!还有更多炫酷的玩意儿! 299

附录A 异常:raise 与try,catch 与throw 300

附录B 类型规范与类型检查 306


前言/序言

  推荐序

  最开始杜万说请我为他翻译的Elixir 的新书写一篇序,我一头雾水,因为完全没有听说过“Elixir”这个词,我甚至到现在都不知道这个单词应该怎么读,虽然我已经读完了全书。是的,刚才那个句子很长,不好读,然而它的逻辑是正确的。这跟我初步了解Elixir 的感觉差不多,不好理解,但逻辑是正确的。

  虽然我现在很少写代码了,但是作为一个曾经写了十几年代码的人,本书讲述的内容,特别是Elixir 的思想很是让我震撼。我必须承认我并没有彻底理解这本书,很多的细节没有时间去详细实践,但就我不深的理解,已经体会到了这种基于进程的编程思想,以及它带来的变革。

  在我中学开始学习编程的时候,用的是 Pascal。我知道数据结构、算法,我会做题,然而我对软件工程一无所知,不知道如何编写一个完整的应用。后来大学的时候学习Java,才知道 Pascal 是一种面向过程的语言,Java 是面向对象的语言。然而我花了很久才理解了什么叫作“对象”,以及什么叫作面向对象的编程。我清晰地记得 Java 课的第一次作业是编写一个计算器程序。整个程序我只有一个 Java 文件,所有的代码都在这个文件中,活生生用 Java 语言写了一个 Pascal 程序。

  编程思想的转变是困难的。我在读这本书的时候,再一次感受到了编程思想的转变,从面向对象到面向进程。原本在 Java 中非常复杂的多线程、分布式处理方式在 Elixir 中变得无比简单,这也是 Elixir 在现代 IT 系统中的价值:最大化CPU 的处理能力。

  大概一年前,我有一个朋友说他最近在疯狂地研究 Erlang(一种跟 Elixir 接近的语言),他打算说服公司的领导用 Erlang 重做一个系统。当时我觉得他疯了,我对 Erlang不了解,只知道这是一种很奇怪、很小众的编程语言,现在我可以理解那个朋友当时的想法了,他一定有一种脑洞大开的感觉!

  不论你现在是做 APP 开发,传统 Web 开发,还是在中国大红大紫的微信开发,都应该读一读此书,它一定会让你眼前一亮。没有最好的编程语言,只有最合适的编程语言。随着硬件的不断发展,一定会有很多不同于过去常见的编程思想和语言出现,以适应最新的硬件。也许本书的内容不能在你的工作中用到,但这不重要,重要的是思想的碰撞带来的愉悦,以及碰撞后留下的那些思考。

  张海龙,Coding CEO

  2016 年1 月19 日·深圳

  译者序

  还记得第一次得知 Elixir 是 Coding 的冒泡1上 mingshun2 的一句牢骚:“不要咖啡,不要大象,不要蟒蛇,不要红宝石,只要万金油”。这句开发者的唠叨,吸引了我的注意。显然咖啡表示 Java,蟒蛇表示 Python,红宝石表示 Ruby,大象呢?“最好的编程语言,PHP”,一个同事提示道。Google 搜索了一下,果然 PHP 的 logo 是一头大象。“那么万金油呢?”我追问道。同事也一副“什么鬼”的表情,凑过来一起Google 了一番,才知道万金油是 Erlang 虚拟机上的一门语言,相当于 Scala 之于 Java 虚拟机,英文名字叫Elixir。这是 Elixir 程序设计 下载 mobi epub pdf txt 电子书 格式


Elixir 程序设计 mobi 下载 pdf 下载 pub 下载 txt 电子书 下载 2024

Elixir 程序设计 下载 mobi pdf epub txt 电子书 格式 2024

Elixir 程序设计 下载 mobi epub pdf 电子书
想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

用户评价

评分

评分

书的封面有点折痕,其他没有什么问题,懒得换了

评分

函数式编程有点复杂...

评分

好好卡迪啊好好卡迪啊好好卡迪啊好好卡迪啊好好卡迪啊好好卡迪啊好好卡迪啊好好卡迪啊

评分

第二次购买的移动硬盘,质量非常不错,专门用于虚拟机备份?

评分

好......................

评分

老公的书,不懂哈哈哈

评分

不错

评分

正在读,非常好的语言,值得推广

类似图书 点击查看全场最低价

Elixir 程序设计 mobi epub pdf txt 电子书 格式下载 2024


分享链接








相关图书


本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

友情链接

© 2024 book.qciss.net All Rights Reserved. 图书大百科 版权所有