Разница между DDD и онтологиями Много было про формальные логики, онтологии и правила вокруг LLM для управления, – встает резонный вопрос… «А в чем разница между онтологиями и DDD?» В общем случае эта разница между «договорились на словах» и «формально доказуемо». И одно другое совершенно не обесценивает, вопрос в степени достаточности. DDD дает неформальный и/или полуформальный язык, который достаточен для коммуникации между экспертами и теми, кто реализует (например, разработчиками). Я напомню, что разработчик – эксперт в разработке, архитектор – эксперт в архитектуре, но не в том, как работает цессия. А ведь с использованием знаний о разработке нужно автоматизировать работу с цессиями. И вот здесь должна произойти передача знаний о предметной области, чтобы реализация отражала то, что в предметной области в модели реализации, выраженной в коде и компонентах. В DDD нет строгости полного формального языка, разработчики все-таки интерпретируют UL и транслируют его в код, а различные интерпретации одних и тех же терминов возможны в разных ограниченных контекстах. Онтологии же – это формальные спецификации, это формальная семантика, основанная на логике. Здесь каждый класс, свойство, отношение имеют точное формальное определение. Это дает возможность ризонерам проверять согласованность, классифицировать концепты, выводить новые факты. Вполне легально построить core-онтологию и расширять ее доменно-специфичными модулями. В итоге, DDD хорош, когда разработчики имеют глубокое понимание домена, команда небольшая и с тесной коммуникацией, в общем, в классической, дисциплинированной разработке, но, как не прискорбно, недостаточно, когда LLM генерит код без глубокого понимания специфики домена, масштаб растет и требует автоматизированной проверки согласованности концептов и инвариантов ну и в целом, когда нужна формальная гарантия соответствия спецификациям (это то, что мы за 20 лет не смогли добиться в широком применении, слишком сложно, но сейчас у нас появляются новые инструменты (которые все еще требуют апробации), где, все больше убеждаюсь, общая сложность может и не снизиться, но вплне может мигрировать в формальные спецификации). DDD остается стратегически ценным для организации мышления о домене, но онтологии добавляют формальную строгость, необходимую для надежной разработки с помощью ИИ. Так что если у вас в 2000-х появилась аллергия на слово онтологии, то сейчас другие времена, другое понимание подхода, другие инструменты и другая потребность :) Вот можно почитать статью на тему : https://arxiv.org/pdf/2410.19736v1 (Combining LLM Code Generation with Formal Specifications and Reactive Program Synthesis)
Разница между DDD и онтологиями Много было про формальные логики, онтологии и…
Из этого канала
- #687📢 Записи ArchDays’25 уже доступны для всех! Делимся отличной новостью для тех,…
📢 Записи ArchDays’25 уже доступны для всех! Делимся отличной новостью для тех, кто любит учиться в удобном темпе: видео с прошедшей конференции уже на…
- #688VibeCoding и UX Я использую несколько набайкоденных решений. И все никак не мог…
VibeCoding и UX Я использую несколько набайкоденных решений. И все никак не мог понять, что с ними не так.
- #689Контролируемое применение языковых моделей в бизнесе Выступил сегодня на…
Контролируемое применение языковых моделей в бизнесе Выступил сегодня на площадке @LLM4dev ► Тема выступления Большие языковые модели изначально ничего не…
- #685Reference architecture for domain-driven distributed big data systems Внезапное…
Reference architecture for domain-driven distributed big data systems Внезапное включение, интересное чтиво.
- #684"Про отличия в доменных моделях Хороший комментарий поступил: Как-бы похожие…
"Про отличия в доменных моделях Хороший комментарий поступил: Как-бы похожие задачи в банках часто сильно отличаются в кажущимися неважными мелочами, которые в…