[Thinknetica] Dry-rb: что, зачем и как. Тариф Слушатель [Антон Давыдов]

359 

Закрыть
Расчет стоимости
  • 359 
  • 359 
  • 359 
В наличии
Сравнить
Описание

Описание

Программа воркшопа:
1 неделя
3 вебинара
Практические задания
Общение с автором и ответы на вопросы
День 1. Зависимости, DI, IoC containers. Собираем каркас проекта.

Для начала придется разобраться в зависимостях в коде, т.е. в любых библиотеках, классах, модулях, функциях и прочем, что используется в основном юните.
Разберемся в двух способах отслеживания зависимостях: Dependency Injection и базовом. Посмотрим как DI помогает в написании юнит и интеграционных тестов.
Чтобы не увеличивать сложность — разберемся с IoC-контейнерами, реализацией которого является dry-container.
Для менеджмента загрузки рассмотрим dry-system. В конце рассмотрим базовый проект, который позволит добавлять любые слои в систему.

В результате вы сможете:
Разобраться, что такое dry-rb в целом и что такое Layered architecture style и какие проблемы он решает. А также разобраться как помогает DI и контейнеры в создании структуры приложений. После, напишем свое первое приложение используя dry-system.
День 2. Пишем бизнес логику. Railway, result objects и валидации.

Для работы с бизнес логикой мы рассмотрим railway паттерн, который позволяет соединять технические шаги бизнес процесса в цепочку, в которой каждый шаг может завершить весь процесс.
Для того, чтобы railway заработал — мы возьмем DO-notations из dry-monads как способ реализации паттерна. Обсудим как и для чего использовать монады.
А чтобы быть уверенным, что схема данных, с которой мы работаем и которую пишем в базу валидна — воспользуемся dry-schema и dry-validation.

В результате вы сможете:
Научиться использовать railway подход для описания бизнес логики. Разберетесь зачем нужны монады как result objects и как валидировать данные и бизнес логику.
День 3. Добиваем транспортный и персистенс слои. Разбираемся с остальными dry-rb библиотеками.

Рассмотрим способы добавления различных транспортов (http, rabbit, kafka) и persistence-библиотек (rom, sequel, etc) и дополним наш проект.
Кратко рассмотрим оставшиеся dry библиотеки и поговорим где их использовать. А также при чем тут функциональные объекты.
Обсудим, что дальше можно делать со структурой болванки и как ее изменять. Что добавлять, что убирать, как выйти к slice и hexagonal структуре.

В результате:

Соберем систему в единый кусок.
Рассмотрим как добавить любой вид транспорта и персистенс слой.
Рассмотрим оставшиеся библиотеки из dry-rb экосистемы.
Обсудим, дальнейшие шаги для развития или для использования готовой болванки.

Результат:
Разберетесь, зачем нужен dependency injection, как он помогает в поддерживаемости, тестируемости и модульности приложений.
Поймете, при чем тут Inversion of Control (IoC)-контейнеры и какие варианты анализа, на основе зависимостей в контейнерах, можно использовать
Познакомитесь с паттерном railway (не путать с rails way) и узнаете, как этот подход помогает в написании бизнес логики, которая может зафейлиться на любом из шагов.
Создадите простой каркас сервиса, в котором можно использовать любые библиотеки для транспорта (как для консьюминга, так и для http/rpc вызовов) и любые библиотеки для персистенса, не только AR или rom.
Узнаете, какие виды валидации могут быть и как написать валидатор для любой схемы данных.
Узнаете, что есть в руби разработке вне RoR, благодаря чему сможете разобраться не только в hanami, но и в фреймворках на других языках (подходы используются в питоне, джаве, жс и других экосистемах)
Познакомитесь с использованием монады
Требования к участникам:
Опыт разработки на Ruby от года. Важно знать базовые вещи связанные с веб разработкой, такие как MVC, умение делать запросы в базу и писать минимальные тесты.
Профиль на GitHub
Базовые навыки работы с командной строкой и git
Желание разобраться в подходах, отличных от rails way

Отзывы (0)
0 ★
0 оценок
5 ★
0
4 ★
0
3 ★
0
2 ★
0
1 ★
0

Отзывов пока нет.

Только зарегистрированные клиенты, купившие этот товар, могут публиковать отзывы.

Закрыть
Закрыть
Sidebar
0
0
Закрыть

Корзина

Корзина пуста!

Продолжить покупки

в