Domain-Driven Design (DDD), или проектирование, ориентированное на домен, является одним из самых популярных подходов к разработке программного обеспечения, и это не случайно. Как отлично описал Мартин Фаулер, это подход к разработке программного обеспечения, который концентрирует разработку на программировании доменной модели с глубоким пониманием процессов и правил домена. Создание программного обеспечения таким образом, особенно при работе со сложным доменом, приводит к согласованности между бизнес-людьми и разработчиками, а также к лучшему программному обеспечению, которое точно соответствует потребностям бизнеса. С момента его формального определения Эриком Эвансом ещё в 2003 году, разработчики использовали его для создания программного обеспечения на основе хорошо разработанной модели дизайна. В этом вводном курсе Амихай Мантинбанд подробно разъяснит Domain-Driven Design, используя свой практический опыт, чтобы сделать концепцию легко усваиваемой.
Посмотреть больше
Это пробный урок. Оформите подписку, чтобы получить доступ ко всем материалам курса. Премиум
Ограничение времени просмотра
Вы можете просматривать пробный урок только 10 минут. Получите полный доступ, чтобы смотреть без ограничений.
Ubiquitous Language as a tool for detecting Domain Objects
Урок 12.
00:03:01
The domain’s invariants
Урок 13.
00:02:45
Enforcing invariants
Урок 14.
00:05:21
Creating the domain objects
Урок 15.
00:10:42
Invariants as Unit Tests
Урок 16.
00:12:23
Enforcing Invariants that rely on dependencies
Урок 17.
00:10:09
The Result Pattern
Урок 18.
00:02:11
Section Recap
Урок 19.
00:03:16
What are Tactical Patterns?
Урок 20.
00:03:34
What is Tactical Design?
Урок 21.
00:03:50
Entities
Урок 22.
00:02:24
Implementing the Entity base class
Урок 23.
00:07:30
Value Objects
Урок 24.
00:02:40
Implementing the Value Object base class
Урок 25.
00:06:03
Aggregates
Урок 26.
00:06:17
Shifting the focus to Aggregates
Урок 27.
00:01:10
Implementing the Aggregate base class
Урок 28.
00:08:35
Structuring the Domain Layer around Aggregates
Урок 29.
00:05:33
Domain Services
Урок 30.
00:03:35
Factories
Урок 31.
00:05:06
Implementing a Static Factory Method
Урок 32.
00:04:41
Repositories
Урок 33.
00:01:41
Disconnected Domain Models
Урок 34.
00:03:19
Repositories and EF Core
Урок 35.
00:03:15
Implementing a Repository
Урок 36.
00:01:17
Section Recap
Урок 37.
00:04:50
Accessing the Domain Layer via a web API
Урок 38.
00:06:46
A system without Domain Events
Урок 39.
00:01:17
Eventual Consistency
Урок 40.
00:05:28
What is a Domain Event?
Урок 41.
00:06:44
The Domain Event Sausage Factory
Урок 42.
00:06:42
Implementing a Domain Event
Урок 43.
00:01:24
Section Recap
Урок 44.
00:01:42
Domain Modeling & Analysis Paralysis
Урок 45.
00:02:29
Domain Model Identity Uniqueness
Урок 46.
00:03:39
Domain Object Deletion
Урок 47.
00:03:22
One Aggregate Per Transaction
Урок 48.
00:03:44
Reference Between Domain Models
Урок 49.
00:00:56
Section Recap
Урок 50.
00:05:12
Application Services vs Domain Services
Урок 51.
00:05:09
Transactional vs. Eventual Consistency
Урок 52.
00:03:58
Rich vs. Anemic Domain Models
Урок 53.
00:02:33
Always Valid vs. Not Always Valid
Урок 54.
00:01:10
Persistence Ignorance
Урок 55.
00:01:21
Section Recap
Урок 56.
00:04:42
What is Strategic Design?
Урок 57.
00:03:31
Sub-Domains
Урок 58.
00:03:41
The 3 types of Sub-Domains
Урок 59.
00:04:15
Context Mapping and Context Maps
Урок 60.
00:04:44
Context Map example
Урок 61.
00:01:45
Team Relationships
Урок 62.
00:03:08
Context Map Patterns
Урок 63.
00:01:19
Section Recap
Урок 64.
00:05:30
Bounded Contexts
Урок 65.
00:05:18
Bounded Contexts vs. Sub-Domains (Problem vs. Solution Space)
Урок 66.
00:04:07
Exploring our Domain’s Bounded Contexts
Урок 67.
00:06:11
Exploring relationships between our Bounded Contexts
Урок 68.
00:05:01
Defining our Context Map
Урок 69.
00:01:10
Section Recap
Урок 70.
00:02:47
What are Integration Events?
Урок 71.
00:04:22
The chain of Integration and Domain Events
Урок 72.
00:04:30
Using a Message Broker for distributing Integration Events
Урок 73.
00:03:57
Error handling when publishing Integration Events
Урок 74.
00:04:26
The Outbox Pattern
Урок 75.
00:04:19
The Integration Events Sausage Factory - Outbox Writer
Урок 76.
00:01:57
The Integration Events Sausage Factory - Integration Event Publisher
Урок 77.
00:05:18
The Integration Events Sausage Factory - Consuming Integration Events
Урок 78.
00:00:46
Section Recap
Урок 79.
00:01:31
Course conclusion
Автор - Dometrain
Dometrain
Курсы, разработанные настоящими инженерами для реального мира. Курсы Dometrain направлены на предоставление опыта обучения, который программные инженеры могли бы получить, работая в паре с очень опытным и квалифицированным инженером в современной реальной компании.
Команда внимательно читает ваши комментарии и оперативно на них реагирует. Вы можете спокойно оставлять запросы на обновления или задавать любые вопросы о курсе здесь.
Этот курс учит основам Domain-Driven Архитектуры (DDD) посредством демонстрации взаимодействия с клиентами и сложного демонстрационного приложения, а также советами Эрика Эванса.
Domain-Driven Design: работа с устаревшими проектами
Domain-Driven Design: Working with Legacy Projects
Откройте для себя лучшие способы предоставления новых функциональных возможностей и масштабируемости баз унаследованного кода с помощью этого углубленного курса «Domain-Driven Design: работа с устаревшими проектами».
Во время обучения слушатели узнают, как Domain Driven Design помогает в построении Enterprise-систем со сложной бизнес-логикой, проанализируют стратегические (Bounded Contexts) и тактические (Aggregates) подходы к реализации систем и рассмотрят Enterprise-архитектуры, которые могут успешно применяться вместе с DDD. Много времени уделяется рассмотрению практических примеров , что даёт возможность участникам закрепить полученные знания применения с
Проектирование, ориентированное на домен (или DDD) — это один из самых популярных подходов к проектированию программного обеспечения, и есть веские причины для этого. Оно позволяет создавать высокообслуживаемые системы, используя специфические знания домена и основывая реализацию на хорошо разработанных моделях с использованием универсального языка. В этом курсе Амихай Мантинбанд расширит знания, представленные в его начальном курсе, и углубится