Please enable JavaScript.
Coggle requires JavaScript to display documents.
Глава 5. Проектирование бизнес-логики в микросервисной архитектуре -…
Глава 5. Проектирование бизнес-логики в микросервисной архитектуре
5.1. Шаблоны организации бизнес-логики
5.1.1. Проектирование бизнес-логики с помощью
шаблона «Сценарий транзакции»
Классы
с состоянием
с поведением
Организует бизнес-логику в виде набора процедурных сценариев транзакций, по одному для каждого типа запросов
5.1.2. Проектирование бизнес-логики с помощью шаблона «Доменная модель»
Организует бизнес-логику в виде объектной модели, состоящей из классов с состоянием и поведением
5.1.3. О предметно-ориентированном проектировании
Сущность — объект, обладающий устойчивой идентичностью. Две сущности, чьи атрибуты имеют одинаковые значения, — это все равно разные объекты. В при ложении Java ЕЕ классы, которые сохраняются с помощью аннотации ^Entity из JPA, обычно представляют собой сущности DDD.
Объект значений — объект, представляющий собой набор значений. Два объекта значений с одинаковыми атрибутами взаимозаменяемы. Примером таких объ ектов может служить класс Money, который состоит из валюты и суммы.
Фабрика — объект или метод, реализующий логику создания объектов, которую ввиду ее сложности не следует размещать прямо в конструкторе. Фабрика также может скрывать конкретные классы, экземпляры которых создает. Она реализу ется в виде статического метода или класса.
Репозиторий — объект, предоставляющий доступ к постоянным сущностям и ин капсулирующий механизм доступа к базе данных.
Сервис — объект, реализующий бизнес-логику, которой не место внутри сущ ности или объекта значений.
5.2. Проектирование доменной модели
с помощью шаблона «Агрегат» из DDD
5.2.1. Проблемы с расплывчатыми границами
Инварианты бизнес-объектов
5.2.2. Агрегаты имеют четкие границы
Агрегат — это кластер доменных объектов, с которыми можно обращаться как с еди ным целым. Он состоит из корневой сущности и иногда одной или нескольких сущ ностей и объектов значений.
Агрегаты — это границы согласованности
5.2.4. Размеры агрегатов
5.2.3. Правила для агрегатов
Правило 1. Ссылайтесь только на корень агрегата
Правило 2. Межагрегатные ссылки должны применять первичные ключи
Правило 3. Одна транзакция создает или обновляет один агрегат
5.2.5. Проектирование бизнес-логики
с помощью агрегатов
5.3. Публикация доменных событий
5.3.1. Зачем публиковать события об изменениях
Доменное событие — это класс с именем на основе страдательного причастия про шедшего времени. Он содержит свойства, которые выразительно передают это со бытие. Каждое свойство представляет собой либо простое значение, либо объект.
5.3.3. Обогащение события
5.3.4. Определениедоменных событий
Событийный штурм — это формат собрания для обсуждения сложного домена, сосредоточенный вокруг событий.
Интенсивное определение событий.
Определение причин событий
Определение агрегатов