От монолитных моделей предметной области - к модульным (Максим Цепков на WIAD-2017) — различия между версиями

Материал из MaksWiki
Перейти к: навигация, поиск
м
м
Строка 28: Строка 28:
 
* Контексты для операционных документов - на примере оптовой торговли
 
* Контексты для операционных документов - на примере оптовой торговли
 
* Контексты для справочников - на примере каталога товаров
 
* Контексты для справочников - на примере каталога товаров
 +
 +
{{----}}
  
 
= Презентация =
 
= Презентация =
Строка 33: Строка 35:
 
[[Файл:Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf|left|page=-|300px]]
 
[[Файл:Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf|left|page=-|300px]]
  
[[Категория:Доклады]]
+
[[Категория:Доклады]][[Категория:DDD]][[Категория:Архитектура]]

Версия 14:05, 18 февраля 2017

Доклад прочитан 18.02 на World Information Architecture Day-2017 в Петербурге
Программа встречи 
Анонс выступления в блоге
Видео ожидается

Доклад про построение моделей предметной области. 20 лет назад делали большие монолитные ERP, но сейчас нет сомнений, что гибкий и быстро развиваемый софт должен быть модульным, а объекты – инкапсулировать сложность. Тот же путь проходят системы понятий и модели, описывающие предметную область, и Domain-Driven Design перенес наследование, полиморфизм, инкапсуляцию, плагины и другие подходы к разработке софта на работу с онтологиями и моделями предметной области.

Краткое содержание

Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf
Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf
Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf

Цельная модель предметной области - идеалистичный миф прошлого

  • Приложения давно модульные, а модель предметной области часто хотят построить на общей непротиворечивой системе понятий
  • Это основано на убеждении, что существует непротиворечивая и целостная картина мира, которую мы можем не знать, но выясняем
  • Может быть, в мире идеальных объектов Платона и Декарта так и есть, но на практике целостная картина оказывается слишком жесткой

Разрабатывая Domain Driven Design, Эрик Эванс осознал эту проблему и предложил решение - Ограниченный контекст (bounded context) (Эрик Эванс. DDD. Часть IV «Стратегическое проектирование»)

  • Предметную область следует разделить на ограниченные контексты (bounded context)
  • Целостность удерживается за счет карты этих контекстов (context map)
  • Имена (понятия) включаются в единый язык
  • Для изоляции контекстов применяем те же подходы ООП, что и для разработки софта
  • Для работы с похожими контекстами тоже применяем подходы ООП

Эрик Эванс описывает конкретные шаблоны, на основе которых формулируется взаимодействие контекстов.

Но в докладе я не пересказывал книгу, а рассмотрел задачу построения контекстов для двух задач

  • Контексты для операционных документов - на примере оптовой торговли
  • Контексты для справочников - на примере каталога товаров

Презентация

Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf Use OOP for Domain Ontology - Tsepkov WIAD-2017.pdf