Содержание
- 2. Концепция Предметно ориентированное программирование - это набор принципов и схем, направленных на создание оптимальных систем объектов.
- 3. Задачи Высокое качество ПО, точно реализующее бизнес задачу Единый язык (Ubiquitous Language) Ограниченный контекст (Bounded Context)
- 4. Слои UI Уровень интерфейса пользователя. Отвечает за отображение информации пользователю и интерпретацию команд пользователя. Может содержать
- 5. Контекст Presentation Entities Use cases API consumers
- 6. Понятия Единый язык. Для того чтобы уравнять разработчиков и экспертов предметной области, чтобы было гораздо проще
- 8. Скачать презентацию
Слайд 2Концепция
Предметно ориентированное программирование - это набор принципов и схем, направленных на создание
Концепция
Предметно ориентированное программирование - это набор принципов и схем, направленных на создание
Слайд 3Задачи
Высокое качество ПО, точно реализующее бизнес задачу
Единый язык (Ubiquitous Language)
Ограниченный контекст (Bounded
Задачи
Высокое качество ПО, точно реализующее бизнес задачу
Единый язык (Ubiquitous Language)
Ограниченный контекст (Bounded
Высокий процент покрытия тестами (Code coverage)
Слайд 4Слои
UI
Уровень интерфейса пользователя. Отвечает за отображение информации пользователю и интерпретацию команд пользователя.
Слои
UI
Уровень интерфейса пользователя. Отвечает за отображение информации пользователю и интерпретацию команд пользователя.
Application
Прикладной уровень. Уровень приложения реализует варианты использования приложения на основе домена. Вариант использования можно рассматривать как взаимодействие пользователя с пользовательским интерфейсом.
Domain
Уровень домена реализует основную, независимую от варианта использования бизнес-логику домена/системы. Здесь контролируется и используется состояние, отражающее бизнес-ситуацию, хотя технические детали его хранения делегированы инфраструктуре.
Infrastructure
Уровень инфраструктуры поддерживает другой уровень, реализуя абстракции и интеграцию со сторонними библиотеками и системами. Предоставляет общие технические возможности, поддерживающие более высокие уровни: отправку сообщений для приложения, сохраняемость для домена. Уровень инфраструктуры также может поддерживать шаблон взаимодействия между четырьмя уровнями через архитектурную структуру.
Слайд 5Контекст
Presentation
Entities
Use cases
API consumers
Контекст
Presentation
Entities
Use cases
API consumers
Слайд 6Понятия
Единый язык. Для того чтобы уравнять разработчиков и экспертов предметной области, чтобы
Понятия
Единый язык. Для того чтобы уравнять разработчиков и экспертов предметной области, чтобы
Ограниченный контекст. Это явная граница, внутри которой существует модель предметной области, которая отображает единый язык в модель программного обеспечения.
Предметная область. Это то, что делает организация, и среда, в которой она это делает. Разработчик программного обеспечения для организации обязательно работает в ее предметной области. Следует понимать, что при разработке модели предметной области необходимо сосредоточиться в определенной подобласти, так как практически невозможно создать единственную, всеобъемлющую модель бизнеса даже умеренно сложной организации. Очень важно разделять модели на логические разделенные предметные подобласти (Subdomain) всей предметной области, согласно их фактической функциональности. Подобласти позволяют быстрее определить разные части предметной области, необходимые для решения конкретной задачи.
Entity. Сущность являющаяся уникальной в предметной области, отличительной особенностью которой является уникальный идентификатор.
Value Object. В отличие от entity является не уникальным, сравнение производится по уникальному набору атрибутов.
Domain Service. Операции, выполняемые службой, относится к концепции предметной области, которые не принадлежат ни одной из существующих сущностей, выполняющиеся над различными объектами модели предметной области и не имеющие состояния.
Module. Модули внутри модели являются именованными контейнерами для некоторой группы объектов предметной области, тесно связанных друг с другом. Их цель – ослабление связей между классами, которые находятся в различных модулях. Так как модули в подходе DDD – это неформальные или обобщенные разделы, их следует правильно называть. Выбор их имен является функцией единого языка.
Aggregate. Это кластер из объектов сущностей или значений. То есть эти объекты рассматриваются как единое целое с точки зрения изменения данных. У каждого агрегата есть корень Aggregate Root и граница, внутри которой всегда должны быть удовлетворены инварианты.