spinner-it

Scala Programming

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

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

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

 

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

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

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

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

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

  • История языка
  • Байт-код
  • Виртуальная машина (JVM)
  • Поиск и загрузка классов
  • Создание и запуск приложения на Scala
  • Использование IDE для создания и выполнения Scala-программ

2. Чтение-вычисление-вывод/REPL — read-eval-print loop

  • Особенности реализации
  • Основные функции
  • Power-мод

3. Переменные в Scala

  • Values
  • Variables

4. Операторы

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

5. Строки

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

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

  • Иерархия типов
  • Type inference
  • Типы Any, AnyVal, AnyRef
  • Тип Nothing
  • Scala Null

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

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

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

  • ООП в Scala
  • Класс
  • Объект
  • Companion object
  • Сопоставление с образцом (Pattern matching)
    • Сопоставление с образцом: литералы 
    • Сопоставление с образцом: классы 
    • Сопоставление с образцом: коллекции 
    • Запечатанные (Sealed) классы
  • Кейс класс
  • Кейс объект
  • Вложенный класс
  • Trait
  • Примеси и множественное наследование
  • Обобщения

9. Валидация

10. Package & package

11. Монады в Scala

  • Определение монады
  • Монады в коллекциях
  • Монада “Option”, класс “Some” и объект “None” 
  • For-comprehension

12. Обработка исключений 

  • Как работают исключения в Scala
  • Иерархия исключений
  • Способы обработки исключений

13. Массивы 

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

14. Коллекции 

  • Иерархия коллекций 
  • Кортежи (Tuple)
  • Списки (List)
  • Коллекции неповторяющихся элементов (Set)
  • Последовательности упорядоченных элементов (Seq)
  • Карты (Map)
  • Объект Nil
  • Обход коллекций, операции над коллекциями
  • Сравнение производительности коллекций

15. Implicits

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

16. Future

  • Определение, создание и использование
  • Callbacks
  • Projections
  • Promises

17. SBT (Scala Build Tool)

18. Testing

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

  • Знания Java Core (Базовый курс Java)
  • Понимание ООП

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