Язык Scala для Java-разработчиков

В данном курсе слушатели получат представление о специфике и особенностях языка Scala, его преимуществах и сложных местах. Курс включает рассмотрение операторов и типов данных Scala, изучение основных структур данных, таких как массивы, map, tuples, использование объектно-ориентированного и функционального программирования, работу с коллекциями Scala, применение pattern matching, case-классов, generic-типов и неявных преобразований. Предлагается большое количество практических упражнений.
Курс: JVA-031
Длительность: 30 ч.

Описание

Язык Scala в последние годы набирает популярность не только в программировании, но в enterprise-разработке. К его преимуществам относятся использование самых современных нововведений в языки программирования и обширная поддержка функционального подхода к разработке. Это дает возможность повысить эффективность разработки, создавая очень краткий и эффективный код. Код на Scala компилируется в Java байт-код и выполняется внутри JVM, что обеспечивает отличную совместимость с существующими библиотеками и инструментами Java.

Слушатели получат представление о специфике и особенностях языка Scala, его преимуществах и сложных местах. 

Курс включает рассмотрение операторов и типов данных Scala, изучение основных структур данных, таких как массивы, map, tuples, использование объектно-ориентированного и функционального программирования, работу с коллекциями Scala, применение pattern matching, case-классов, generic-типов и неявных преобразований. 

Предлагается большое количество практических упражнений.

Разбираемые темы

1. Введение в Scala.
2. Инструкции, операторы и типы:
  • Условные операторы;
  • Циклы;
  • Функции;
  • Переменные;
  • Операторы;
  • Тип Unit;
  • Типы функций;
  • Типы Null, Nothing, Any, AnyRef и AnyVal;
  • Исключения;

3. Arrays, maps, tuples:
  • Создание, добавление и удаление элементов массива;
  • Доступ к элементам массива;
  • Массивы фиксированной и вариативной длины;
  • Многомерные массивы;
  • Операции с массивами;
  • Сортировка массива;
  • Конструирование и доступ в ассоциативным таблицам;
  • Итерирование, изменение, сортировка ассоциативных таблиц;
  • Кортежи;
  • Зиппирование;

4. Классы и наследование:
  • Классы;
  • Свойства с геттерами и сеттерами;
  • Использование скобок при вызове методов;
  • Свойства только с геттерами;
  • Вспомогательные конструкторы;
  • Основной конструктор;
  • Вложенные классы;
  • Расширение класса;
  • Переопределение методов;
  • Проверка и приведение типа;
  • Вызов конструктора суперкласса;
  • Переопределение полей;
  • Анонимные подклассы;
  • Абстрактные поля;
  • Порядок конструирования и ранние определения;
  • Иерархия наследования;
  • Сравнение объектов на равенство;

5. Объекты:
  • Синглтоны;
  • Объекты-компаньоны;
  • Объекты, расширяющие класс или трейт;
  • Перечисления;
  • Пакеты-объекты;
  • Методы apply и unapply;
  • Ленивые объекты;
  • Объекты, использующие несколько трейтов;

6. Трейты:
  • Трейты как интерфейсы;
  • Трейты с конкретной имплементацией;
  • Переопределение абстрактных методов в трейтах;
  • Конкретные и абстрактные поля в трейтах;
  • Порядок конструирования трейта;
  • Инициализация полей трейта;
  • Трейты, расширяющие классы;
  • Self-типы;

7. Функции:
  • Функции как переменные;
  • Аргументы по умолчанию и именованные аргументы;
  • Функции без возвращаемого значения;
  • Анонимные функции;
  • Функции с параметрами-функциями;
  • Замыкания;
  • Функциональные интерфейсы;
  • Каррирование;
  • Передача функции как параметра в виде блока кода;
  • Использование return;

8. Коллекции:
  • Трейты коллекций в Скала: Map, Set и Seq;
  • Изменяемые и неизменяемые коллекции;
  • Последовательности;
  • Списки;
  • Изменяемые списки;
  • Множества;
  • Операторы для работы с коллекциями;
  • Стандартные методы работы с коллекциями;
  • Использование функций map, reduce, fold и scan;
  • Зиппирование;
  • Итераторы;
  • Потоки данных;
  • Потокобезопасные коллекции;
  • Параллельные вычисления в коллекциях;
  • Взаимодействие с коллекциями Java;

