Scala Школа!

Из ∅ к Распределенному Сервису

Other Languages:

Об этих уроках

Scala школа начиналась как серия лекций в компании Twitter, для того чтобы подготовить опытных инженеров к тому, чтобы стать продуктивными Scala программистами. Scala является относительно новым языком, но опирается на многие привычные понятия. Таким образом, эти лекции предполагают, что читатели знакомы с основными понятиями, а лекции помогут показать, как эти понятия могут использоваться в Scala. Мы считаем это эффективным способом подготовки новых инженеров в короткие сроки. Существуют дополнительные материалы, которые сопровождают эти лекции. Мы считаем, что они будут к месту.

Как будут проходить уроки?

Мы считаем, что лучше всего подойти к изучению Scala не так, будто это улучшенная Java, а словно это новый язык. Опыт работы с Java не требуется. Основное внимание будет уделяться интерпретатору и объектно-ориентированному и функциональному стилю, а также стилю программирования, который используется в нашей компании. Акцент будет сделан на удобство сопровождения, доходчивость, и использование системы типов.

Для большинства уроков не требует никакого программного обеспечения, кроме REPL(англ. read-eval-print-loop; рус. интерактивная среда программирования - прим. переводчика) Scala. Читателю предлагается выполнять задания вместе с нами, и не останавливаться на достигнутом! Считайте эти уроки отправной точкой для изучения языка.

Дополнительные материалы

Хотите знать больше?

Уроки

Основы
Переменные, функции, классы, методы, наследование, try-catch-finally. Программирование ориентированное на выражения
Основы языка. Продолжение
Case классы, объекты, пакеты, apply, update, Функции как Объекты (единый принцип доступа), сопоставление с образцом.
Коллекции
Списки, Карты, функциональные комбинаторы (map, foreach, filter, zip, folds)
Сопоставление с образцом и функкциональная композиция
Еще больше функций! Частичные функции, еще больше сопоставления с образцом
Основы типов и полиморфизма
Основные типы и полиморфизм типов, вывод типов, изменчивость, пределы, квантификация
Дополнительные типы
Дополнительные типы, видимое ограничение, типы высшего порядка, рекурсивные типы, структурные типы
Simple Build Tool
Все о SBT, Стандартное средство сборки приложений для Scala
Подробнее о коллекциях
Рассказ о библиотеке коллекций Scala
Тестирование с помощью specs
Написание тестов с помощью Specs, Scala BDD фреймфорк для тестирования
Параллельность в Scala
Runnable, Callable, потоки, Futures
Java + Scala
Java совместимость: Использование Scala из Java
Введение в Finagle
Finagle примитивы: Future, Service, Filter, Builder
Searchbird
Создание распределенного поискового движка, используя Finagle
Built at @twitter by @stevej, @marius, and @lahosken with much help from @evanm, @sprsquish, @kevino, @zuercher, @timtrueman, @wickman, and @mccv; Russian translation by appigram; Chinese simple translation by jasonqu; Korean translation by enshahar;