Хотите получать информацию по новым курсам и их датам проведения?
(SD) Scala Developer
Код курса: SD
Описание курса
Язык программирования Scala — мультипарадигмальный язык программирования, спроектированный кратким и типобезопасным для простого и быстрого создания компонентного программного обеспечения, сочетающий возможности функционального и объектно-ориентированного программирования.
Курс Scala Developer даст участникам возможность познакомиться с мощнейшим языком программирования Scala, на реальных примерах из практики разработки понять, где, как и когда лучше использовать все его практически бесконечные возможности.
Почему Scala стоит того, что писать на нём?
- Scala даёт огромный рост продуктивности по сравнению с Java/С/С++. Практически любая задача, решаемая средствами Java, решается на Scala более быстро и компактно
- Разработка на Scala позволяет быстро реализовывать сложную функциональность. Особенно большие преимущества получаются в реализации достижения бесперебойной работы высоконагруженных распределенных сервисов
- Качественно разработанные Scala хорошо поддерживаемы и масштабируемы
- Совместимость с Java и другими платформами. Переход на Scala никак не мешает пользоваться библиотеками и фреймворками, разработанными для Java
- Akka -фреймворк дает возможность распараллеливать вычисления
- Play и Lift - мощные инструменты веб-разработки
- Akka-Http использует механизмы распараллеливания для создания http клиентов и серверов
- slick и scalikejdbc - позволяют работать с базами данных интуитивно понятным образом
а также:
- В новой версии с компилятора Scala - Dotty, имеющего другую структур, проблемы медленной компиляции окончательно решены
- Новый оптимизатор Dotty Linker, позволяющий компилировать код исключетельно для тех типов, которые реально используются, что позволяет серьёдно уменьшить количесто кода
- Scala JS компилирует код на Scala в высокопроизводительный Javascript код. В совокупности с Scalatags и ScalaCSS полноценная разработка фронтенда для веб-приложений становится возможной
- Scala Native позволяет писать на Scala мгновенно запускающийся код и использовать низкоуровневые структуры данных
- Разработка под Android. Cпециализированная библеотека Macroid, предоставляет удобное для использования Android API
- Разработка под iOS. Scala код компилируется под iOS с помощью RoboScala
- ScalaFX- обёртка вогруг JavaFX для разработки десктопного софта
- Scala считается очень перспективным языком с большим будущим
- В данный момент очень мало хороших разработчиков на Scala
Требования к участникам:
- Знание Java или другого с-подобного языка на уровне написания несложных приложений
- Желателен опыт коммерческой разработки
Программа курса
Занятие 1. Введение. Экосистема
- Часть 1. Экосистема JVM
- JVM как открытая платформа
- Обзор экосистемы
- Крупные проекты, связанные со Scala
- Примеры кода в сравнении с Java8
- Инструментарий разработчика
- Часть 2. Введение в Scala
- REPL: read/evaluate/print/loop
- Сборка проекта. maven. sbt. IDE.
- "Hello, world"
- Приложения с использованием Java API: GUI, java.net
- Базовое Scala API. Обращение к веб-сервису, подсчет вхождений заданного слова в ответе.
Занятие 2. Scala. Функциональная и ОО парадигмы
- Часть 1. Scala как язык функционального программирования
- Функции без побочных эффектов
- Рекурсия
- Функция как объект первого класса
- Работа с коллекциями в функциональном стиле: filter/map/reduce
- Примеры реализации базовых алгоритмов в функциональном стиле
- Часть 2. Scala как сочетание функциональной и объектно-ориентированной парадигм
- Особые коллекции: Option, Either, Try, Future
- Синглтоны
- Трейты
- Case-классы
- Сопоставление с образцом
Занятие 3. Scala в проекте. Тестовый проект
- Часть 1. Scala в высоко-нагруженных системах
- Ленивые переменные и параметры
- Ленивые коллекции
- Асинхронность
- Часть 2. Тестовый проект. Бекенд аггрегатора блогов и новостей
- Общее описание
- Выделение задач реального времени и фоновых
- Разбиение на микросервисы
- Структура данных
- Кеширование
- Раcпределение подзадач участникам
Занятие 4. Akka-фреймворк
- Часть 1. Akka. Введение
- Простое приложение на акторах
- Акторы. Очереди сообщений
- Супервизоры
- Таймеры
- Примеры программирования
- Часть 2. Фреймворки
- Persistense
- Кластеры
- Распределенная система акторов
- Шаблоны
Занятие 5. Работа с данными
- Часть 1. Неявные переменные, шаблон "pimp my library"
- Неявные переменные
- Неявные преобразования
- Расширение чужих классов
- Практика программирования
- Часть 2. Работа с данными
- Работа с xml
- Библиотека Json4s
- Библиотека spray-json
Занятие 6. Дополнительные инструменты. DSL
- Часть 1. Средства разработчика. Инструменты тестирования
- sbt
- Scalacheck
- Scalatest
- Scalamock
- Часть 2. Domain specific languages
- Что такое DSL и зачем они нужны
- DSL как расширение синтаксиса Scala
- DSL как независимый язык
Занятие 7. Под капотом. Взаимодействие с Java.
- Часть 1. Под капотом
- Реализация сопоставления с образцом
- Реализация функций как объектов первого класса
- Реализация значений, обычных переменных и ленивых переменных
- Реализация синглтонов
- Реализация коллекций
- Часть 2. Взаимодействие с Java-библиотеками
- Примеры использования Java-библиотек
- Преобразование коллекций
- Особенности создания смешанной иерархии классов Scala и Java
- Особенности работы со Spring
Занятие 8. Spray и Akka-http
- Часть 1. Spray и akka-http. Клиенты
- Пример простого клиентского приложения
- Работа на трех уровнях: соединение, хост, запрос
- Преобразование данных.
- Создание конвейеров
- Часть 2. Spray и akka-http. Серверы
- Пример простого сервера
- DSL для обработки запросов
- Директивы
- Тестирование серверного приложения
Занятие 9. Работа с БД. Система типов
- Часть 1. Система типов
- Рефлексия, манифесты
- Параметризация типов.
- Ковариантность, контравриантность
- Структурные типы
- Отложенные вычисления и бесконечные структуры
- Часть 2. Работа с базами данных
- Простое приложение на основе slick
- Простое приложение на scalikejdbc
- Добавление и изменение данных
- Чтение данных
- Транзакции
Занятие 10. Веб-приложения. Другие применения Scala
- Часть 1. Web-приложения
- Разработка простого сайта на Play Framework
- Обработка HTML-форм
- Кеширование ответов
- Простой сайт на Lift
- Карта сайта
- Сеансы
- Часть 2. Другие примеры применения
- shapeless
- cats
- kafka
- spark
Расписание
Сб 13:30 - 16:30
Вс 12:00 - 15:00
Дни | 1,25 месяца (40 ак. часов) |
---|---|
Дата курса | 18.май |
Город | Все города |
Формат обучения | Корпоративный |
Оставьте отзыв
Заполните обязательные поля *.