Scala語言基礎與開發實戰

Scala語言基礎與開發實戰
定價:414
NT $ 360
 

內容簡介

本書分為基礎篇、中級篇、高級篇及分布式框架四大部分,從Scala零基礎入門,步步深入,引導讀者由淺入深地學習Scala及其應用。

本書從手把手指引讀者搭建Scala語言開發環境開始,詳細介紹了Scala的語法基礎,以代碼實例形式分別講解了Scala面向對象開發及函數式編程;在此基礎上進一步深入講解了Scala的中高級語法特性,包括模式匹配、集合、類型參數、高級類型、隱式轉化及各語法特性在Spark源碼中的應用解析,並引出Scala的Actor模型及其應用詳解。本書還詳細介紹了以Scala為基礎的兩大框架——Akka和Kafka。

本書每章開始均有重點介紹,以引導讀者有目的、有重點地閱讀或查閱。另外,針對不同語法特性的源碼及應用解析是本書的另一大特點。

本書適合具備一定編程語言基礎、對大數據開發有興趣的在校學生,同時,對有面向對象編程或函數式編程經驗的人員,本書也可以作為開發實例的參考書籍。
 

目錄

前言
基礎篇
第1章 Scala零基礎入門
1.1 Scala概述
1.2 Windows及Linux下Scale運行環境安裝配置
1.2.1 軟件工具准備
1.2.2 Windows環境下的Scala安裝
1.2.3 Linux環境下的Scala安裝
1.2.4 Linux環境下的Hadoop安裝與配置
1.2.5 Linux環境下的Spark安裝與配置
1.3 Scala開發環境搭建和HelloWorld實例
1.3.1 Scala集成開發工具的安裝
1.3.2 HelloWorld編程實例
1.3.3 WorkSheet的使用
1.4 變量的使用
1.4.1 Scala解釋器中的變量示例
1.4.2 val變量的定義
1.4.3 var變量的定義
1.4.4 var變量與val變量的使用比較
1.5 函數的定義、流程控制、異常處理
1.5.1 函數的定義
1.5.2 流程控制(if、while、for)
1.5.3 異常處理
1.6 Tuple、Array、Map與文件操作
1.6.1 Tuple元組
1.6.2 Array數組
1.6.3 文件操作
1.6.4 Map映射
1.7 Scala中的apply方法
1.7.1 Object中的apply
1.7.2 Class中的apply
1.7.3 Array數組的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.7 trait特質
2.7.1 作為接口使用的trait
2.7.2 在對象中混入trait
2.7.3 trait深入解析
2.8 多重繼承、多重繼承構造器執行順序及AOP實現
2.8.1 多重繼承
2.8.2 多重繼承構造器執行順序
2.8.3 AOP實現
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.4 SAM轉換
3.5 Curring函數
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.3 Sealed Class在模式匹配中的應用
4.4 模式匹配應用實例
4.4.1 for循環控制結構中的模式匹配
4.4.2 正則表達式中的模式匹配
4.4.3 異常處理中的模式匹配
4.4.4 Spark源碼中的模式匹配使用
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.11 Spark源碼中的高級類型使用
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.1 Ordering與Ordered特質
8.4.2 視圖界定中的隱式轉換
8.4.3 上下文界定中的隱式轉換
8.5 隱式轉換規則
8.5.1 發生隱式轉換的條件
8.5.2 不會發生隱式轉換的條件
8.6 Spark源碼中的隱式轉換使用
8.6.1 隱式轉換函數
8.6.2 隱式類
8.6.3 隱式參數
8.7 本章小結
第9章 Scala並發編程
9.1 Scala的Actor模型簡介
9.2 Scala Actor的構建方式
9.2.1 繼承Actor類
9.2.2 Actor工具方法
9.3 Actor的生命周期
9.3.1 start方法的等冪性
9.3.2 Actor的不同狀態
9.4 Actor之間的通信
9.4.1 Actor之間發送消息
9.4.2 Actor接收消息
9.5 使用react重用線程提升性能
9.6 Channel通道
9.6.1 OutputChannel
9.6.2 InputChannel
9.6.3 創建和共享channel
9.7 同步和Future
9.8 Scala並發編程實例
9.8.1 Scala Actor並發編程
9.8.2 ExecutorService並發編程
9.9 小結
分布式框架篇
第10章 Akka的設計理念
10.1 Akka框架模型
10.2 創建Actor
10.2.1 通過實現akka.actor.Actor來創建Actor類
10.2.2 使用非缺省構造方法創建 Actor
10.2.3 創建匿名Actor
10.3 Actor API
10.3.1 Actor trait基本接口
10.3.2 使用DeathWatch進行生命周期監控
10.3.3 Hook函數的調用
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.11 Become/Unbecome
10.3.12 殺死Actor
10.4 不同類型的Actor
10.4.1 方法派發語義
10.4.2 終止有類型Actor
10.5 小結
第11章 Akka核心組件及核心特性剖析
11.1 Dispatchers 和 Routers
11.1.1 為Actor指定派發器
11.1.2 派發器的類型
11.1.3 郵箱
11.1.4 Routers
11.1.5 路由的使用
11.1.6 遠程部署router
11.2 Supervision和Monitoring
11.2.1 Supervision
11.2.2 Monitoring
11.3 Akka中的事務
11.3.1 STM
11.3.2 使用STM事務
11.3.3 讀取Agent事務中的數據
11.3.4 更新Agent事務中的數據
11.3.5 Actor中的事務
11.3.6 創建Transactor
11.4 小結
第12章 Akka程序設計實踐
12.1 Akka的配置、日志及部署
12.1.1 Akka中配置文件的讀寫
12.1.2 Akka中日志配置
12.1.3 Akka部署及應用場景
12.2 使用Akka框架實現單詞統計
12.3 分布式Akka環境搭建
12.4 使用Akka微內核部署應用
12.5 Akka框架在Spark中的運用
12.6 小結
第13章 Kafka設計理念與基本架構
13.1 Kafka產生的背景
13.2 消息隊列系統
13.2.1 概述
13.2.2 常用的消息隊列系統對比
13.2.3 Kafka特點及特性
13.2.4 Kafka系統應用場景
13.3 Kafka設計理念
13.3.1 專業術語解析
13.3.2 消息存儲與緩存設計
13.3.3 消費者與生產者模型
13.3.4 Push與Pull機制
13.3.5 鏡像機制
13.4 Kafka整體架構
13.4.1 Kafka基本組成結構
13.4.2 Kafka工作流程
13.5 Kafka性能分析及優化
13.6 Kafka未來研究方向
13.7 小結
第14章 Kafka核心組件及核心特性剖析
14.1 Kafka核心組件剖析
14.1.1 Producers
14.1.2 Consumers
14.1.3 Low Level Consumer
14.1.4 High Level Consumer
14.2 Kafka核心特性剖析
14.2.1 Topic、Partitions
14.2.2 Replication和Leader Election
14.2.3 Consumer Rebalance
14.2.4 消息傳送機制
14.2.5 Kafka的可靠性
14.2.6 Kafka的高效性
14.3 Kafka即將發布版本核心組件及特性剖析
14.3.1 重新設計的Consumer
14.3.2 Coordinator Rebalance
14.4 小結
第15章 Kafka應用實踐
15.1 Kafka開發環境搭建及運行環境部署
15.1.1 Kafka開發環境配置
15.1.2 Kafka運行環境安裝與部署
15.2 基於Kafka客戶端開發
15.2.1 消息生產者(Producer)設計
15.2.2 消息消費者(Consumer)設計
15.2.3 Kafka消費者與生產者配置
15.3 Spark 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配置文檔
參考文獻
網路書店 類別 折扣 價格
  1. 新書
    87
    $360