От монолитных моделей предметной области - к модульным (Максим Цепков на WIAD-2017)
Доклад прочитан 18.02 на World Information Architecture Day-2017 в Петербурге Программа встречи Анонс выступления в блоге Видео ожидается
Доклад про построение моделей предметной области. 20 лет назад делали большие монолитные ERP, но сейчас нет сомнений, что гибкий и быстро развиваемый софт должен быть модульным, а объекты – инкапсулировать сложность. Тот же путь проходят системы понятий и модели, описывающие предметную область, и Domain-Driven Design перенес наследование, полиморфизм, инкапсуляцию, плагины и другие подходы к разработке софта на работу с онтологиями и моделями предметной области.
Краткое содержание
Цельная модель предметной области - идеалистичный миф прошлого
- Приложения давно модульные, а модель предметной области часто хотят построить на общей непротиворечивой системе понятий
- Это основано на убеждении, что существует непротиворечивая и целостная картина мира, которую мы можем не знать, но выясняем
- Может быть, в мире идеальных объектов Платона и Декарта так и есть, но на практике целостная картина оказывается слишком жесткой
Разрабатывая Domain Driven Design, Эрик Эванс осознал эту проблему и предложил решение - Ограниченный контекст (bounded context) (Эрик Эванс. DDD. Часть IV «Стратегическое проектирование»)
- Предметную область следует разделить на ограниченные контексты (bounded context)
- Целостность удерживается за счет карты этих контекстов (context map)
- Имена (понятия) включаются в единый язык
- Для изоляции контекстов применяем те же подходы ООП, что и для разработки софта
- Для работы с похожими контекстами тоже применяем подходы ООП
Эрик Эванс описывает конкретные шаблоны, на основе которых формулируется взаимодействие контекстов.
Но в докладе я не пересказывал книгу, а рассмотрел задачу построения контекстов для двух задач
- Контексты для операционных документов - на примере оптовой торговли
- Контексты для справочников - на примере каталога товаров