Що нового?

Придбаний [Thinknetica Pro] Dry-rb: що, навіщо і як. Тариф Слухач

Інформація про покупку
Тип покупки: Складчина
Ціна: 2170 ГРН
Учасників: 0 з 25
Організатор: Квітка Квітка
Статус: Збір коштів
Внесок: 90.3 ГРН
0%
Основний список
Резервний список

Gadzhi

Модератор
програма воркшопу

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

https://privatelink.de/?https://thinknetica.com/pro/workshop_dryrb#form
 
Угорі