Dry-rb: что, зачем и как
Онлайн-воркшоп
воркшоп для Ruby-разработчиков, которые хотят разобраться в библиотеках dry-rb и подходах, отличных от принятых в rails way.
3 дня по 2 часа
29 августа (пн) 19:00 мск
31 августа (ср) 19:00 мск
2 сентября (пт) 19:00 мск
Требования
  • Опыт разработки на Ruby от года.
  • Важно знать базовые вещи связанные с веб- разработкой, такие как MVC, умение делать запросы в базу и писать минимальные тесты.
  • Профиль на GitHub
  • Базовые навыки работы с командной строкой и git
  • Желание разобраться в подходах, отличных от rails way
Результат
За время воркшкопа вы:
  • Узнаете, что есть в Ruby-разработке вне RoR, благодаря чему сможете разобраться не только в hanami, но и в фреймворках на других языках (подходы используются в Python, Java, JS и других экосистемах)
  • Разберетесь с коллекцией библиотек dry-rb и поймете что, когда и для чего использовать
  • Создадите каркас микросервиса на dry-rb, в котором можно использовать любые библиотеки для тренспорта и persistance Подробнее..
Формат
Сроки
1 неделя, 3 вебинара длительностью 2 ч
(29, 31 августа и 2 сентября).
Практика
Часть практики вы будете делать прямо на занятии, а часть – самостоятельно после вебинара.
Коммуникация
У вас будет поддержка в чате, а также на вебинарах будут разбираться типичные вопросы и ошибки, примеры лучших практик и решений.
Программа воркшопа
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, но и в фреймворках на других языках (подходы используются в питоне, джаве, жс и других экосистемах)
      Познакомитесь с использованием монады
      Требования к участникам
      1
      Опыт разработки на Ruby от года. Важно знать базовые вещи связанные с веб разработкой, такие как MVC, умение делать запросы в базу и писать минимальные тесты.
      2
      Профиль на GitHub
      3
      Базовые навыки работы с командной строкой и git
      4
      Желание разобраться в подходах, отличных от rails way
      Как проходит воркшоп
      1
      Онлайн-занятие
      Воркшоп длится 1 неделю, на которой тебя ждут 3 онлайн-занятия.
      2
      Задание
      После занятия ты получишь практическое задание (тарифы Практик и Эксперт), которое позволит отработать и закрепить полученные навыки
      3
      Проверка
      Ведущий проверяет задание (тарифы Практик и Эксперт) и даст рекомендации по его улучшению.
      В процессе ты можешь задавать вопросы и всегда получить помощь
      4
      Решение
      На следующем занятии разберем основные ошибки и ведущий покажет и объяснит правильное решение.
      Воркшоп ведет
      Антон Давыдов
      Solution Architect, бывший dry-rb/hanami core developer
      Люблю распределенные системы, разбираться с системами, а по ночам собирать фабрики.
      Ex опенсорс энтузиаст, мои коммиты можно найти во многих руби репозиториях.
      Работаю как независимый консультант с разными компаниями.
      Помогаю с экстракцией сервисов, а также с анализом и хайлевел архитектурой систем.
      https://github.com/davydovanton
      https://t.me/pepegramming
      Тарифы
      Слушатель
      7900 руб
      6 900 руб

      • Живое участие во всех эфирах
      • Общий чат участников
      • Записи всех эфиров
      • Сертификат об участии
      Выбрать
      Эксперт
      15 900 руб
      14 900 руб

      Живое участие во всех эфирах

      Общий чат участников

      Записи всех эфиров

      Сертификат об участии

      Практические задания

      Проверка заданий


      1 час персональной консультации с ведущим по вашим вопросам
      Выбрать
      Цены для Юр. лиц Слушатель - 7900р. Практик - 10900р. Эксперт - 15900р.
      Оставить заявку на участие
      Оставьте контакты и выберите тариф
      Ваше имя
      Ваш e-mail
      Ваш телефон
      Как вас найти в Telegram?
      Нажимая кнопку, вы соглашаетесь с политикой конфиденциальности