Язык 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-типов и неявных преобразований. 

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


Цели:
Познакомить разработчиков с языком программирования Scala.
Разбираемые темы:
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 для определения неявного приведения типа;
  • Импортирование и использование неявных преобразований;
  • Неявные параметры.

Целевая аудитория:
  • Java-разработчики;
  • Разработчики на других современных языках программирования (C++, C#, и т.д.).
Предварительная подготовка – общее:
Необходимо владение современным объектно-ориентированным языком программирования, желательно Java.

Описание:


Сертификат:
По итогам обучения каждому слушателю выдается сертификат о прохождении курсов Luxoft Training. Слушатели онлайн курсов получают электронную версию сертификата (на указанный email) по запросу.
Рекомендуемые дополнительные материалы, источники:
Примечание:
Материалы курса представлены на английском языке.
Москва 36 000 р.
Санкт-Петербург 32 400 р.
Омск 27 000 р.
Киев 6 500 грн.
Одесса 5 900 грн.
Днепр 5 900 грн.
Ваш город (формат корпоративного обучения):По запросу


Данные цены не включают в себя стоимость обедов.

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





Хотите узнать больше?

По всем вопросам, в том числе для регистрации на курсы, обращайтесь по адресу education@luxoft.com

Вернуться к каталогу
Раcписание курса в
Москвe
  • Москве
  • Санкт-Петербурге
  • Омске
  • Киеве
  • Днепре
  • Одессе
  • Минске
09.10.2017 - 13.10.2017
Тренер:
Сонькин  Владимир
Сонькин Владимир
Эксперт в области разработки ПО на Java
Подробнее
Локация:
Москва
Время:
10:00-16:00
Длительность:
30 ч.
36 300 р.

09.10.2017

Запланированных дат
в расписании нет
Не подходят даты или время?
Предложите свой вариант
Блоги
Luxoft Training
16.08.2017 12:34:24
Как скачать BABOK на русском?
Начнем с плохой новости: официальной версии BABOK, одобренной IIBA, на русском языке не существует.
На сайте IIBA оригинальный BABOK доступен на английском, немецком и японском языках. Междунаро...
Павел Новиков
14.08.2017 11:59:07
Agile Life Planning: определение задач для достижения целей
Почему необходимо классифицировать и разделять цели?
На этапе № 1 Agile Life Planning было разобрано, как сформировать список своих целей и зачем это необходимо делать. Теперь посмотрим, как дальш...
Luxoft Training
25.07.2017 11:38:34
Новая система сертификации от IIBA (BABOK v3)
Автор: Денис Гобов – канд. техн. наук, CBAP.
С 30 сентября 2016 г. вступила в силу новая система сертификации для бизнес-аналитиков от Международного института бизнес-анализа (IIBA, International I...
Читать больше
Luxoft Training предлагает Вам пройти обучение по курсу «Язык Scala для Java-разработчиков». Другие курсы по теме «Разработка ПО (Java)» Вы можете найти в нашем каталоге курсов.
Заказать корпоративное обучение
для команды
ФИО
Город
Компания
Должность
Email
Телефон
Сообщение


Отмена