Scala語言基礎與開發實戰

Scala語言基礎與開發實戰

作者: 王家林
出版社: 機械工業
出版在: 2016-07-26
ISBN-13: 9787111541691
ISBN-10: 7111541693
裝訂格式: 平裝
總頁數: 407 頁





內容描述


本書分為基礎篇、中級篇、高級篇及分佈式框架四大部分,從Scala零基礎入門,步步深入,引導讀者由淺入深地學習Scala及其應用。本書從手把手指引讀者搭建Scala語言開發環境開始,詳細介紹了Scala的語法基礎,以代碼實例形式分別講解了Scala面向對象開發及函數式編程;在此基礎上進一步深入講解了Scala的中高級語法特性,包括模式匹配、集合、類型參數、高級類型、隱式轉化及各語法特性在Spark源碼中的應用解析,並引出Scala的Actor模型及其應用詳解。本書還詳細介紹了以Scala為基礎的兩大框架——Akka和Kafka。
本書每章開始均有重點介紹,以引導讀者有目的、有重點地閱讀或查閱。另外,針對不同語法特性的源碼及應用解析是本書的另一大特點。
本書適合具備一定編程語言基礎、對大數據開發有興趣的在校學生,同時,對有面向對象編程或函數式編程經驗的人員,本書也可以作為開發實例的參考書籍。


目錄大綱


前言 
基础篇 
第1章Scala零基础入门 
11Scala概述 
12Windows及Linux下Scale运行环境安装配置 
121软件工具准备 
122Windows环境下的Scala安装 
123Linux环境下的Scala安装 
124Linux环境下的Hadoop安装与配置 
125Linux环境下的Spark安装与配置 
13Scala开发环境搭建和HelloWorld实例 
131Scala集成开发工具的安装 
132HelloWorld编程实例 
133WorkSheet的使用 
14变量的使用 
141Scala解释器中的变量示例 
142val变量的定义 
143var变量的定义 
144var变量与val变量的使用比较 
15函数的定义、流程控制、异常处理 
151函数的定义 
152流程控制(if、while、for) 
153异常处理 
16Tuple、Array、Map与文件操作 
161Tuple元组 
162Array数组 
163文件操作 
164Map映射 
17Scala中的apply方法 
171Object中的apply 
172Class中的apply 
173Array数组的apply实现 
18小结 
第2章Scala面向对象编程开发 
21类的定义及属性 
211类定义 
212带有getter和setter的属性 
22主构造器、私有构造器、构造器重载 
221构造器重载之辅助构造器 
222主构造器 
223不同访问权限的构造器 
23内部类和外部类 
24单例对象、伴生对象 
25继承:超类的构造、重写字段、重写方法 
251超类的构造 
252重写字段 
253重写方法 
26抽象类、抽象字段、抽象方法 
261抽象类 
262抽象字段 
263抽象方法 
27trait特质 
271作为接口使用的trait 
272在对象中混入trait 
273trait深入解析 
28多重继承、多重继承构造器执行顺序及AOP实现 
281多重继承 
282多重继承构造器执行顺序 
283AOP实现 
29包的定义、包对象、包的引用、包的隐式引用 
291包的定义 
292包对象 
293包的引用 
294包的隐式引用 
210包、类、对象、成员、伴生类、伴生对象访问权限 
2101包、类、对象、成员访问权限 
2102伴生类、伴生对象访问权限 
211小结 
第3章Scala高阶函数 
31匿名函数 
32偏应用函数 
33闭包 
34SAM转换 
35Curring函数 
36高阶函数 
37高阶函数在Spark中的应用 
38小结 
中级篇 
第4章Scala模式匹配 
41模式匹配简介 
42模式匹配类型 
421常量模式 
422变量模式 
423构造器模式 
424序列(Sequence)模式 
425元组(Tuple)模式 
426类型模式 
427变量绑定模式 
43模式匹配与Case Class 
431构造器模式匹配原理 
432序列模式匹配原理 
433Sealed Class在模式匹配中的应用 
44模式匹配应用实例 
441for循环控制结构中的模式匹配 
442正则表达式中的模式匹配 
443异常处理中的模式匹配 
444Spark源码中的模式匹配使用 
45本章小结 
第5章Scala集合 
51可变集合与不可变集合(Collection) 
511集合的概述 
512集合的相关操作 
513集合的操作示例 
52序列(Seq) 
521序列的概述 
522序列的相关操作 
523序列的操作示例 
53列表(List) 
531列表的概述 
532列表的相关操作 
533列表的操作示例 
54集(Set) 
541集的概述 
542集的相关操作 
543集的操作示例 
55映射(Map) 
551映射的概述 
552映射的相关操作 
553映射的操作示例 
56迭代器(Iterator) 
561迭代器的概述 
562迭代器的相关操作 
563迭代器的操作示例 
57集合的架构 
58小结 
高级篇 
第6章Scala类型参数 
61泛型 
611泛型的概述 
612泛型的操作示例 
62界定 
621上下界界定 
622视图界定 
623上下文界定 
624多重界定 
625界定的操作示例 
63类型约束 
631类型约束的概述 
632类型约束的操作示例 
64类型系统 
641类型系统的概述 
642类型系统的操作示例 
65型变Variance 
651协变 
652逆变 
653协变与逆变的操作示例 
66结合Spark源码说明Scala类型参数的使用 
67小结
 
