Java減肥後輕量級語言:Scala全方位程式開發

  • 9 486
    540

配送方式

  • 台灣
    • 國內宅配:本島、離島
    • 到店取貨:
      金石堂門市 不限金額免運費
      7-11便利商店 ok便利商店 萊爾富便利商店 全家便利商店
  • 海外
    • 國際快遞:全球
    • 港澳店取:
      ok便利商店 順豐 7-11便利商店

內容簡介

本書為作者在Scala學習、實作及教育訓練過程中的心得體會並精心將之系統歸納,絕對是學習Scala語言的絕佳工具書!

全書涵蓋Scala語言的三大主要部分:
1. 基礎篇:介紹Scala語言入門基礎知識、變數的定義、程式控制結構、Scala集合。
2. 中級篇:介紹Scala函數式程式設計、Scala物件導向程式設計、Scala模式比對。
3. 進階篇:介紹Scala類型參數、自動轉型、Scala平行處理程式設計、Scala與Java互動操作。

適用:Scala語言初學者、有興趣者,大數據開發人員與框架運維工程師、軟體培訓機構以及電腦相關科系學生。

書附內容
本書範例可至佳魁資訊官網下載

作者

周志湖

電子科技大學電腦軟體與理論碩士,研究機器學習與模式識別,任職綠城房地產集團資訊管理部,擔任平台架構師、資料開發主管。對傳統資料倉、基於Hadoop和Spark的大資料倉架構有深入的研究。

牛亞真

中國科學院大學電腦資訊處理與檢索方向碩士,Hadoop大資料工程師,目前主要從事分散式環境下的資料分析、資料採擷相關工作。

目錄

Chapter 01 Scala入門
1.1 Scala簡介
1.2 Scala開發環境架設
1.3 Scala Hello World
1.4 Intellij IDEA常用快捷鍵
1.5 互動式指令行使用

Chapter 02 變數及基本資料型別
2.1 變數
2.2 基本資料型態
2.3 基本類型操作
2.4 運算子的優先順序
2.5 元組類型
2.6 符號類型

Chapter 03 程式控制結構
3.1 if敘述
3.2 while循環敘述
3.3 for循環敘述

Chapter 04 集合
4.1 集合簡介
4.2 陣列
4.3 列表 (List)
4.4 集合 (Set)
4.5 對應 (Map)
4.6 佇列 (Queue)
4.7 堆疊 (Stack)

Chapter 05 函數
5.1 函數
5.2 值函數
5.3 高階函數
5.4 閉包
5.5 函數柯里化 (Currying)
5.6 部分應用函數
5.7 偏函數

Chapter 06 Scala物件導向程式設計(上)
6.1 類別與物件
6.2 主建構函數
6.3 輔助建構函數
6.4 繼承與多形
6.5 成員存取控制
6.6 抽象類別
6.7 內部類別與內建物件
6.8 匿名類別

Chapter 07 Scala物件導向程式設計(下)
7.1 trait簡介
7.2 trait的使用
7.3 trait與類別
7.4 多重繼承問題
7.5 本身類型

Chapter 08 套件 (package)
8.1 套件的定義
8.2 套件的使用和作用域
8.3 套件物件
8.4 import進階特性

Chapter 09 模式比對
9.1 模式比對簡介
9.2 模式符合的7大類型
9.3 模式比對原理
9.4 正規表示法與模式比對
9.5 for循環中的模式比對
9.6 模式比對與範例類別、範例物件

Chapter 10 自動轉型
10.1 自動轉型簡介
10.2 自動轉型函數
10.3 隱式類別與隱式物件
10.4 隱式參數與隱式值
10.5 自動轉型規則與問題

Chapter 11 型態參數
11.1 類別與類型
11.2 泛型
11.3 類型變數界定
11.4 視圖界定
11.5 上下文界定
11.6 多重界定
11.7 協變與逆變
11.8 進階類型

Chapter 12 Scala平行處理程式設計基礎
12.1 Scala平行處理程式設計簡介
12.2 Actor
12.3 Typed Actor
12.4 Dispatcher
12.5 Router
12.6 容錯

Chapter 13 ScalaJava的互動操作
13.1 Java與Scala集合互動操作
13.2 Scala與Java泛型互動操作
13.3 Scala trait在Java中的使用
13.4 Scala與Java異常處理互動操作

