Ешь, двигайся, спи Жесткий подход Дэна Кеннеди Телефоны Бизбук - c 10 до 18 по будним дням
 
Наши проекты:
Вход для зарегистрированных пользователей
Регистрация нового пользователя
Каталог книг Новинки Анонсы Заказы / Корзина Рассылка Оплата и Доставка Контакты
Вы находитесь в разделе каталога:
• Предметно-ориентированное проектирование: паттерны, принципы и методы, Миллетт С., Тьюн Н.


Предметно-ориентированное проектирование: паттерны, принципы и методы
Предметно-ориентированное проектирование: паттерны, принципы и методы
Миллетт С., Тьюн Н.
Год выпуска: 2016
Изд-во: Питер
ISBN: 978-5-496-01984-2
Переплёт: мягкий
832 страниц
Цена: 1079.00 грн.
Временно отсутствует     Оставить заявку
Писать программы легко - во всяком случае с нуля. Но изменить однажды написанный программный код, который создали другие разработчики или вы сами каких-то шесть лет тому назад, - гораздо сложнее. Программа работает, но вы не знаете точно, как именно. Даже обращение к экспертам в предметной области ничего не дает, поскольку в коде не сохранилось никаких следов привычного для них языка.

Предметно-ориентированное проектирование (Domain-Driven Design, DDD) - это процесс тесной увязки программного кода с реалиями предметной области.
Благодаря ему добавление в программный продукт новых возможностей по мере его развития становится таким же простым, как и при создании программы с нуля.

Книга "Предметно-ориентированное проектирование: паттерны, принципы и методы" в полной мере соответствует философии DDD и позволяет разработчикам перейти от философских рассуждений к решению практических задач.

Она делится на четыре части:
часть I посвящена философии, принципам и приемам предметно-ориентированного проектирования;
в части II подробно обсуждаются стратегические шаблоны интеграции ограниченных контекстов;
часть III охватывает тактические шаблоны создания эффективных моделей предметной области;
часть IV в деталях описывает шаблоны проектирования, которые позволяют извлекать пользу из модели предметной области и создавать эффективные приложения.




Оглавление книги "Предметно-ориентированное проектирование: паттерны, принципы и методы"




