Почему доменные модели становятся важнее в эпоху ИИ
Архитектура программного обеспечения — это часто спор, в котором нет победителя. Вы строите одну систему. Вы никогда не строите альтернативную систему в тех же условиях. Это делает любое решение не поддающимся проверке на ошибочность. Когда система дает сбой, люди винят домен или команду. Архитектуру винят редко, потому что нет контрольной группы для сравнения.
Нам нужен способ тестирования наших проектных решений. Мы должны отделять сущностную сложность от случайной сложности. Сущностная сложность — это сама суть проблемы. Случайная сложность — это беспорядок, который мы создаем своими инструментами и процессами.
ИИ делает реализацию практически бесплатной. Это колоссальный сдвиг. В прошлом трудности написания кода заставляли разработчиков создавать более совершенные структуры. Если ваш код был беспорядочным, им становилось трудно управлять. Эта боль служила петлей обратной связи.
ИИ устраняет это трение. Он может писать грязный, плохо структурированный код так же быстро, как и чистый. Боль от плохой модели больше не бьет по разработчику на этапе сборки. Вместо этого боль переносится в продакшн. Вы получаете поврежденные данные и невыполнимые задачи по интеграции.
Богатая доменная модель — это инструмент для предотвращения этого. Она выполняет три конкретные задачи:
- Она помогает изучить домен, заставляя придавать концепциям форму.
- Она определяет домен, так что вопрос «что строить» перестает быть гаданием.
- Она документирует домен в коде, который остается актуальным благодаря компилятору.
Чтобы работать эффективно, доменная модель должна следовать трем правилам:
- Сохраняйте сущностную сложность единой. Не разбрасывайте одну концепцию по сотням микросервисов.
- Обеспечивайте обратную связь. Неверное предположение должно вызывать ошибку компиляции, а не скрытый баг.
- Делайте изменения дешевыми. Вы должны исправлять концепцию в одном месте, а не искать её в десяти сервисах.
Если вы слишком рано разделяете свой домен на микросервисы, чтобы решить проблему «раздутости», вы зачастую просто переносите беспорядок. Вы меняете один «божественный объект» на распределенный хаос, который труднее отслеживать. Зависимость, которую вы не видите, — это зависимость, которая сломается в продакшне.
Цель богатой доменной модели — не в том, чтобы быть правой. Цель — сделать ошибку видимой, пока стоимость её исправления еще мала.
Source: https://dev.to/leonpennings/what-is-the-reason-for-using-a-rich-domain-model-in-the-age-of-ai-3gg
Optional learning community: https://t.me/GyaanSetuAi