Dry-rb: какво, защо и как - курс 4900 rub. от ThinkNetica, обучение 3 уебинара, Дата 27 ноември 2023 г.
разни / / November 27, 2023
формат
3 уебинара с продължителност 2 часа
Практикувайте
Ще направите част от практиката направо в клас, а част от нея сами след уебинара.
Комуникация
Ще имате поддръжка в чат на живо, а уебинарите ще обхващат често срещани въпроси и грешки, примери за най-добри практики и решения.
Резултат
- Ще разберете защо е необходимо инжектиране на зависимости, как то помага за поддържаемостта, възможността за тестване и модулността на приложенията.
- Ще разберете какво общо имат контейнерите на Inversion of Control (IoC) и какви опции за анализ можете да използвате въз основа на зависимостите в контейнерите
- Запознайте се с железопътния модел (да не се бърка с релсовия път) и научете как този подход помага при писането на бизнес логика, която може да се провали на всяка от стъпките.
- Създайте проста рамка на услугата, в която можете да използвате всякакви транспортни библиотеки (като както за потребителски, така и за http/rpc повиквания) и всякакви библиотеки за постоянство, не само AR или rom.
- Ще научите какви видове валидиране може да има и как да напишете валидатор за всяка схема на данни.
- Ще научите какво има в разработката на Ruby извън RoR, благодарение на което ще можете да разбирате не само hanami, но и рамки на други езици (подходите се използват в Python, Java, JS и други екосистеми)
- Научете как да използвате монада
Изисквания към участниците
1. Една година опит в разработката на Ruby. Важно е да знаете основни неща, свързани с уеб разработката, като MVC, възможността да правите заявки към базата данни и да пишете минимални тестове.
2. Профил в GitHub
3. Основни команден ред и git умения
4. Желание за разбиране на подходи, различни от релсовия път
3 уебинара
Практически задачи
Комуникация с автора и отговори на въпроси
Ден 1. Зависимости, DI, IoC контейнери. Сглобяваме рамката на проекта.
- Първо, ще трябва да разберете зависимостите в кода, т.е. във всички библиотеки, класове, модули, функции и т.н., които се използват в основното устройство.
- Нека разгледаме два начина за проследяване на зависимости: Инжектиране на зависимости и основен. Нека да видим как DI помага при писането на модулни и интеграционни тестове.
- За да не увеличаваме сложността, нека разгледаме IoC контейнерите, чиято реализация е сух контейнер.
- За управление на натоварването помислете за суха система. Накрая ще разгледаме основен проект, който ще ви позволи да добавите всякакви слоеве към системата.
В резултат на това ще можете да:
Разберете какво е dry-rb като цяло и какво е стилът на многослойната архитектура и какви проблеми решава. И също така разберете как DI и контейнерите помагат при създаването на структури на приложения. След това ще напишем първото си приложение, използвайки суха система.
Ден 2. Ние пишем бизнес логика. Железница, резултатни обекти и валидиране.
- За да работим с бизнес логиката, ще разгледаме железопътния модел, който ви позволява да свържете техническите стъпки на бизнес процес във верига, в която всяка стъпка може да завърши целия процес.
- За да може железопътната линия да работи, ние ще вземем DO-нотации от сухите монади като начин за прилагане на модела. Нека обсъдим как и защо да използваме монади.
- И за да сме сигурни, че схемата на данните, с която работим и която записваме в базата данни, е валидна, ще използваме суха схема и суха валидация.
В резултат на това ще можете да:
Научете се да използвате железопътния подход, за да опишете бизнес логиката. Ще разберете защо монадите са необходими като резултатни обекти и как да валидирате данни и бизнес логика.
Ден 3. Добавяне на транспортни и постоянни слоеве. Нека да разгледаме останалите библиотеки dry-rb.
- Нека да разгледаме начини за добавяне на различни транспорти (http, rabbit, kafka) и библиотеки за постоянство (rom, sequel и т.н.) и да разширим нашия проект.
- Нека разгледаме накратко останалите сухи библиотеки и да поговорим къде да ги използваме. И какво общо имат с това функционалните обекти?
- Нека обсъдим какво може да се направи по-нататък със структурата на заготовката и как да я променим. Какво да добавите, какво да премахнете, как да стигнете до резена и шестоъгълна структура.
Като резултат:
Нека сглобим системата в едно цяло.
Нека да разгледаме как да добавите всякакъв вид транспортен и постоянен слой.
Нека да разгледаме останалите библиотеки от dry-rb екосистемата.
Нека обсъдим по-нататъшни стъпки за развитие или за използване на готова заготовка.