[LevelUP] Курс Scala Developer
Язык программирования Scala — мультипарадигмальный язык программирования, спроектированный кратким и типобезопасным для простого и быстрого создания компонентного программного обеспечения, сочетающий возможности функционального и объектно-ориентированного программирования.
Курс Scala Developer даст участникам возможность познакомиться с мощнейшим языком программирования Scala, на реальных примерах из практики разработки понять, где, как и когда лучше использовать все его практически бесконечные возможности.
Требования к участникам:
Продажник:
Скрытое содержимое.
Ближайший старт - 14.03.2018
Язык программирования Scala — мультипарадигмальный язык программирования, спроектированный кратким и типобезопасным для простого и быстрого создания компонентного программного обеспечения, сочетающий возможности функционального и объектно-ориентированного программирования.
Курс Scala Developer даст участникам возможность познакомиться с мощнейшим языком программирования 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. Обращение к веб-сервису, подсчет вхождений заданного слова в ответе.
- Часть 1. Scala как язык функционального программирования
- Функции без побочных эффектов
- Рекурсия
- Функция как объект первого класса
- Работа с коллекциями в функциональном стиле: filter/map/reduce
- Примеры реализации базовых алгоритмов в функциональном стиле
- Часть 2. Scala как сочетание функциональной и объектно-ориентированной парадигм
- Особые коллекции: Option, Either, Try, Future
- Синглтоны
- Трейты
- Case-классы
- Сопоставление с образцом
- Часть 1. Scala в высоко-нагруженных системах
- Ленивые переменные и параметры
- Ленивые коллекции
- Асинхронность
- Часть 2. Тестовый проект. Бекенд аггрегатора блогов и новостей
- Общее описание
- Выделение задач реального времени и фоновых
- Разбиение на микросервисы
- Структура данных
- Кеширование
- Раcпределение подзадач участникам
- Часть 1. Akka. Введение
- Простое приложение на акторах
- Акторы. Очереди сообщений
- Супервизоры
- Таймеры
- Примеры программирования
- Часть 2. Фреймворки
- Persistense
- Кластеры
- Распределенная система акторов
- Шаблоны
- Часть 1. Неявные переменные, шаблон "pimp my library"
- Неявные переменные
- Неявные преобразования
- Расширение чужих классов
- Практика программирования
- Часть 2. Работа с данными
- Работа с xml
- Библиотека Json4s
- Библиотека spray-json
- Часть 1. Средства разработчика. Инструменты тестирования
- sbt
- Scalacheck
- Scalatest
- Scalamock
- Часть 2. Domain specific languages
- Что такое DSL и зачем они нужны
- DSL как расширение синтаксиса Scala
- DSL как независимый язык
- Часть 1. Под капотом
- Реализация сопоставления с образцом
- Реализация функций как объектов первого класса
- Реализация значений, обычных переменных и ленивых переменных
- Реализация синглтонов
- Реализация коллекций
- Часть 2. Взаимодействие с Java-библиотеками
- Примеры использования Java-библиотек
- Преобразование коллекций
- Особенности создания смешанной иерархии классов Scala и Java
- Особенности работы со Spring
- Часть 1. Spray и akka-http. Клиенты
- Пример простого клиентского приложения
- Работа на трех уровнях: соединение, хост, запрос
- Преобразование данных.
- Создание конвейеров
- Часть 2. Spray и akka-http. Серверы
- Пример простого сервера
- DSL для обработки запросов
- Директивы
- Тестирование серверного приложения
- Часть 1. Система типов
- Рефлексия, манифесты
- Параметризация типов.
- Ковариантность, контравриантность
- Структурные типы
- Отложенные вычисления и бесконечные структуры
- Часть 2. Работа с базами данных
- Простое приложение на основе slick
- Простое приложение на scalikejdbc
- Добавление и изменение данных
- Чтение данных
- Транзакции
- Часть 1. Web-приложения
- Разработка простого сайта на Play Framework
- Обработка HTML-форм
- Кеширование ответов
- Простой сайт на Lift
- Карта сайта
- Сеансы
- Часть 2. Другие примеры применения
- shapeless
- cats
- kafka
- spark
Скрытое содержимое.
http://levelp.ru/courses/programmirovanie/course-scala-developer/
Ближайший старт - 14.03.2018