Cинтаксические конструкции Scala, асинхронность
В данном модуле будут рассмотрены следующие темы: - Введение в Scala - Основные языковые конструкции, синтаксис - Знакомство с функциональными особенностями языка Scala - Библиотека коллекций - Асинхронность силами стандартной библиотеки (Scala Future)
Тема 1: Обзор языковых конструкций. Интерфейсы, классы, методы
Тема 2: Обзор языковых конструкций. Интерфейсы, классы, методы. Часть 2
Тема 3: Функциональные конструкции языка scala
Тема 4: Алгебраические типы данных и сопоставление с образцом
Тема 5: Библиотека коллекций
Тема 6: Библиотека коллекций. Часть 2
Тема 7: Асинхронные операции, обработка исключений, неявные параметры
Тема 8: Асинхронные операции, обработка исключений, неявные параметры. Часть 2
Advanced Scala concepts, знакомство с концепциями функционального программирования
В данном модуле будут рассмотрены следующие темы: - Продвинутые возможности языка Scala - Типы высшего порядка - Scala implicits и type class паттерн - Начинаем знакомство с FP экосистемой Scala на примере библиотеки cats - Рассматрим основные структуры данных и type classes
Тема 1: Higher kind types, implicits, type classes. Часть 1
Тема 2: Higher kind types, implicits, type classes. Часть 2
Тема 3: Обзор нового синтаксиса Scala 3
Тема 4: Абстрагирования контекстной информации в Scala 3
Тема 5: Сats core, data types and type classes
Функциональное программирование и эффекты в Scala. Подробное знакомство с ZIO и Cats effect
В данном модуле будут рассмотрены следующие темы: - Функциональное программирование на Scala с «эффектами» - Введем понятие функционального эффекта - Познакомимся с принципами функционального дизайна для некой предметной области - Рассмотрим такие библиотеки, как ZIO и Cats effect.
Тема 1: Введение в функциональные эффекты
Тема 2: ZIO эффект, конструкторы, базовые операции
Тема 3: ZIO модель ошибок
Тема 4: ZIO асинхронность и паралеллизм
Тема 5: ZIO работа с ресурсами
Тема 6: ZIO Environment и его место в DI
Тема 7: ZIO ZLayer, ZIO сервисы, тестирование ZIO программ
Тема 8: ZIO дополнительные типы данных
Тема 9: Cats effects: ведение, основные типы данных
Тема 10: Cats effects: работа с ресурсами
Тема 11: Cats effects: конкурентность
Scala библиотеки fs2 и http4s. Работа с БД
В данном модуле будут рассмотрены следующие темы: - Популярные библиотеки из FP экосистемы Scala - Web + Доступ к БД - Функциональные стримы на примере FS2 - Работа с http с помощью http4s - Реализация взаимодействия с БД JDBC, Scalike, Slick
Тема 1: Функциональные стримы на примере fs2
Тема 2: Введение в http4s + DSL
Тема 3: http4s middleware + аутентификация
Тема 4: http4s стриминг + работа с JSON
Тема 5: Доступ к БД
Akka и CQRS/ES с использованием Akka
В данном модуле будут рассмотрены следующие темы: - Модель акторов и ее реализация на Scala - Библиотека Akka - Событийные архитектуры - Паттерн с разделения команд и запросов (CQRS)
Тема 1: Акка
Тема 2: Akka акторы
Тема 3: Обработка потоков данных
Тема 4: Событие как основной тип данных в системе
Тема 5: Разделение команд и запросов
Тема 6: Query часть CQRS
Тема 7: ES в кластере
Проектная работа
Заключительный месяц курса посвящен проектной работе. Свой проект — это то, что интересно писать слушателю. То, что можно создать на основе знаний, полученных на курсе. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.
Тема 1: Выбор темы и организация проектной работы
Тема 2: Защита проектных работ