序/導讀

前言

為什麼要寫這本書

Apache Spark、Apache Kafka等以Scala語言實現為基礎的架構在大數據生態圈內佔有舉足輕重的地位,它們某種程度上領導著大數據最先進的技術方向,另外Akka、Apache Gearpump等以Scala語言實現為基礎的架構在大數據生態圈內也備受關注,工業實作已經證明了Scala語言的強大,這使Scala語言近一兩年名聲大噪,進而引起許多程式語言同好及各大公司的親睞,國內外也因此掀起了一場學習Scala語言的熱潮。

Scala語言基於JVM平台,能夠與Java語言進行良好地互動操作,它最大的特點是可以將物件導向程式語言與函數式程式語言的特點結合起來。Scala語言的簡潔性和表達能力,使得Scala語言與Java語言相比,同樣的功能用Scala實現程式量要少很多。Scala語言的許多優點,讓許多業內名家對其推崇備至,這其中便有Java之父James Gosling和Groovy語言創始人James Strachan。

"If I were to pick a language to use today other than Java, it would be Scala."1(如果現在讓我選擇使用除Java之外的一種語言的話,那一定是Scala)——Java之父James Gosling

"Though my tip though for the long term replacement of javac is Scala. I’m very impressed with it! I can honestly say if someone had shown me the Programming in Scala book by Martin Odersky, Lex Spoon & Bill Venners back in 2003 I’d probably have never created Groovy."(我認為將來可能替代javac的就是Scala ,它相當大地震撼了我,老實說如果有人在2003年把Martin Odersky、Lex Spoon和Bill Venners寫的《Programming in Scala》書拿給我,我可能就不會再去發明Groovy語言了)2——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資深使用者,你可以自由閱讀各章內容,相信書中部分內容一定能夠給你帶來一些新的啟發。

勘誤和支援

由於筆者水準有限,加之撰寫時間倉促,書中難免出現一些錯誤或不準確的地方,懇請讀者批評指正。有任何問題,可以透過電子郵件403408607@qq.com聯繫,將盡最大努力為讀者提供對應的解答。

詳細資料

詳細資料

    • 語言
    • 中文繁體
    • 裝訂
    • 紙本平裝
    • ISBN
    • 9789863796473
    • 分級
    • 普通級
    • 頁數
    • 352
    • 商品規格
    • 23*17
    • 出版地
    • 台灣
    • 適讀年齡
    • 全齡適讀
    • 注音
    • 級別

商品評價

訂購/退換貨須知

加入金石堂 LINE 官方帳號『完成綁定』,隨時掌握出貨動態:

加入金石堂LINE官方帳號『完成綁定』,隨時掌握出貨動態
金石堂LINE官方帳號綁定教學

提醒您!!
金石堂及銀行均不會請您操作ATM! 如接獲電話要求您前往ATM提款機,請不要聽從指示,以免受騙上當!

退換貨須知:

**提醒您,鑑賞期不等於試用期,退回商品須為全新狀態**

  • 依據「消費者保護法」第19條及行政院消費者保護處公告之「通訊交易解除權合理例外情事適用準則」,以下商品購買後,除商品本身有瑕疵外,將不提供7天的猶豫期:
    1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮食品)
    2. 依消費者要求所為之客製化給付。(客製化商品)
    3. 報紙、期刊或雜誌。(含MOOK、外文雜誌)
    4. 經消費者拆封之影音商品或電腦軟體。
    5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書、電子雜誌、下載版軟體、虛擬商品…等)
    6. 已拆封之個人衛生用品。(如:內衣褲、刮鬍刀、除毛刀…等)
  • 若非上列種類商品,均享有到貨7天的猶豫期(含例假日)。
  • 辦理退換貨時,商品(組合商品恕無法接受單獨退貨)必須是您收到商品時的原始狀態(包含商品本體、配件、贈品、保證書、所有附隨資料文件及原廠內外包裝…等),請勿直接使用原廠包裝寄送,或於原廠包裝上黏貼紙張或書寫文字。
  • 退回商品若無法回復原狀,將請您負擔回復原狀所需費用,嚴重時將影響您的退貨權益。
金石堂門市 全家便利商店 ok便利商店 萊爾富便利商店 7-11便利商店
World wide