高手昇級: 可完全取代Java的Scala | 誠品線上

高手昇級: 可完全取代Java的Scala

作者 周志湖/ 牛亞真
出版社 佳魁資訊股份有限公司
商品描述 高手昇級: 可完全取代Java的Scala:贯資深大數據工程師開發經驗分享贯循序漸進介紹Scala核心語法贯透過實際操作用Scala進行應用開發本書是作者在Scala學習、工作實作及教育

內容簡介

內容簡介 資深大數據工程師開發經驗分享循序漸進介紹Scala核心語法透過實際操作用Scala進行應用開發本書是作者在Scala 學習、工作實作及教育訓練過程中的心得體會和系統歸納,是學習Scala進行應用開發必備工具書。本書涵蓋三大主要部分:(1) Scala 語言基礎篇,主要介紹Scala 語言入門基礎知識、變數的定義、程式控制結構、Scala 集合。(2) Scala 語言中級篇,主要介紹Scala 函數式程式設計、Scala 物件導向程式設計、Scala 模式比對。(3) Scala 語言進階篇,主要介紹Scala 類型參數、自動轉型、Scala 平行處理程式設計、Scala 與Java 互動操作。全書運用大量的實際案例來說明Scala 語言的應用,既能夠掌握核心語法,又能夠了解其背後的深層原理。◎Scala語言初學者、有興趣者,大數據開發人員、大數據框架運維工程師、軟體培訓機構以及電腦相關科系學生。本書範例可至佳魁官網下載

作者介紹

作者介紹 ■作者簡介周志湖電子科技大學電腦軟體與理論碩士,研究機器學習與模式識別,任職綠城房地產集團資訊管理部,擔任平台架構師、資料開發主管。對傳統資料倉、基於Hadoop和Spark的大資料倉架構有深入的研究。牛亞真中國科學院大學電腦資訊處理與檢索方向碩士,Hadoop大資料工程師,目前主要從事分散式環境下的資料分析、資料採擷相關工作。minor-latin;mso-fareast-font-family:新細明體;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin"">

產品目錄

產品目錄 前言Chapter01 Scala 入門1.1 Scala 簡介1.2 Scala 開發環境架設1.3 Scala Hello World1.4 Intellij IDEA 常用快捷鍵1.5 互動式指令行使用Chapter02 變數及基本資料型別2.1 變數2.2 基本資料型態2.3 基本類型操作2.4 運算子的優先順序2.5 元組類型2.6 符號類型Chapter03 程式控制結構3.1 if 敘述3.2 while 循環敘述3.3 for 循環敘述Chapter04 集合4.1 集合簡介4.2 陣列4.3 列表(List)4.4 集合(Set)4.5 對應(Map)4.6 佇列(Queue)4.7 堆疊(Stack)Chapter05 函數5.1 函數5.2 值函數5.3 高階函數5.4 閉包5.5 函數柯里化(Currying)5.6 部分應用函數5.7 偏函數Chapter06 Scala 物件導向程式設計(上)6.1 類別與物件6.2 主建構函數6.3 輔助建構函數6.4 繼承與多形6.5 成員存取控制6.6 抽象類別6.7 內部類別與內建物件6.8 匿名類別Chapter07 Scala 物件導向程式設計(下)7.1 trait 簡介7.2 trait 的使用7.3 trait 與類別7.4 多重繼承問題7.5 本身類型Chapter08 套件(package)8.1 套件的定義8.2 套件的使用和作用域8.3 套件物件8.4 import 進階特性Chapter09 模式比對9.1 模式比對簡介9.2 模式符合的7 大類型9.3 模式比對原理9.4 正規表示法與模式比對9.5 for 循環中的模式比對9.6 模式比對與範例類別、範例物件Chapter10 自動轉型10.1 自動轉型簡介10.2 自動轉型函數10.3 隱式類別與隱式物件10.4 隱式參數與隱式值10.5 自動轉型規則與問題Chapter11 型態參數11.1 類別與類型11.2 泛型11.3 類型變數界定11.4 視圖界定11.5 上下文界定11.6 多重界定11.7 協變與逆變11.8 進階類型Chapter12 Scala 平行處理程式設計基礎12.1 Scala 平行處理程式設計簡介12.2 Actor12.3 Typed Actor12.4 Dispatcher12.5 Router12.6 容錯Chapter13 Scala 與Java 的互動操作13.1 Java 與Scala 集合互動操作13.2 Scala 與Java 泛型互動操作13.3 Scala trait 在Java 中的使用13.4 Scala 與Java 異常處理互動操作

商品規格

書名 / 高手昇級: 可完全取代Java的Scala
作者 / 周志湖 牛亞真
簡介 / 高手昇級: 可完全取代Java的Scala:贯資深大數據工程師開發經驗分享贯循序漸進介紹Scala核心語法贯透過實際操作用Scala進行應用開發本書是作者在Scala學習、工作實作及教育
出版社 / 佳魁資訊股份有限公司
ISBN13 / 9789863794844
ISBN10 / 9863794848
EAN / 9789863794844
誠品26碼 / 2681431982004
頁數 / 352
開數 / 18K
注音版 /
裝訂 / P:平裝
語言 / 1:中文 繁體
級別 / N:無

試閱文字

