标签
内容简介
《Scala实用指南》是 Venkat Subramaniam 所著 Pragmatic Scala: Create Expressive, Concise, and Scalable Applications 的中文译本,由何品、沈达翻译,人民邮电出版社 2018 年出版。全书以「务实」为最大特点:不追求穷尽语言的所有细节,而是站在 Java 开发者的既有经验上,讲清楚 Scala 究竟能帮你写出什么更简洁、更有表达力的代码。 全书分为四个部分。第一部分「小试牛刀」从 Scala 的特性与设计取舍谈起,带读者上手 REPL、命令行、脚本与编译流程,并逐条对照 Java 与 Scala 在类、元组、参数、字符串插值、访问修饰符等处的差异,帮助读者完成从 Java 到 Scala 的思维切换。第二部分「深入 Scala」聚焦函数值与闭包、柯里化、部分应用函数、Execute Around Method、特质与混入、集合与 for 表达式、模式匹配与提取器、异常处理、递归与尾调用优化等函数式核心技能。第三部分讲并发:惰性求值与并行集合、Akka Actor 模型、隔离可变性与线程安全,并给出使用建议。第四部分属实战,包括 Scala 与 Java 的双向互操作,以及一个完整示例应用的构建——读写文件、以 XML 为一等公民、抓取网络数据,并做单元测试(JUnit、ScalaTest、Mockito)。 书末附录提供 Scala 的下载安装与网络资源指引。全书 229 页,篇幅紧凑,适合已有 Java/面向对象基础、想在一两周内把 Scala 用到生产代码里的工程师。
编辑推荐
Scala 的书不少,但大多在「讲全语言」和「教你写函数式」之间摆荡,读者常卡在第一章的模式匹配就再没翻过第 100 页。这本《Scala实用指南》走的是另一条路:假定你是一名熟手 Java 工程师,直接从「你熟悉的 Java 写法,在 Scala 里可以变成什么样」入手,用大量短小可验的代码片段把差异一条条摆出来。作者 Venkat Subramaniam 是《高效程序员的45个习惯》的作者之一,常年在全球做培训,讲法极接地气——每个特性都配「为什么需要它」,而不是只给语法。 全书只有 229 页,却能一路从 REPL、字符串插值、值类、隐式转换讲到特质、集合、模式匹配、尾递归优化,再延伸到并行集合与 Akka Actor,最后收在一个读写文件、抓股票价格、带单元测试的完整小应用上。这种「不贪多、但覆盖到能干活」的密度,是它区别于《Scala编程》等大部头的最大价值。 需要提醒的是:原书基于 Scala 2.11/2.12,语法生态如今已有变化,Akka 也已转向社区维护;但书中关于函数式思维、并发模型与 Java 互操作的讲解并不过时。想快速把 Scala 用到真实工程里的读者,它仍是性价比很高的一本。
适合谁读
适合
- 有 Java 或面向对象编程基础、希望在短期内上手 Scala 的后端工程师
- 正在维护 JVM 技术栈、考虑引入函数式风格与不可变集合的开发者
- 准备处理多核并发问题、想了解并行集合与 Actor 模型思路的技术人员
- 需要让 Scala 与既有 Java 系统互相调用的架构与集成人员
不适合
- 完全没有编程经验、想从零学第一门语言的初学者
- 希望系统穷尽 Scala 语言细节、以查阅为主的大部头需求者
- 只关心最新 Scala 3 语法与生态、不打算读 Scala 2 时代内容的人
阅读建议
- 第 1—5 章建议边读边开 REPL 敲一遍,尤其把 Java 写法与 Scala 写法对照着跑通。
- 第 6—9 章是全书核心,函数值、特质、集合与模式匹配最好配合小项目练手,不要只读不写。
- 并发与 Akka 部分先理解思路再动手,书中示例基于旧版本,遇到 API 变动可对照官方文档调整。
- 最后一章的应用示例建议完整复现一次,它把文件、XML、网络与单元测试串成了可交付的流程。
出版社简介
人民邮电出版社
中国 · 成立于 1953 年
人民邮电出版社以科技、计算机与信息通信类图书见长,并由此延伸至摄影、艺术、软件学习与励志成长等门类,形成较为多元的出版方向。库内图书既涵盖《重构与模式(修订版)》《华为交换机学习指南(第二版)》等计算机与通信技术读物,也收录《小王子(中英法彩绘典藏纪念版)》《了不起的盖茨比》《假如给我三天光明》等双语典藏类作品;《北京十年:1980-1990》与《鬼刀 WLOP个人插画作品集》则体现其在摄影与艺术领域的布局。作者资源包括安东尼·圣埃克苏佩里、海伦·凯勒、Joshua Kerievsky、王达、张兆增与WLOP等。
目录
- 第一部分 小试牛刀
- 第1章 探索Scala:Scala的特性、以少胜多、函数式编程
- 第2章 体验Scala:使用REPL、命令行上的Scala、以独立脚本方式运行、编译Scala
- 第3章 从Java到Scala:简洁的Java、原始类型对应的Scala类、元组与多重赋值、灵活的参数、隐式参数、字符串插值、操作符重载、Scala与Java的差异、默认访问修饰符
- 第4章 处理对象:创建并使用类、遵循JavaBean惯例、类型别名、扩展一个类、参数化类型、单例对象和伴生对象、创建枚举类、包对象
- 第5章 善用类型:类型推断、基础类型(Any、Nothing、Option、Either)、返回值类型推断、型变、隐式类型转换、值类
- 第二部分 深入Scala
- 第6章 函数值和闭包:高阶函数、柯里化、参数的占位符、参数路由、部分应用函数、闭包、Execute Around Method模式
- 第7章 特质:理解特质、选择性混入、用特质实现装饰器模式、方法延迟绑定
- 第8章 集合:常见Scala集合、使用Set、关联映射、不可变列表、方法名约定、for表达式
- 第9章 模式匹配和正则表达式:case变量与常量、case类的匹配、提取器、无处不在的下划线
- 第10章 处理异常:Scala中的异常、注意catch的顺序
- 第11章 递归:一个简单的递归、尾调用优化、蹦床调用
- 第三部分 Scala中的并发编程
- 第12章 惰性求值与并行集合:让集合变惰性、Stream、并行集合
- 第13章 使用Actor编程:顺序执行的耗时问题、创建Actor、Actor与线程、隔离可变性、使用建议
- 第四部分 应用Scala
- 第14章 与Java互操作:双向调用、在Java中使用特质与单例对象、扩展类
- 第15章 用Scala创建应用:读取用户输入、读写文件、XML处理、从网络获取股票价格、让净资产应用并发化
- 第16章 单元测试:使用JUnit、ScalaTest与Mockito
- 附录:安装Scala(下载、安装、网络资源)
常见问题
这本书适合零基础学 Scala 吗?
不太适合。作者在序中就说明本书面向 Java 开发者,需要读者具备 Java 与面向对象编程背景;完全没有编程经验的话,建议先补 Java 或其他主流语言基础,再回到这本书会顺畅很多。
中文版对应的英文原书是哪一本?
是 Venkat Subramaniam 的 Pragmatic Scala: Create Expressive, Concise, and Scalable Applications,由 The Pragmatic Bookshelf 于 2015 年出版,基于 Scala 2.11;中文版由何品、沈达翻译,人民邮电出版社 2018 年 7 月出版。
书中示例基于哪个 Scala 版本?现在还适用吗?
原书主要围绕 Scala 2.11/2.12 编写,示例中的语法与 API 在 Scala 2.13 上大体可运行,但 Scala 3 的语法有较大变化;并发与 Akka 部分也需留意版本演进。建议把重点放在设计思路上,代码细节以当前官方文档为准。
全书篇幅和结构如何,通读需要多久?
中文版共 229 页、约 23.4 万字,分四部分、16 章加附录。对有一定 Java 基础的读者,按每天一到两章、边读边动手的节奏,两三周可完成第一遍;只想快速上手的话,第 1—5 章加第 14 章是最短路径。
和《Scala编程》这类书有什么区别?
《Scala编程》体量大、覆盖全面,更像参考书;本书篇幅紧凑,强调「务实」,只讲日常真正用得上的部分,并从 Java 视角切入对比,更适合已有工程经验、想快速把 Scala 落到项目里的人。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。