👨‍💻DEV [Udemy] Андрей Суховицкий ― Основы Domain Driven Design (2024)

[Udemy] Андрей Суховицкий ― Основы Domain Driven D_0.png


[Udemy] Андрей Суховицкий ― Основы Domain Driven Design (2024)

Чему вы научитесь

* Овладение основами DDD: Учащиеся научатся применять концепции и принципы Domain Driven Design, создавая архитектуру, подходящую именно их компании.

* Разработка моделей предметной области: Курс научит студентов создавать точные модели, которые отражают сложности и нюансы бизнес-процессов.

* Ограниченные контексты: Студенты научатся выделять и управлять ограниченными контекстами, в частности для эффективного выделения микросервисов.

* Проектирование агрегатов: Курс обучит, как конструировать агрегаты, обеспечивающие консистентность и транзакционную безопасность.

Материалы курса

4 разделов • 23 лекций • Общая продолжительность 1 ч 42 мин

* Основные концепции DDD: Domain, subdomain, ubiquitous language, bounded context.

* Концепт сущности (Entity) в DDD. Идентификаторы сущностей и генерация ID.

* Концепт объекта-значения (Value object) в DDD. Отличия Value object от Entity.

* Концепт агрегата (Aggregate) в DDD.

1.Основные концепции DDD: Domain, subdomain, ubiquitous language, bounded context.

* Введение

* Предметная область (Domain)

* Повсеместный язык (Ubiquitous language)

* Ограниченный контекст (Bounded context)

* Как поддомены согласуются с ограниченными контекстами

2.Концепт сущности (Entity) в DDD. Идентификаторы сущностей и генерация ID.

* Что такое сущности (Entity)

* Entity identity. Понятие идентичности сущностей

* Application generated id. Генерация ID на стороне приложения

* Persistent mechanism assigns identity. СУБД герерирует ID

* Timing of ID generation. Ранняя и поздняя генерация ID

3.Концепт объекта-значения (Value object) в DDD. Отличия Value object от Entity.

* Value objects VS Entity. Разница сущностей и объектов-значений

* Объекты значения (Value objects)

4.Концепт агрегата (Aggregate) в DDD.

* Введение в агрегаты (Aggregates)

* Update unit. Агрегат как единица обновления.

* Инварианты. Агрегаты как транзакционная граница

* Реализация агрегата с атомарными операциями

* Изоляция транзакций и уровни изоляции

* Оптимистичные блокировки

* Можно ли реализовать агрегат с помощью другой СУБД

* Вопросы формирования агрегата и выбора его размера

* Size matters. Почему мы не хотим делать агрегаты слишком большими?

* Виды согласованности - строгая и конечная (eventual consistency)

* Выбираем размеры наших агрегатов.

Требования:

Минимальный опыт в разработке - знакомство с каким-либо языком программирования, базовое понимание ООП, основы баз данных.

Описание

Этот курс по Domain Driven Design (DDD) предназначен для разработчиков любого уровня подготовки, архитекторов и проектных менеджеров, стремящихся глубоко понять и применять принципы DDD для создания четких и эффективных программных решений. В ходе обучения вы освоите методы моделирования предметной области, что позволит вам разрабатывать программное обеспечение, идеально отражающее бизнес-потребности.

Курс погружает вас в основы создания универсального языка, облегчающего коммуникацию внутри команды и между заинтересованными сторонами. Вы узнаете, как определять ограниченные контексты, что помогает организовать систему таким образом, чтобы минимизировать зависимости и упростить поддержку. Методика выделения ограниченных контекстов является одной из наиболее эффективных и обоснованных при разделении системы на микросервисы.

Особое внимание уделяется разработке агрегатов как единиц изменения, обеспечивающих консистентность и транзакционную безопасность данных. Реальные примеры позволят вам научиться создавать структурированные, устойчивые к изменениям модели, способствующие эффективной и надежной работе приложений.

В курсе обсуждаются вопросы транзакционности, реализации атомарных обновлений агрегатов. Разбираются термины ACID с фокусом на понятия атомарности и изоляции транзакций. Приводятся примеры аномалий, возникающих в слабо-изолированных транзакциях. Кроме классической реализации транзакций СУБД, рассказывается о технике оптимистичной блокировки и возможностях ее применения для атомарного обновления агрегатов.

Завершив курс, вы не только глубже поймете, как строить программы, соответствующие сложным бизнес-требованиям, но и сможете уверенно руководить разработкой сложных систем, применяя на практике лучшие методы DDD.

Для кого этот курс:

* Младшие специалисты и студенты, ищущие углубленные знания в области разработки ПО, которые хотят выделиться на рынке труда, получив компетенции в современных методологиях проектирования.

* Профессионалы, имеющие опыт в разработке программного обеспечения и желающие улучшить свои навыки в проектировании архитектуры приложений, заинтересованые в изучении DDD для создания более чистого, модульного и масштабируемого кода.

* Эксперты, стремящиеся глубже понять принципы проектирования и управления сложными системами, чтобы повысить качество архитектурных решений в своих организациях.

* Руководители разработки, заинтересованные в методиках и подходах, которые помогают улучшить координацию и понимание между членами команды, особенно в мультидисциплинарных и распределенных командах.

Автор: Андрей Суховицкий
. На данном ресурсе были уже темы с данным автором по RabbitMQ и Event Sourcing.

Язык - русский



—————————————————————————

🔗 Продажник:
Доступно пользователям: Зарегистрированный


📥 СКАЧАТЬ КУРС:
🔐 Хотите получить доступ?

Чтобы увидеть скрытые ссылки и ставить лайки, активируйте VIP-статус.

💎 ПОЛУЧИТЬ ДОСТУП Наш Telegram канал
 

Похожие курсы

Назад
Верх