name

Знания - лучшие инвестиции!

Ваша корзина пуста
На главную магазина

+7 (911) 726-84-54

Хотите получать информацию по новым курсам и их датам проведения?

подписаться на рассылку

(SD) Scala Developer

Код курса: SD
Рейтинг:
(0 голосов)
23 900 р.
Количество:
Дни1,25 месяца (40 ак. часов)
Дата курса
Город
Формат обученияКорпоративный
поделиться

Web-программист

Описание курса

 

Язык программирования 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.май
ГородВсе города
Формат обученияКорпоративный
Оставьте отзыв
Заполните обязательные поля *.
1 2 3 4 5

Находится в разделах

Назад