1 занятие. Основы Scala.
- Знакомство с кодом. Hello world.
- Консольный интерпретатор. Scala REPL.
- Написание базовых выражений, создание константы и переменных.
- Обзор импортируемых пакетов языка Scala по-умолчанию.
- Ввод и вывод данных в консоль.
- Условный оператор if: основы и особенности в Scala.
- Циклы: while, do, until, for (почти цикл).
- Функции как объекты первого класса. Простые и анонимные.
- Классы. Создание методов и их наследование.
- Пишем конструкторы и поля классов.
- Переопределение методов классов.
- Модификаторы доступа полей и методов.
- Создаем пакет и несем в нем классы.
- Численные типы и строки.
- Основы SBT и Intellij IDEA.
- Создаем SBT проект.
- Разбираемся в структуре Scala-Sbt проекта. Файлы конфигурации сборки.
- Пишем первую программу.
2 – 3 занятия. Основы Scala, продолжение.
- Иерархия типов Scala.
- Типаж. Их отличие от абстрактных классов class, применение с sealed.
- Case class и его особенности.
- Объекты-компаньоны.
- Кортежи.
- Обобщения типов.
- Перечисления в Scala.
- Исключения и их обработка.
- Комбинируемые типы (Try, Option, Either).
- Сопоставление с шаблоном.
- For-включения.
- Разные нотации вызова методов.
4 – 5 занятия. Все о функциях.
- Объединение функций.
- Определение чистых функций.
- Каррирование функций.
- Переменное количество аргументов у функции.
- Частичные функции.
- Кортежи. Их запаковка и распаковка.
- Вызов по имени и по значению.
- Ленивые поля.
- Неявные функции.
- Знакомства с границами типов.
- Хвостовая рекурсия и ее оптимизация.
6 занятие. Все о функциях, продолжение.
- Классы-значения и ссылочные классы.
- Implicits преобразования и все о них.
- Больше примеров и интерактива.
7 занятие. Коллекции.
- Иерархия коллекций в Scala
- Мутабельные и иммутабельные коллекции
- Списки
- Массивы
- Наборы
- Карты
- Вектора
- Поток
- Iterable, iterator или traversable
- Вычислительная сложность Scala коллекций
8 – 10 занятия. Коллекции, продолжение.
- Ленивое выполнение операций над элементами.
- Операции основных интерфейсов коллекций.
- Методы списков.
- Еще больше методов. Собери их все!
- Интерактивные задачи с коллекциями.
- Создаем строки из коллекции.
- Java коллекции в Scala: как и зачем.
11 занятие. Параллельность в Scala.
- Конкуренция против параллелизма.
- Обзор пакета scala.concurrent.
- Future и контексты исполнения.
- Promise. Обещания надо выполнять.
- Scala-async: что и зачем.
- Параллельные коллекции.
12 занятие. Основы Akka.
- Актор.
- Система акторов.
- Акторы требуют надсмотра. Мы им поможем.
- Прозрачность расположения и основные принципы позади Akka.
- О чем никогда не стоит забывать.
- Плюсы и минусы акторов.
13 занятие. JDBC в Scala. Работа с базами данных.
- Обзор разных подходов и библиотек для взаимодействия с реляционными базами данных: Slick, Scalikejdbc, Play anorm, Doobie.
- Их сравнение и примеры использования.
14 занятие. Основы ScalaTest и ScalaMeter.
- Обзор доступных стилей тестов ScalaTest.
- Пишем и разбираем примеры тестов.
- Обзор ScalaMeter.
- Меряем производительность кода правильно.
15 занятие. Основы Play.
- Швейцарский нож Web разработчика.
- Обзор возможностей Play Framework.
- Валидация форм с Play.
- Работа с Json в Play.
- Помянем Anorm.
- Встроенный кеш ответов.
- Авторизация с OAuth.
- Работа с WebSocket.
- Инъекция зависимостей в Play.
16 занятие. Основы деплоя Scala приложений.
- Сборка с помощью SBT assembly и stage.
- Обзор возможностей sbt-native-packager.
- Место Scala в мире разработке.
- Где применяют Scala и зачем?
- Разберемся, что же нам делать с этим дальше?