Scala 课堂

本教程源自 Twitter 出品的 https://twitter.github.io/scala_school/
本教程源自 Twitter 出品的 https://twitter.github.io/scala_school/

关于
Scala 课堂是 Twitter 启动的一系列讲座,用来帮助有经验的工程师成为高效的 Scala 程序员。Scala 是一种相对较新的语言,但借鉴了许多熟悉的概念。因此,课程中的讲座假设听众知道这些概念,并展示了如何在 Scala 中使用它们。我们发现这是一个让新工程师能够快速上手的有效方法。网站里的是伴随这些讲座的书面材料,这些文字材料本身也是很有用的。

方法
我们认为最有意义的教学方式是,不要把 Scala 看做是改进的 Java,而是把它作为一门新的语言。所以这里不会介绍 Java 的使用经验,而将聚焦在解释器和“对象-函数式”的风格,以及我们的编程风格。特别强调了可维护性,清晰的表达,和利用类型系统的优势。

大部分课程除了 Scala 的交互命令行之外不需要其他软件。我们鼓励读者按顺序学习,并且不仅限于此。让这些课程作为您探索 Scala 的起点吧!

基础
值,函数,类,方法,继承,try-catch-finally。面向表达式编程

基础知识(续)
样本类,对象,包,应用,更新,函数即对象(统一访问原则),模式匹配,样本类,异常。

集合
列表,映射,功能组合 (map, foreach, filter, zip, folds)

模式匹配与函数组合
更多函数!偏函数,更多模式匹配

类型和多态基础
基本类型和类型多态性,类型推断,变性,边界,量化

高级类型
高级类型,视界,更高级多态性类型,递归类型,结构类型

简单构建工具
关于 SBT——标准的 Scala 构建工具

更多的集合
Scala Collections 库指南

使用 specs 测试

Scala 并发编程
Runnable, Callable, 线程,Futures
Java + Scala

Java 跨平台交互:在 Java 中使用 Scala

Finagle 介绍
Finagle 原语:Future, Service, Filter, Builder

Searchbird
利用 Finagle 构建一个分布式搜索引擎

参考资料