spinner-it

Курс Scala

Старт обучения
Дату уточните у администрации
42 час. по 2-3 раза в неделю

Описание курса

Цель курса — научить студентов программировать на языке Scala. Курс предназначен для тех, кто уже владеет основами разработки на Java, или другим ОО языком программирования.

 

В ходе уроков вы научитесь разрабатывать, тестировать и отлаживать программы на Scala, познакомитесь как с функциональным, так и с объектно-ориентированными конструкциями языка. Вы получите знания, необходимые для изучения таких популярных продуктов, как Spark, Akka, Play Framework и Cats.

После курса вы сможете:

  • Использовать объектно-ориентированные и функциональные конструкции языка Scala 2.13
  • Разрабатывать и отлаживать Scala-приложения
  • Тестировать написанный код с помощью Scalatest
  • Собирать Scala проекты с помощью SBT
  • Начать изучение фреймворков: Spark, Akka, Play Framework, Cats и т.д.

Программа курса:


1. Общая характеристика Scala

  • История языка и связь с Java
  • Использование REPL
  • Запуск Scala-программ из командной строки
  • Использование IntelliJ IDEA + SBT для создания Scala-программ

2. Переменные и значения в Scala

  • Variables
  • Values
  • Lazy values

3. Операторы

  • Типы операторов
  • Создание и использование
  • Порядок очередности

4. Строки (Strings)

  • Создание строк и работа с ними
  • Интерполяция
  • "s" интерполятор
  • "f" интерполятор
  • "raw" интерполятор

5. Типы данных

  • Вывод типов
  • Иерархия типов
  • Типы Any, AnyVal, AnyRef
  • Типы значений (Value types)
  • Тип Nothing
  • Scala Null

6. Классы и объекты

  • ООП в Scala
  • Класс
  • Объект
  • Объект компаньйон
  • Trait
  • Примеси и множественное наследование, правило линералиации
  • Вложенный класс
  • Package object
  • Enums

7. Обобщения

  • Синтаксис
  • Ковариантность, контравиантность, инвариантность
  • Upper/lower type bounds
  • Ключове слово type
  • F[_]

8. ADT & сопоставление с образцом (Pattern matching)

  • Кортежи (Tuples)
  • Кейс классы
  • Запечатанные (Sealed) классы
  • Кейс объекты
  • Сопоставление с образцом

9. Обработка ошибок

  • Как работают исключения в Scala
  • Иерархия исключений
  • Способы обработки исключений
  • Функциональный стиль: Option, Either, Try

10. Функции и методы

  • Рекурсия
  • Side effect, pure functions
  • Функции высшего порядка (Higher-order functions)
  • Анонимные функции
  • Частичные функции
  • Частичное применение функции
  • Currying
  • Функциональные комбинаторы

11. Массивы

  • Создание и использование массивов
  • Одномерные массивы
  • Многомерные массивы
  • Операции над массивами

12. Структуры данных

  • Иерархия коллекций
  • Списки (Seq, List, Nil, Vector)
  • Набор (Set)
  • Ассоциативный массив (Map)
  • Операции над коллекциями
  • Сравнение эффективности массивов

13. Монады в Scala

  • Определение монады
  • Примеры монад
  • For-comprehension

14. Implicits

  • Неявные параметры
  • Неявные преобразования
  • Неявные классы
  • Type classes

15. Асинхронный код

  • Использование Future и ExecutionContext
  • Callbacks
  • Projections
  • Promises

16. SBT (Scala Build Tool)

  • Иерархия файлов
  • Использование библиотек
  • Использование плагинов
  • Разделение кода на модули
  • Компиляция и запуск

Минимальные требования:

  • Знание основ программирования на любом популярном языке (Java, C#, Python)
  • Понимание ООП

* Примечание: указанные скидки не суммируются с другими действующими акциями и специальными предложениями. Скидка применяется только к новым заявкам и при условии полной оплаты. Если у Вас возникли вопросы, обращайтесь за консультацией к нашим менеджерам!