Проєктуйте ефективні та стійкі архітектури програмного забезпечення, комбінуючи Domain-Driven Design та Residuality.
Існує безліч способів вирішення проблеми, але лише деякі з них найефективніші, і ще менша кількість зберігає довгострокову стійкість під впливом вимог бізнесу. Часто архітектури програмного забезпечення стають надто складними через неефективні підходи до проєктування, що може перешкоджати як розробці програмного забезпечення, і його супроводу.
Цей курс знайомить із потужними інструментами для розробки ефективних та стійких архітектур програмного забезпечення.
Тактичний Domain-Driven Design забезпечує ефективність в той час, як Residuality допомагає створювати системи стійкі до змін у бізнесі. У ході практичних вправ учасники навчаться застосовувати ці концепції для створення архітектур, здатних виживати у світі мінливих бізнес-цілей.
Це практичний курс, під час якого ви братимете участь у спільних вправах, обговореннях та вивченні кейсів для поглиблення розуміння.
Для кого?
Цей курс призначений для архітекторів програмного забезпечення та інженерів, які бажають покращити свої навички в області проєктування архітектури. попри те, що курс спрямований на фахівців з деяким досвідом роботи в галузі розробки програмного забезпечення, він доступний будь-кому, хто зацікавлений у покращенні навичок у проєктування. Ви повинні розглянути можливість участі, якщо ви:
- Архітектор програмного забезпечення
- Інженер-програміст
- Технічний лідер
- Менеджер з розробки програмного забезпечення
Цілі Навчання
- Зрозуміти, що означає "якісна" архітектура та як оцінити її якість
- Навчитися визначати та збирати необхідні вступні дані перед початком проектування архітектури
- Вивчити концепцію "Агрегату" у тактичному DDD для забезпечення цілісності даних у розподілених системах
- Навчитися визначити кандидатів на агрегати, що відображають доменну модель
- Зрозуміти різні шаблони інтеграції між компонентами та їх вплив на силу зв'язку (coupling)
- Навчитися використовувати теорію Residuality для проектування стійких систем
Програма
День 1
- Що таке "хороша" архітектура? Вивчаємо властивості архітектури, визначаємо їх важливість та вчимося методам їх кількісної та якісної оцінки.
- До проєктування: Визначаємо необхідні вхідні дані для проєктування архітектури програмного забезпечення та джерела даних.
- "Подія" - це наше все: Працюємо в групах над вправами про проєктування, порівнюємо підходи "засновані на станах" та "засновані на подіях" у проєктування архітектури, формулюємо евристики, які допоможуть вам вибирати між ними.
- Забезпечення узгодженості даних: Відкриваємо могутність ключової концепції тактичного DDD – "Агрегата". Дізнаємось, як використання цієї концепції забезпечує цілісність даних та дотримання бізнес-інваріантів.
День 2
- Пошук кандидатів на агрегати: Ключ до створення якісної архітектури тактичного рівня – знайти агрегати, які відображають доменну модель, вивчаємо евристики, які нам у цьому допоможуть. Беремо участь у практичній вправі з визначення агрегатів за допомогою Event Storming.
- Паттерни інтеграції та зв'язність: Дізнаємося про різні типи патернів інтеграції та їх вплив на ступінь зв'язності між компонентами. Участь у практичних вправах щодо вибору правильного патерну інтеграції.
День 3
- Введення в Теорію Residuality: Вивчаємо, як теорія формує основу для проектування систем програмного забезпечення стійким та поведінкою.
- Випускна Вправа: працюємо у групах над проектуванням прагматичної та стійкої архітектури програмного забезпечення.
забезпечення, застосовуючи всі концепції, вивчені під час курсу.
Формат
Офлайн або онлайн, 3 дні, лише 18 годин.
Вимоги
- Досвід розробки архітектури програмного забезпечення не потрібні.
- Потрібний досвід роботи інженером-програмістом.
- Тиха кімната дозволяє учасникам зосередитись на курсі та вправах.
- Готовність працювати в невеликих групах з іншими учасниками та робити свій внесок в обговорення та вирішення завдань.
Максимальний розмір групи: 20 осіб