Язык 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#, и т.д.).
После окончания курса выдаётся сертификат на бланке Luxoft Training
Тренер в Москва
Сонькин Владимир Эксперт в области разработки ПО на Java
Владимир начал свою карьеру в IT-отрасли в 2000 г. в компании ApoSoft, где занимался разработкой систем электронной торговли по заказу немецкой компании SoftLution.
На сегодняшний день имеет большой опыт в области разработки ПО уровня Enterprise для крупнейших зарубежных компаний с использованием технологии Java.  
Руководил проектом IT-поддержки систем всероссийского мониторинга школьников, разрабатывал системы сбора и анализа данных в Институте возрастной физиологии РАО.
В 2005–2006 гг. занимался разработкой системы управления процессом разработки ПО в ITCI.

Интересуется технологиями создания масштабируемых, эргономичных веб-интерфейсов, а также технологиями повышения производительности труда разработчиков.

В компании Luxoft работает с 2006 г.: за это время участвовал в нескольких проектах для крупной американской сельскохозяйственной компании Bunge и крупнейшего швейцарского банка UBS. 
-10% ФИЗИЧЕСКИМ ЛИЦАМ
Данный курс запланирован в городах: Москва, Киев
27.11.2017 - 01.12.2017
Время: 10:00-16:00
Локация: Москва
Длительность: 30 ч.
Тренер
Сонькин Владимир
Эксперт в области разработки ПО на Java
36 000 1

27.11.2017 - 01.12.2017

Не подходят даты, время или хотите заказать корпоротивное обучение для команды?
+
Предложите свой вариант
06.11.2017 - 17.11.2017
Время: 09:00-12:00
Локация: Киев
Длительность: 30 ч.
Тренер
Nemish, Alexander
Эксперт в области разработки ПО на Java
6 500 грн.
В корзину

06.11.2017 - 17.11.2017

Не подходят даты, время или хотите заказать корпоротивное обучение для команды?
+
Предложите свой вариант
Не подходят даты, время или хотите заказать корпоротивное обучение для команды?
+
Предложите свой вариант
Москва 36 000 1
Санкт-Петербург 32 400 1
Омск 27 000 1
Киев 6 500 грн.
Одесса 5 900 грн.
Днепр 5 900 грн.

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

Примечание:

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

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

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

Имя

Отчество

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

Компания

Телефон

Город

Комментарий
По запросу на education@luxoft.com мы ответим на любые дополнительные вопросы касательно обучения в нашем Luxoft Training.
   Подпишись на ежемесячный DigestLT
Успешная форма подписки.
Спасибо!
Форма отправлена успешно.