програма воркшопу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