內文 : 前 言
為什麼要寫這本書
Apache Spark、Apache Kafka 等以Scala 語言實現為基礎的架構在大數據生態圈內佔有舉足輕重的地位,它們某種程度上領導著大數據最先進的技術方向,另外Akka、Apache Gearpump 等以Scala 語言實現為基礎的架構在大數據生態圈內也備受關注,工業實作已經證明了Scala 語言的強大,這使Scala 語言近一兩年名聲大噪,進而引起許多程式語言同好及各大公司的親睞,國內外也因此掀起了一場學習Scala 語言的熱潮。
Scala 語言基於JVM 平台,能夠與Java 語言進行良好地互動操作,它最大的特點是可以將物件導向程式語言與函數式程式語言的特點結合起來。Scala語言的簡潔性和表達能力,使得Scala 語言與Java 語言相比,同樣的功能用
Scala 實現程式量要少很多。Scala 語言的許多優點,讓許多業內名家對其推崇備至, 這其中便有Java 之父James Gosling 和Groovy 語言創始人JamesStrachan。
"If I were to pick a language to use today other than Java, it would be Scala."
(如果現在讓我選擇使用除Java 之外的一種語言的話,那一定是Scala)——Java 之父James Gosling
"Though my tip though for the long term replacement of javac is Scala. I'mvery impressed with it! I can honestly say if someone had shown me theProgramming in Scala book by Martin Odersky, Lex Spoon & Bill Vennersback in 2003 I'd probably have never created Groovy."(我認為將來可能替代javac 的就是Scala ,它相當大地震撼了我,老實說如果有人在2003 年把Martin Odersky、Lex Spoon 和Bill Venners 寫的《Programming in Scala》書拿給我,我可能就不會再去發明Groovy 語言了)——Groovy(另一種以JVM平台為基礎的語言)創始人James Strachan。
目前中文Scala 方面教材的短缺某種程度上限制了Scala 語言的普及,本書試圖彌補這一空白。
本書內容
本書是筆者在Scala 學習、工作實作及教育訓練過程中的心得體會和系統歸納。內容涵蓋Scala 語言基礎知識,包含變數的定義、程式控制結構、Scala集合操作;Scala 語言中級知識,包含Scala 函數式程式設計、Scala 物件導向程式設計、Scala 模式比對;Scala 語言進階程式設計知識,包含Scala 類型參數、自動轉型、Scala 平行處理程式設計、Scala 與Java 互動操作。書中利用大量的實際案例來說明Scala 語言的應用,既能夠掌握核心語法,又能夠了解其背後的深層原理。
適合讀者群
(1)Spark、Kafka 等架構延伸開發人員
Spark、Kafka 等大數據處理 架構目前在穩定性、擴充性方面雖然已經獲得了長足的進步,但在實際使用時難免遇到問題,此時需要深入到核心原始程式碼中分析問題,在了解其架構原理與實現細節的基礎上透過修改核心原始程式碼來解決問題,這需要開發人員有很強的Scala 語言功力。
(2)Spark、Kafka 等架構應用程式開發人員
在學習Spark、Kafka 等Scala 語言實現的大數據技術架構時,這些架構大多都提供了Java、Scala、Python 等上層應用API 程式設計介面,但僅學會使用其上層API 是不夠的,因為上層API 抽象程度較高,各架構的底層實現細節、設計原理等對開發人員來說是一個黑盒子,在遇到效能等問題時,開發人員如果對底層實現細節不熟悉的話可能很難進行程式的效能最佳化。
(3)Spark、Kafka 等架構運行維護工程師
目前Spark、Kafka 等大數據處理架構基本上已經成為各大公司大數據解決方案的標準配備,但基於開放原始碼解決方案常常會面臨一些技術風險,架構本身的問題及實際應用場景的不同可能會遇到很多故障,因此對於這些使用Scala 語言實現的架構而言,運行維護工程師也需要知曉各架構的底層細節,這樣才能夠迅速定位問題並找到合適的解決辦法。
(4)從事大數據技術的Java 開發人員
Scala 語言完全相容Java 語言,Scala 語言中大量使用了Java 語言現有的函數庫,因此如果你是一個Java 大數據開發人員,在此建議學習Scala 語言,相信它會給你帶來全新的感受,甚至有拋棄Java 的念頭。
(5)大數據技術開放原始碼同好
Spark、Kafka 等是大數據技術架構中的明星,Scala 語言已經通過了工業界的檢驗,學習Scala 語言為學習這些架構的設計原理打下堅實的基礎,為以後參與開放原始碼、學習工業界最先進的大數據技術架構的優秀思想打下了堅實的基礎。
如何閱讀本書
本書涵蓋三大主要部分:
(1) Scala 語言基礎篇,主要介紹Scala 語言入門基礎知識、變數的定義、程式控制結構、Scala 集合。
(2) Scala 語言中級篇,主要介紹Scala 函數式程式設計、Scala 物件導向程式設計、Scala 模式比對。
(3) Scala 語言進階篇,主要介紹Scala 類型參數、自動轉型、Scala 平行處理程式設計、Scala 與Java 互動操作。
如果你是一名初學者,請按照書的順序從第一章基礎理論部分開始學習,學習時先認真看書中的程式範例和說明,然後照著程式親自動手實作,這樣可以達到事半功倍的學習效果;如果你是一名Scala 資深使用者,你可以自由閱讀各章內容,相信書中部分內容一定能夠給你帶來一些新的啟發。
資源下載
本書程式可以從本公司官網http://www.topteam.cc 下載。
勘誤和支援
由於筆者水準有限,加之撰寫時間倉促,書中難免出現一些錯誤或不準確的地方,懇請讀者批評指正。有任何問題,可以透過電子郵件403408607@qq.com 聯繫,將盡最大努力為讀者提供對應的解答。