9. Pattern matching:
  • Использование паттерн матчинга;
  • Переменные в паттернах;
  • Паттерны-типы;
  • Сравнение с массивами, списками и кортежами;
  • Регурярные выражения;
  • Экстракторы;
  • Паттерны в определении переменных;
  • Паттерны в выражениях for;
  • Case классы, тип Option и partial функции;

10. Сase-классы:
  • Метод copy и именованные параметры;
  • Защищенные классы;
  • Тип Option;
  • Частично определенные функции;

11. Generics:
  • Дженерик-классы;
  • Дженерик-функции;
  • Ограничения типов, вариативные типы +T, -T;
  • Использование _ вместо типа;

12. Неявные преобразования:
  • Ключевое слово implicit для определения неявного приведения типа;
  • Импортирование и использование неявных преобразований;
  • Неявные параметры.

Цели

Познакомить разработчиков с языком программирования Scala.

Целевая аудитория

  • Java-разработчики;
  • Разработчики на других современных языках программирования (C++, C#, и т.д.).

Предварительная подготовка

Необходимо владение современным объектно-ориентированным языком программирования, желательно Java.
После окончания курса выдаётся сертификат на бланке Luxoft Training
Тренер в Москва
Первушов Артем Специалист в области разработки ПО
Артём с 2013 г. преподаёт различные дисциплины по разработке программного обеспечения для крупных российский компаний в финансовом и других секторах. За это время он был задействован в нескольких образовательных проектах, в том числе принимал участие в проекте по обучению более чем 200 специалистов по направлению «JavaEE разработчик» на базе программы профессиональной переподготовки АНО «Университет Иннополис».

Сопровождал проект по разработке системы юридически значимого документооборота для крупной отечественной логистической компании, участвовал в проекте по переходу на автоматизированный формат обмена НСИ. Артём принимал участие в реализации проекта специализированного трекера задач для крупного data-центра в США и занимался управлением и реализацией проекта «Система мониторинга спортивных ставок». В Московском государственном техническом университете им. Н.Э. Баумана преподавал курс «Системный анализ и архитектура приложений».

 Артём является сертифицированным разработчиком от Android Training Consultant.
Данный курс запланирован в городах: Москва
20.08.2019 - 23.08.2019
Время: 10:00-18:00
Локация: Москва
Длительность: 30 ч.
Тренер
Первушов Артем
Специалист в области разработки ПО
37 800 1

20.08.2019

Не подходят даты, время или хотите заказать корпоративное обучение для команды?
+
Предложите свой вариант
Не подходят даты, время или хотите заказать корпоративное обучение для команды?
+
Предложите свой вариант
Москва 37 800 1
Санкт-Петербург 34 020 1
Омск 28 350 1
Киев 6 500 грн.
Одесса 5 900 грн.
Днепр 5 900 грн.

Рекомендуемые дополнительные материалы, источники:

Примечание:

Материалы курса представлены на английском языке.

Записаться на курс

Выбрать дату
Если Вам не подходят дата и место проведения тренинга, Вы можете оставить заявку на участие в нем в любом из городов, где представлены филиалы Luxoft Training. Для этого выберите вариант "Открытая дата" и укажите желаемое место проведения курса.
Желаемое место проведения курса
Вы можете оставить заявку на корпоративное обучение сотрудников Вашей компании в любом городе России или Украины, выбрав вариант "Другой город"
Фамилия *

Имя *

Отчество

Контактный E-mail *

Компания *

Телефон *

Город *

Комментарий
Оценка и обучение ИТ-специалистов по ключевым направлениям разработки программного обеспечения. Курсы от экспертов-практиков по языкам программирования, системному и бизнес-анализу, управлению проектами, тестированию ПО, архитектуре ПО. Luxoft Training – единственный учебный центр в России, авторизованный IIBA. Действует скидка 10% на обучение физических лиц.
   Подпишись на ежемесячный DigestLT
Успешная форма подписки.
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.