Ruby [Thinknetica PRO] Dry-rb: что, зачем и как (2022)

Малыш Джон
Малыш Джон

Малыш Джон

Редактор
badge 6 лет с нами! badge Награда за 5000 очков репутации badge За 500 сообщений!
Регистрация
26/03/2018
Сообщения
28.959
Репутация
-962
Автор: Thinknetica PRO
Название: Dry-rb: что, зачем и как (2022)

[Thinknetica PRO] Dry-rb: что, зачем и как (2022)


Описание:

Программа:

День 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.
  • Узнаете, какие виды валидации могут быть и как написать валидатор для любой схемы данных.
  • Познакомитесь с использованием монады

Подробнее:
Авторизуйтесь, чтобы посмотреть скрытый контент.

Скачать:
Авторизуйтесь, чтобы посмотреть скрытый контент.
 
Последнее редактирование модератором:

Создайте учетную запись или войдите, чтобы комментировать или скачивать материалы!

У вас должна быть учетная запись, чтобы оставлять комментарии

Зарегистрироваться

Создайте учетную запись. Это просто!

Авторизоваться

У вас уже есть аккаунт? Войдите здесь.

Последние темы автора

Малыш Джон
Ответы
6
Просмотры
8K
ИринАф
ИринАф
Малыш Джон
Ответы
2
Просмотры
4K
ИринАф
ИринАф
Малыш Джон
Ответы
4
Просмотры
7K
Sinedis
Sinedis
Малыш Джон
Ответы
1
Просмотры
5K
kordon
Малыш Джон
Ответы
4
Просмотры
4K
Суперюля
Суперюля

Похожие темы

Малыш Джон
Ответы
0
Просмотры
4K
Малыш Джон
Малыш Джон
Брат Тук
Ответы
0
Просмотры
370
Брат Тук
Брат Тук
Алан-э-Дейл
Ответы
5
Просмотры
3K
EmelynStory’s
EmelynStory’s
Брат Тук
Ответы
0
Просмотры
618
Брат Тук
Брат Тук
Брат Тук
Ответы
0
Просмотры
1K
Брат Тук
Брат Тук
Роджерc
Ответы
0
Просмотры
2K
Роджерc
Роджерc
Брат Тук
Ответы
0
Просмотры
370
Брат Тук
Брат Тук
unxk
Ответы
0
Просмотры
2K
unxk
unxk
Малыш Джон
Ответы
1
Просмотры
2K
bloom
Сверху Снизу