Скачать [Udemy] Основы Domain Driven Design [Андрей Суховицкий]

Sky90

VIP складчик
Platinum
Премиум
Администратор
Регистрация
1 Дек 2015
Сообщения
146.405
Реакции
777.031
Складчина: [Udemy] Основы Domain Driven Design [Андрей Суховицкий]



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

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

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

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

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

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

Младшие специалисты и студенты, ищущие углубленные знания в области разработки ПО, которые хотят выделиться на рынке труда, получив компетенции в современных методологиях проектирования.
Профессионалы, имеющие опыт в разработке программного обеспечения и желающие улучшить свои навыки в проектировании архитектуры приложений, заинтересованые в изучении DDD для создания более чистого, модульного и масштабируемого кода.
Эксперты, стремящиеся глубже понять принципы проектирования и управления сложными системами, чтобы повысить качество архитектурных решений в своих организациях.
Руководители разработки, заинтересованные в методиках и подходах, которые помогают улучшить координацию и понимание между членами команды, особенно в мультидисциплинарных и распределенных командах.
Автор:
Андрей Суховицкий. На данном ресурсе были уже темы с данным автором по RabbitMQ и Event Sourcing.






Спойлер: Содержание
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)
Выбираем размеры наших агрегатов.





 
Сверху