Об авторе................................................................................................................20
О соавторе...................................................................................................................................................20
О научном редакторе..............................................................................................................................20
Благодарности........................................................................................................21
Введение................................................................................................................22
Обзор книги и технологии....................................................................................................................22
Пространство задачи........................................................................................................................23
Пространство решений...................................................................................................................23
Структура этой книги.............................................................................................................................24
Часть I. Принципы и приемы предметно-ориентированного проектирования..........25
Часть II. Стратегические шаблоны: взаимодействие ограниченных контекстов.......27
Часть III. Тактические шаблоны: создание эффективных моделей предметной области..................................................................................................................................................27
Часть IV. Шаблоны проектирования эффективных приложений...................................29
Кому адресована эта книга...................................................................................................................30
Исходный код............................................................................................................................................30
Опечатки.....................................................................................................................................................30
Форумы P2P.WROX.COM...................................................................................................................31
Резюме.........................................................................................................................................................32
От издательства........................................................................................................................................32
Часть I. Принципы и приемы предметно-ориентированного проектирования......................................................................................33
Глава 1. Что такое предметно-ориентированное проектирование?...............................34
Проблемы разработки программного обеспечения для сложных
предметных областей..............................................................................................................................35
Код, созданный без использования общего языка................................................................36
Недостаточная организация..........................................................................................................36
Шаблон "Большой ком грязи" тормозит развитие продукта...........................................37
Недостаточное внимание к предметной области...................................................................37
Как шаблоны предметно-ориентированного проектирования помогают обуздать сложность.................................................................................................................................38
Стратегические шаблоны DDD...................................................................................................38
Тактические шаблоны DDD..........................................................................................................41
Пространство задачи и пространство решения......................................................................42
Приемы и принципы предметно-ориентированного проектирования.................................42
Концентрация на смысловом ядре..............................................................................................43
Изучение через сотрудничество..................................................................................................43
Создание моделей посредством исследований и экспериментов....................................44
Коммуникация...................................................................................................................................44
Понимание границ применимости модели..............................................................................44
Постоянное развитие модели........................................................................................................45
Типичные заблуждения, связанные с предметно-ориентированным
проектированием......................................................................................................................................45
Суть DDD - в тактических шаблонах......................................................................................45
DDD - это фреймворк....................................................................................................................46
DDD - это панацея..........................................................................................................................46
Ключевые идеи..........................................................................................................................................47
Глава 2. Дистилляция предметной области задачи......................................................48
Переработка знаний и сотрудничество............................................................................................48
Достижение единого понимания через общий язык.............................................................49
Важность знаний в предметной области...................................................................................50
Роль бизнес-аналитиков.................................................................................................................51
Непрекращающийся процесс........................................................................................................51
Углубление знаний с помощью экспертов в предметной области..........................................52
Эксперты в предметной области и заинтересованные лица..............................................52
Углубление знаний специалистов со стороны бизнеса........................................................52
Тесное взаимодействие с экспертами в предметной области............................................52
Шаблоны эффективной переработки знаний................................................................................54
Сосредоточьтесь на самых интересных темах.........................................................................54
Начните с вариантов использования.........................................................................................54
Задавайте продуктивные вопросы..............................................................................................54
Схемы и диаграммы.........................................................................................................................55
Используйте CRC-карточки.........................................................................................................56
Не спешите именовать понятия в модели................................................................................56
Разработка через реализацию поведения.................................................................................57
Быстрое прототипирование...........................................................................................................58
Изучайте "бумажные" процессы.................................................................................................59
Ищите уже созданные модели.............................................................................................................59
Разберитесь в истинных намерениях.........................................................................................60
Событийный штурм.........................................................................................................................60
Составление карты воздействий..................................................................................................61
Бизнес-модель организации..........................................................................................................63
Целенаправленное открытие........................................................................................................64
Водоворот исследования модели.................................................................................................65
Ключевые идеи..........................................................................................................................................66
Глава 3. Концентрация на смысловом ядре................................................................68
Зачем нужна декомпозиция предметной области........................................................................68
Как выделить суть задачи.....................................................................................................................69
Старайтесь понять, что стоит за требованиями......................................................................69
Составьте обзор предметной области, в котором обозначены ключевые моменты......70
Как сосредоточиться на главной задаче...........................................................................................71
Дистилляция предметной области задачи...............................................................................72
Смысловое ядро.................................................................................................................................74
Рассматривайте смысловое ядро как продукт, а не как проект...............................................75
Неспециализированные области.................................................................................................75
Поддерживающие области.............................................................................................................76
Как деление на подобласти формирует контур решения..........................................................76
Не все части системы требуют детальной проработки...............................................................76
Уделяйте больше внимания ясности границ, а не совершенству моделей...................77
Реализация смыслового ядра не обязана быть идеальной с самого начала.................78
Создавайте подобласти с прицелом на замену, а не на повторное использование....79
А что, если смысловое ядро отсутствует?........................................................................................79
Ключевые идеи..........................................................................................................................................79
Глава 4. Проектирование на основе модели...............................................................81
Что такое предметная модель?............................................................................................................82
Предметная область и ее модель..................................................................................................82
Аналитическая модель....................................................................................................................83
Программная модель.......................................................................................................................83
Программная модель служит основным представлением предметной модели..........84
Проектирование на основе модели....................................................................................................84
Проблемы, возникающие при заблаговременном проектировании................................85
Командное моделирование............................................................................................................86
Использование единого языка для связывания аналитической
и программной моделей.........................................................................................................................88
Язык переживет вашу программу...............................................................................................89
Язык бизнеса.......................................................................................................................................89
Перевод между языком разработчиков и бизнес-языком...................................................89
Совместная работа над созданием единого языка........................................................................90
Шлифовка языка на конкретных примерах............................................................................91
Учите экспертов в предметной области сосредоточиваться на задаче и не переходить к ее решению......................................................................................................92
Эффективные приемы формирования языка.........................................................................93
Как создавать эффективные предметные модели........................................................................94
Жертвуйте точностью, если она стоит на пути к хорошей модели..................................95
Включайте в модель только то, что имеет отношение к задаче........................................96
Предметные модели полезны лишь временно........................................................................97
Используйте недвусмысленную терминологию....................................................................97
Ограничивайте свои абстракции.................................................................................................97
Применяйте абстракции на правильно выбранном уровне...............................................98
Описывайте в абстракциях поведение, а не реализацию....................................................98
Воплощайте модель в коде как можно раньше и чаще........................................................99
Не останавливайтесь на первой же работоспособной идее................................................99
Когда следует применять проектирование на основе модели..................................................99
Не тратьте силы на моделирование, если это того не стоит............................................100
Сосредоточьтесь на смысловом ядре.......................................................................................100
Ключевые идеи.......................................................................................................................................101
Глава 5. Шаблоны реализации предметной модели...................................................102
Загружаемые примеры кода для этой главы...............................................................................102
Уровень предметной области............................................................................................................103
Шаблоны реализации предметной модели..................................................................................104
Предметная модель........................................................................................................................105
Сценарий транзакции...................................................................................................................109
Модуль таблицы.............................................................................................................................111
Активная запись.............................................................................................................................112
Анемичная предметная модель.................................................................................................112
Анемичная предметная модель и функциональное программирование....................113
Ключевые идеи.......................................................................................................................................117
Глава 6. Обеспечение целостности моделей предметной области с помощью ограниченных контекстов......................................................................................118
Проблемы архитектур с единственной моделью.......................................................................119
Сложность модели может увеличиваться.............................................................................119
Работа нескольких групп над единственной моделью......................................................120
Неоднозначность языка модели................................................................................................121
Применимость предметных понятий......................................................................................121
Интеграция с унаследованным или сторонним кодом.....................................................124
Предметная модель не является моделью предприятия..................................................124
Использование ограниченных контекстов для декомпозиции больших моделей.........125
Определение границ модели......................................................................................................127
Создание контекстов на основе организации разработчиков........................................129
Различия между подобластями и ограниченными контекстами..................................132
Реализация ограниченных контекстов..........................................................................................132
Ключевые идеи.......................................................................................................................................136
Глава 7. Карты контекстов.....................................................................................137
Карта реальности..................................................................................................................................138
Техническая действительность.................................................................................................139
Организационная действительность.......................................................................................139
Отображение актуальной действительности.......................................................................141
Выделение смыслового ядра на карте.....................................................................................141
Определение отношений между ограниченными контекстами...........................................141
Предохранительный слой...........................................................................................................141
Общее ядро.......................................................................................................................................142
Служба с открытым протоколом..............................................................................................143
Отдельное существование...........................................................................................................144
Партнерство.....................................................................................................................................145
Отношения "вышестоящий/нижестоящий"........................................................................145
Отношения на карте контекстов......................................................................................................147
Стратегическая важность карт контекстов..................................................................................147
Сохранение целостности.............................................................................................................148
Основа для планирования работ..............................................................................................148
Понимание принадлежности и ответственности................................................................149
Вскрытие запутанных областей в рабочих процессах на предприятии......................149
Выявление нетехнических преград..........................................................................................149
Способствование налаживанию общения.............................................................................150
Ускорение адаптации новых разработчиков.........................................................................150
Ключевые идеи.......................................................................................................................................150
Глава 8. Архитектура приложения..........................................................................152
Загружаемые примеры кода для этой главы...............................................................................152
Архитектура приложения..................................................................................................................152
Разделение задач, решаемых приложением..........................................................................153
Отделение от сложностей предметной области..................................................................153
Многоуровневая архитектура....................................................................................................153
Инверсия зависимостей...............................................................................................................154
Предметный уровень....................................................................................................................155
Уровень прикладных служб.......................................................................................................155
Инфраструктурные уровни........................................................................................................156
Взаимодействия между уровнями...........................................................................................156
Тестирование в изоляции............................................................................................................157
Не используйте схему данных, общую для всех ограниченных контекстов.............157
Сравнение архитектур приложений и ограниченных контекстов................................158
Прикладные службы............................................................................................................................160
Прикладная и предметная логика............................................................................................162
Определение и экспортирование функций...........................................................................162
Координация выполнения сценариев использования......................................................163
Прикладные службы представляют сценарии использования,
а не CRUD-операции....................................................................................................................164
Предметный уровень как детали реализации......................................................................164
Отчеты о состоянии предметной модели...............................................................................164
Модели чтения и транзакционные модели...........................................................................165
Клиенты приложения..........................................................................................................................166
Ключевые идеи.......................................................................................................................................168
Глава 9. Типичные проблемы команд, начинающих применять предметно-ориентированное проектирование..........................................................................170
Переоценка важности тактических шаблонов............................................................................171
Использование одной архитектуры для всех ограниченных контекстов...................171
Идеализация тактических шаблонов......................................................................................171
Ошибочное принятие строительных блоков за ценность DDD....................................172
Сосредоточенность на коде, а не на принципах DDD.......................................................172
Недооценка истинной ценности DDD: сотрудничество, общение и контекст................173
Получение "большого кома грязи" из-за недопонимания важности контекста.....174
Появление неоднозначности и недопонимания из-за неудач при создании
единого языка..................................................................................................................................174
Получение сугубо технических решений из-за недостатка взаимодействия...........175
Большие затраты времени на то, что не представляется важным.......................................176
Превращение простых задач в сложные.......................................................................................176
Применение принципов DDD к простым областям, не имеющим большого значения для предприятия.........................................................................................................177
Отказ от шаблона CRUD как от антишаблона....................................................................177
Использование шаблона "Предметная модель" для всех ограниченных
контекстов.........................................................................................................................................178
Спросите себя: нужна ли эта дополнительная сложность?.............................................178
Недооценка стоимости применения DDD...................................................................................178
Попытка добиться успеха без мотивированных и целеустремленных
разработчиков..................................................................................................................................178
Сотрудничество с незаинтересованными специалистами...............................................179
Методологии неитерационной разработки...........................................................................179
Применение DDD к любым задачам.......................................................................................180
Жертвование простотой ради ненужной чистоты..............................................................180
Пустая трата сил на поиски подтверждений правоты......................................................180
Постоянное стремление к совершенству кода.....................................................................181
Цель DDD - обеспечить ценность..........................................................................................181
Ключевые идеи.......................................................................................................................................182
Глава 10. Применение принципов, приемов и шаблонов DDD...................................183
Загружаемые примеры кода для этой главы...............................................................................183
Внедрение DDD....................................................................................................................................183
Обучение разработчиков.............................................................................................................184
Общение со специалистами........................................................................................................184
Применение принципов DDD..........................................................................................................185
Понимание замысла......................................................................................................................185
Определение требуемой функциональности.......................................................................186
Понимание действительной картины.....................................................................................187
Моделирование решения............................................................................................................188
Исследования и эксперименты........................................................................................................196
Ставьте свои предположения под сомнение.........................................................................197
Моделирование - это текущая работа...................................................................................197
Не существует неправильных моделей..................................................................................197
Податливый код способствует раскрытию...........................................................................198
Превращение неявного в явное........................................................................................................198
Борьба с неоднозначностями.....................................................................................................199
Давайте названия...........................................................................................................................201
Сначала решение задачи, и только потом ее реализация........................................................201
Не решайте все задачи..................................................................................................................201
Как узнать, что все делается правильно?......................................................................................202
Не стремитесь к идеалу................................................................................................................202
Практика, практика и еще раз практика................................................................................203
Ключевые идеи.......................................................................................................................................203
Часть II. Стратегические шаблоны: взаимодействие
ограниченных контекстов...................................................................205
Глава 11. Введение в интеграцию ограниченных контекстов.....................................206
Загружаемые примеры кода для этой главы...............................................................................206
Как интегрировать ограниченные контексты.............................................................................207
Ограниченные контексты независимы...................................................................................208
Проблемы интеграции ограниченных контекстов на уровне программного кода..208
Использование физических границ для гарантий чистоты моделей..........................213
Интеграция с унаследованными системами.........................................................................214
Экспортирование унаследованных систем в виде служб................................................216
Интеграция распределенных ограниченных контекстов........................................................218
Стратегии интеграции распределенных ограниченных контекстов............................218
Интеграция через базу данных..................................................................................................219
Интеграция через простые файлы...........................................................................................220
RPC.....................................................................................................................................................221
Обмен сообщениями.....................................................................................................................222
REST...................................................................................................................................................223
Проблемы применения DDD в распределенных системах....................................................223
Проблемы с RPC............................................................................................................................224
Распределенные транзакции ухудшают масштабируемость и надежность...............227
Реактивная философия DDD и управление по событиям..............................................229
Проблемы и компромиссы асинхронных сообщений.......................................................231
Технология RPC все еще актуальна?......................................................................................232
Реактивная философия DDD и SOA.............................................................................................233
Представление ограниченных контекстов в виде служб SOA........................................234
Еще шаг вперед с архитектурой микрослужб......................................................................238
Ключевые идеи.......................................................................................................................................240
Глава 12. Интеграция посредством обмена сообщениями.........................................241
Загружаемые примеры кода для этой главы...............................................................................241
Основы обмена сообщениями..........................................................................................................242
Шина сообщений...........................................................................................................................243
Надежный обмен сообщениями................................................................................................244
Сохранить и передать...................................................................................................................245
Команды и события.......................................................................................................................245
Потенциальная непротиворечивость......................................................................................246
Создание приложения электронной коммерции с применением NServiceBus...............247
Проектирование системы............................................................................................................248
Отправка команд из веб-приложения.....................................................................................253
Отправка команд............................................................................................................................258
Обработка команд и публикация событий...........................................................................262
Увеличение надежности внешних вызовов HTTP с помощью
шлюзов сообщений........................................................................................................................270
Потенциальная непротиворечивость на практике.............................................................278
Ограниченные контексты хранят все необходимые им данные локально.................280
Объединяем все вместе в пользовательском интерфейсе................................................289
Сопровождение приложений, использующих обмен сообщениями..................................292
Поддержка версий сообщений..................................................................................................292
Мониторинг и масштабирование.............................................................................................298
Интеграция ограниченных контекстов с применением MASS TRANSIT........................301
Мост обмена сообщениями.........................................................................................................303
Mass Transit......................................................................................................................................303
Ключевые идеи.......................................................................................................................................311
Глава 13. Интеграция с RPC и REST посредством HTTP..........................................313
Загружаемые примеры кода для этой главы...............................................................................313
Преимущества HTTP..........................................................................................................................315
Независимость от выбора платформы....................................................................................315
HTTP понятен любому................................................................................................................315
Множество проверенных инструментов и библиотек......................................................316
Возможность пользоваться своими же API..........................................................................316
RPC............................................................................................................................................................317
Реализация RPC через HTTP....................................................................................................317
Выбор варианта RPC....................................................................................................................333
REST..........................................................................................................................................................334
Разоблачение мифов REST........................................................................................................334
REST для интеграции ограниченных контекстов..............................................................339
Сопровождение приложений REST........................................................................................375
Недостатки интеграции ограниченных контекстов с применением REST...............376
Ключевые идеи.......................................................................................................................................378
Часть III. Тактические шаблоны: создание эффективных
моделей предметной области..............................................................379
Глава 14. Знакомство со стандартными блоками моделирования
предметной области...............................................................................................380
Загружаемые примеры кода для этой главы...............................................................................380
Тактические шаблоны..........................................................................................................................381
Шаблоны моделирования предметной области.........................................................................382
Сущности..........................................................................................................................................382
Объекты-значения.........................................................................................................................385
Предметные службы.....................................................................................................................388
Модули...............................................................................................................................................389
Шаблоны жизненного цикла............................................................................................................390
Агрегаты............................................................................................................................................391
Фабрики............................................................................................................................................394
Репозитории.....................................................................................................................................395
Другие шаблоны....................................................................................................................................396
Предметные события....................................................................................................................396
Регистрация событий....................................................................................................................398
Ключевые идеи.......................................................................................................................................399
Глава 15. Объекты-значения...................................................................................402
Загружаемые примеры кода для этой главы...............................................................................402
Когда использовать объекты-значения.........................................................................................403
Представление описательного понятия, не имеющего индивидуальности...............403
Улучшение ясности........................................................................................................................404
Характерные особенности..................................................................................................................406
Отсутствие индивидуальности.................................................................................................406
Сравнение по атрибутам..............................................................................................................407
Разнообразие возможностей......................................................................................................411
Согласованность.............................................................................................................................411
Неизменяемость.............................................................................................................................411
Комбинируемость..........................................................................................................................413
Автоматическая проверка...........................................................................................................415
Простота тестирования................................................................................................................418
Общие шаблоны моделирования....................................................................................................420
Статические фабричные методы..............................................................................................420
Микротипы.......................................................................................................................................421
Отказ от коллекций.......................................................................................................................424
Сохранение..............................................................................................................................................427
NoSQL................................................................................................................................................427
SQL......................................................................................................................................................428
Ключевые идеи.......................................................................................................................................435
Глава 16. Сущности................................................................................................436
Загружаемые примеры кода для этой главы...............................................................................436
Понимание сущностей........................................................................................................................437
Предметные понятия с индивидуальностью и жизненным циклом............................437
Зависимость от контекста...........................................................................................................438
Реализация сущностей........................................................................................................................438
Идентификация..............................................................................................................................438
Включение логики в объекты-значения и предметные службы....................................445
Проверка и соблюдение правил................................................................................................448
Сосредоточьтесь на поведении, а не на данных...................................................................451
Избегайте ошибки "моделирования реального мира".....................................................454
Проектирование для распределенных окружений.............................................................455
Основные принципы и шаблоны моделирования сущностей...............................................457
Реализуйте проверки и инварианты с помощью спецификаций..................................457
Избегайте шаблона "Состояние"; используйте явное моделирование......................460
Избегайте использования методов чтения/записи с шаблоном "Хранитель"........464
Отдавайте предпочтение функциям без побочных эффектов.......................................465
Ключевые идеи.......................................................................................................................................466
Глава 17. Службы предметной области....................................................................468
Загружаемые примеры кода для этой главы...............................................................................468
Предметные службы............................................................................................................................469
Когда использовать предметные службы..............................................................................469
Внутреннее устройство предметной службы.......................................................................474
Избегайте шаблона "Анемичная предметная модель".....................................................475
Отличие от прикладных служб.................................................................................................475
Применение предметных служб......................................................................................................476
В уровне служб................................................................................................................................476
В предметной области..................................................................................................................477
Ключевые идеи.......................................................................................................................................484
Глава 18. События предметной области...................................................................485
Загружаемые примеры кода для этой главы...............................................................................485
Суть шаблона "Предметные события"..........................................................................................486
Важные предметные происшествия, которые уже случились........................................486
Реакция на события.......................................................................................................................487
Возможная асинхронность.........................................................................................................487
Внутренние и внешние события...............................................................................................488
Обработка событий..............................................................................................................................490
Вызов предметной логики..........................................................................................................490
Вызов прикладной логики..........................................................................................................490
Варианты реализации шаблона "Предметные события".......................................................490
Используйте модель событий .Net Framework....................................................................491
Использование шины памяти....................................................................................................493
Статический класс DomainEvents Уди Дахана....................................................................496
Возврат предметных событий....................................................................................................499
Использование контейнера IoC в качестве диспетчера событий..................................502
Тестирование предметных событий...............................................................................................503
Модульное тестирование............................................................................................................503
Тестирование прикладной службы..........................................................................................505
Ключевые идеи.......................................................................................................................................506
Глава 19. Агрегаты.................................................................................................508
Загружаемые примеры кода для этой главы...............................................................................508
Управление сложными деревьями объектов...............................................................................509
Однонаправленность предпочтительнее...............................................................................509
Ограничение связей......................................................................................................................512
Идентификаторы объектов предпочтительнее ссылок....................................................513
Агрегаты...................................................................................................................................................515
Проектирование на основе предметных инвариантов......................................................517
Более высокий уровень абстракции предметной области...............................................517
Маленькие агрегаты предпочтительнее.................................................................................523
Определение границ агрегатов.........................................................................................................525
eBidder: интернет-аукцион.........................................................................................................525
Согласование с инвариантами...................................................................................................527
Согласование с транзакциями...................................................................................................530
Игнорируйте требования пользовательского интерфейса..............................................531
Избегайте простых коллекций и контейнеров....................................................................532
Не зацикливайтесь на отношениях владения......................................................................532
Реорганизация агрегатов.............................................................................................................533
Главное - потребности сценариев использования, а не соответствие реальности......533
Реализация агрегатов...........................................................................................................................534
Выбор корня агрегата...................................................................................................................534
Ссылка на другие агрегаты.........................................................................................................538
Реализация хранения....................................................................................................................542
Реализация транзакционной согласованности....................................................................547
Реализация потенциальной согласованности......................................................................548
Поддержка одновременного доступа......................................................................................551
Ключевые идеи.......................................................................................................................................553
Глава 20. Фабрики.................................................................................................555
Загружаемые примеры кода для этой главы...............................................................................555
Роль фабрики.........................................................................................................................................556
Отделение использования от создания..................................................................................556
Сокрытие внутренних деталей..................................................................................................556
Сокрытие решения о выборе типа создаваемого объекта................................................559
Фабричные методы в агрегатах.................................................................................................560
Фабрики для восстановления....................................................................................................562
Практическое использование фабрик.....................................................................................563
Ключевые идеи.......................................................................................................................................564
Глава 21. Репозитории...........................................................................................565
Загружаемые примеры кода для этой главы...............................................................................565
Репозитории............................................................................................................................................565
Ошибочные представления о шаблоне..........................................................................................567
"Репозиторий" - это антишаблон?.........................................................................................568
Отличия между предметной моделью и моделью хранения...........................................568
Обобщенный репозиторий.........................................................................................................569
Стратегии хранения агрегатов..........................................................................................................573
Использование фреймворка сохранения, способного отобразить предметную модель в модель данных без компромиссов..........................................................................573
Использование фреймворка сохранения, не способного отобразить
предметную модель без компромиссов..................................................................................574
Общедоступные методы чтения и записи.............................................................................574
Шаблон "Хранитель"...................................................................................................................576
Потоки событий..............................................................................................................................578
Прагматизм......................................................................................................................................578
Репозиторий - четко определенный контракт..........................................................................579
Управление транзакциями и единицы работы...........................................................................580
Сохранять или не сохранять.............................................................................................................584
Фреймворки сохранения, автоматически определяющие изменения
в предметных объектах.................................................................................................................585
Необходимость явно сохранять агрегаты..............................................................................586
Репозиторий как предохранительный слой................................................................................587
Другие области ответственности репозитория...........................................................................588
Генерирование идентификаторов сущностей.......................................................................588
Обобщенные сведения о коллекциях......................................................................................590
Одновременный доступ...............................................................................................................591
Контрольные проверки................................................................................................................594
Антишаблоны реализации репозиториев.....................................................................................595
Антишаблон: поддержка универсальных запросов............................................................595
Антишаблон: отложенная загрузка..........................................................................................596
Антишаблон: использование репозиториев для составления отчетов........................596
Реализации репозиториев..................................................................................................................597
Фреймворк сохранения способен отобразить предметную модель
в модель данных без компромиссов.........................................................................................598
Фреймворк сохранения не способен отобразить предметную модель в модель данных без компромиссов...........................................................................................................646
Ключевые идеи.......................................................................................................................................683
Глава 22. Регистрация событий...............................................................................684
Загружаемые примеры кода для этой главы...............................................................................684
Ограничения на хранение состояния в виде моментального снимка.................................685
Конкурентные преимущества от хранения состояния в виде потока событий...............686
Временные запросы.......................................................................................................................687
Проекции...........................................................................................................................................688
Моментальные снимки................................................................................................................689
Агрегаты с поддержкой регистрации событий...........................................................................689
Структурирование.........................................................................................................................690
Сохранение и восстановление...................................................................................................694
Решение проблем одновременного доступа.........................................................................698
Тестирование..............