第7章Scala高级类型 
71单例类型 
711单例类型概述 
712单例类型示例 
72类型别名 
721类型别名概述 
722类型别名示例 
73自身类型 
731自身类型概述 
732自身类型示例 
74中置类型 
741中置类型概述 
742中置类型示例 
75类型投影 
751类型投影概述 
752类型投影实例 
76结构类型 
761结构类型概述 
762结构类型示例 
77复合类型 
771复合类型概述 
772复合类型示例 
78存在类型 
781存在类型概述 
782存在类型示例 
79函数类型 
791函数类型概述 
792函数类型示例 
710抽象类型 
7101抽象类型概述 
7102抽象类型实例 
711Spark源码中的高级类型使用 
712本章小结 
第8章Scala隐式转换 
81隐式转换函数 
811隐式转换函数的定义 
812隐式转换函数的功能 
82隐式类与隐式对象 
821隐式类 
822隐式参数与隐式值 
83类型证明中的隐式转换 
831类型证明的定义 
832类型证明使用实例 
84上下文界定、视图界定中的隐式转换 
841Ordering与Ordered特质 
842视图界定中的隐式转换 
843上下文界定中的隐式转换 
85隐式转换规则 
851发生隐式转换的条件 
852不会发生隐式转换的条件 
86Spark源码中的隐式转换使用 
861隐式转换函数 
862隐式类 
863隐式参数 
87本章小结 
第9章Scala并发编程 
91Scala的Actor模型简介 
92Scala Actor的构建方式 
921继承Actor类 
922Actor工具方法 
93Actor的生命周期 
931start方法的等幂性 
932Actor的不同状态 
94Actor之间的通信 
941Actor之间发送消息 
942Actor接收消息 
95使用react重用线程提升性能 
96Channel通道 
961OutputChannel 
962InputChannel 
963创建和共享channel 
97同步和Future 
98Scala并发编程实例 
981Scala Actor并发编程 
982ExecutorService并发编程 
99小结 
分布式框架篇 
第10章Akka的设计理念 
101Akka框架模型 
102创建Actor 
1021通过实现akkaactorActor来创建Actor类 
1022使用非缺省构造方法创建 Actor 
1023创建匿名Actor 
103Actor API 
1031Actor trait基本接口 
1032使用DeathWatch进行生命周期监控 
1033Hook函数的调用 
1034查找Actor 
1035消息的不可变性 
1036发送消息 
1037转发消息 
1038接收消息 
1039回应消息 
10310终止Actor 
10311Become/Unbecome 
10312杀死Actor 
104不同类型的Actor 
1041方法派发语义 
1042终止有类型Actor 
105小结 
第11章Akka核心组件及核心特性剖析 
111Dispatchers 和 Routers 
1111为Actor指定派发器 
1112派发器的类型 
1113邮箱 
1114Routers 
1115路由的使用 
1116远程部署router 
112Supervision和Monitoring 
1121Supervision 
1122Monitoring 
113Akka中的事务 
1131STM 
1132使用STM事务 
1133读取Agent事务中的数据 
1134更新Agent事务中的数据 
1135Actor中的事务 
1136创建Transactor 
114小结 
第12章Akka程序设计实践 
121Akka的配置、日志及部署 
1211Akka中配置文件的读写 
1212Akka中日志配置 
1213Akka部署及应用场景 
122使用Akka框架实现单词统计 
123分布式Akka环境搭建 
124使用Akka微内核部署应用 
125Akka框架在Spark中的运用 
126小结 
第13章Kafka设计理念与基本架构 
131Kafka产生的背景 
132消息队列系统 
1321概述 
1322常用的消息队列系统对比 
1323Kafka特点及特性 
1324Kafka系统应用场景 
133Kafka设计理念 
1331专业术语解析 
1332消息存储与缓存设计 
1333消费者与生产者模型 
1334Push与Pull机制 
1335镜像机制 
134Kafka整体架构 
1341Kafka基本组成结构 
1342Kafka工作流程 
135Kafka性能分析及优化 
136Kafka未来研究方向 
137小结 
第14章Kafka核心组件及核心特性剖析 
141Kafka核心组件剖析 
1411Producers 
1412Consumers 
1413Low Level Consumer 
1414High Level Consumer 
142Kafka核心特性剖析 
1421Topic、Partitions 
1422Replication和Leader Election 
1423Consumer Rebalance 
1424消息传送机制 
1425Kafka的可靠性 
1426Kafka的高效性 
143Kafka即将发布版本核心组件及特性剖析 
1431重新设计的Consumer 
1432Coordinator Rebalance 
144小结 
第15章Kafka应用实践 
151Kafka开发环境搭建及运行环境部署 
1511Kafka开发环境配置 
1512Kafka运行环境安装与部署 
152基于Kafka客户端开发 
1521消息生产者(Producer)设计 
1522消息消费者(Consumer)设计 
1523Kafka消费者与生产者配置 
153Spark Streaming整合Kafka 
1531基本架构设计流程 
1532消息消费者(Consumer)设计——基于Receiver方法 
1533消息消费者(Consumer)设计——基于No Receiver方法 
1534消息生产者(Producer)设计 
154小结 
附录Kafka集群serverproperties配置文档 
参考文献




相關書籍

The Tcl Programming Language: A Comprehensive Guide

作者 Ashok P. Nadkarni

2016-07-26

王者歸來 Java Web 整合開發-JSP + Servlet + Struts + Hibernate + Spring, 3/e

作者 劉京華

2016-07-26

精通 Windows Server 2016 (第6版)

作者 [美]布萊恩·斯維德哥爾(Brian Svidergol) 弗拉迪米爾·梅洛斯基(Vladimir Meloski) 拜倫·賴特(Byron Wright) 桑托斯·馬丁

2016-07-26