Руководство существует следующим образом:
- Ваш домен не зависит от общих библиотек. Это будет препятствовать развитию (и изменениям) в одном домене, потому что это нарушит поведение другого домена.
- Помогает нам убедиться, что мы не дублируем деловое поведение в разных доменах. Это очень важно.
- Ваш домен не зависит от инфраструктуры. У меня есть сильное подозрение, что это было гораздо важнее в то время, когда люди привыкли помещать логику домена в хранимые процедуры, но это все еще весьма актуально сегодня, потому что она обеспечивает изоляцию логики и ее независимость от хранилищ, хранилищ и т. Д. легко тестируемый.
Учитывая вышеизложенное, можно понять, что некоторый обмен идеален. Действительно, вы уже делитесь некоторыми вещами: базовыми структурами языка и библиотеками базовых классов. Совместное использование некоторых вспомогательных библиотек абсолютно нормально, а в некоторых случаях это очень помогает. При этом вам следует быть очень осторожным:
- Совместное использование бизнес-логики в форме разделяемых вспомогательных библиотек нарушает первое правило, изложенное выше, поскольку бизнес-логика может меняться по мере изменения нашего понимания нашего домена.
- Совместное использование предметно-ориентированных структур данных нарушает первое и второе правило сверху. Специфичные для домена структуры данных могут изменяться по мере того, как меняется наше понимание домена, и наличие нескольких доменов в зависимости от них будет препятствовать этому процессу Это также нарушает второе правило, потому что специфичные для предметной области структуры данных неявно ведут себя с ними.
Конкретно в вашей ситуации это действительно зависит от того, что представляет собой шаблон ошибки:
- Является ли он похожим на некоторую структуру данных, которая гарантирует, что исключения содержат некоторый базовый набор информации, который полезен в отладке и не включает какие-либо доменные структуры данных? Если так, то, вероятно, все в порядке.
- Принимает ли он доменные структуры данных? Тогда я бы сказал, что это не хорошо
- Содержит ли оно какое-либо доменное поведение для интерпретации некоторых доменных данных и заполнения шаблона? Тогда снова нет.
ответ дан SKleanthous 18 January 2019 в 11:46
поделиться