С этой книгой чаще всего покупают:
Реализация методов предметно-ориентированного проектирования

Реализация методов предметно-ориентированного проектирования

рекомендуем
Вон Вернон
Год выпуска: 2016
Изд-во: Диалектика-Вильямс
Временно отсутствует   Оставить заявку
 
Предметно-ориентированное проектирование: самое основное

Предметно-ориентированное проектирование: самое основное

рекомендуем
Вон Вернон
Год выпуска: 2016
Изд-во: Диалектика-Вильямс
Временно отсутствует Оставить заявку
Цена: 870.00 грн. 
 
Цена: 410.00 грн. 
Предметно-ориентированное проектирование (DDD): структуризация сложных программных систем

Предметно-ориентированное проектирование (DDD): структуризация сложных программных систем

рекомендуем
Эрик Эванс
Год выпуска: 2019
Изд-во: Диалектика-Вильямс

в корзину

Instant Purshare Только на 1 книгу
 
   
Цена: 1050.00 грн. 
   

Хотите оставить отзыв? У Вас возникли вопросы о книге "Предметно-ориентированное проектирование: паттерны, принципы и методы, Миллетт С., Тьюн Н." ? Пишите:

* Текст сообщения:
 
  Отправить
Поиск по каталогу
 поиск в аннотациях
Искать

* Подробнее об условиях доставки смотрите в разделе "Оплата и Доставка" нашего магазина.
Если у Вас возникли вопросы как подобрать и купить книги в нашем интернет-магазине звоните с 9 до 18 по будним дням: Киев 331-04-53, Водафон (050) 809-56-66, Киевстар (067) 408-26-36, Лайф (063) 227-24-47, Интертелеком (094) 831-04-53 или пишите нам

 
   
  Programming - Dmitriy Kotov & Andrey Kotov