О курсе
Комбинируя в себе возможности объектно-ориентированной и функциональной парадигм программирования, Scala предоставляет множество возможностей для разработчика. Функциональный подход позволяет писать код с высоким уровнем абстракции. Более лаконичный и читаемый в записи код, а также в ряде случаев более быстрое его выполнение, позволяют существенно разнообразить инструментарий разработчика.
Курс Scala Advanced позволит вам глубже погрузиться в функциональную часть языка Scala. При прохождении курса вы познакомитесь с практическими аспектами применения каррирования, частично определённых функций, параметризированных и дополнительных типов, экстракторов и других особенностей языка. Главное – вы научитесь вести разработку в функциональном стиле, совмещая возможности ООП и функционального подхода.
Этот курс входит в специальности:
Предварительные Требования
Владение языком Scala на уровне курсов "Scala Стартовый" и "Scala Базовый".
Вы научитесь
- Применять в разработке специализированные типы языка Scala - типы-одиночки, проекции типов, цепочки, составные, инфиксные, экзистенциальные, абстрактные типы и типы высшего порядка.
- Использовать неявные преобразования для расширения возможностей существующих классов.
- Использовать механизмы сопоставления с образцом языка Scala в отношении различных типов.
- Понимать работу с абстрактными элементами. Использовать на практике ленивые val-переменные, абстрактные типы, Path-dependent типы, уточняющие типы.
- Применять с Scala Future такие методы, как: преобразование, создание, фильтрация, обработка исключительных ситуаций и другие.
- Применять в разработке такие функциональные приёмы, как: обработка ошибок без использования Exception, использование чисто функционального состояния и чисто функционального параллелизма.
- Применять моноиды, их композицию, комбинаторы и правила монад.
- Понимать и применять функторы и понимать разницу между монадой и аппликативным функтором.
- Тестировать написанные вами программы с помощью юнит-тестов и фреймворка ScalaTest.
- 9 ч 15 м
- 20.11.2019
- 12
- 12.06.2020
- русский
Что входит в курс
×
Вы действительно хотите открыть доступ к тестированию по курсу Scala Углубленный на 40 дней?
Рассмотреть функции высшего порядка, а именно процесс карринга функций, абстракции управляющих конструкций, частично определённые функции (partial function). Научиться создавать partial function, узнать для чего и как использовать такие функции.
Рассмотреть механизм сопоставления с образцом в языке Scala. Изучить сопоставление с типами, массивами, списками, кортежами, case-классами, вложенными структурами.
Изучить обобщённые классы и функции. Рассмотреть границы изменения типов, представления и контекста. Рассмотреть ко- и контравариантные позиции.
Рассмотреть все типы, которые может предложить язык Scala, в том числе специализированные. Изучить типы-одиночки, проекции типов, цепочки, составные, инфиксные, экзистенциальные, абстрактные типы и типы высшего порядка.
Научиться использовать неявные преобразования для расширения возможностей существующих классов. Рассмотреть границы контекста и неявный параметр подтверждения.
Рассмотреть абстрактные элементы. Научиться использовать абстрактные элементы с помощью практического примера.
Узнать, что такое экстракторы, для чего они используются. Рассмотреть шаблоны без переменных и с одной переменной, экстракторы переменного количества аргументов, последовательностей. Сравнить экстракторы и case-классы.
Раскрыть понятие и назначение Future в языке Scala. Рассмотреть основные методы работы с Future, такие как преобразование, создание, фильтрация, обработка исключительных ситуаций и другие.
Научиться применять полученные знания о языке Scala для разработки в функциональном стиле. Ознакомиться с разными функциональными приёмами, такими как обработка ошибок без использования Exception, использование чисто функционального состояния и чисто функционального параллелизма. Рассмотреть такие свойства как strictness и laziness, а также функциональные структуры данных.
Изучить моноиды и монады. Рассмотреть применение моноидов, их композицию, определение монады, её применение и законы.
Изучить функторы. Рассмотреть разницу между монадой и аппликативным функтором. Изучить Applicative трейт, правила аппликатива, функторы Traversable.
Понять назначение тестирования программного обеспечения. Рассмотреть разные виды тестирования. Научиться писать юнит-тесты с помощью фреймворка ScalaTest.