Чистая архитектура/DDD: лучшие практики для сложных объектов-ценностейPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Чистая архитектура/DDD: лучшие практики для сложных объектов-ценностей

Сообщение Anonymous »

Я создаю PHP-приложение, используя принципы чистой архитектуры.
Мне нужен объект денежного значения на уровне домена, и я пытаюсь понять, что сегодня считается лучшей практикой.
Похоже, существует несколько возможных подходов, каждый из которых имеет существенные недостатки:
  • Реализовать свой собственный неизменяемый объект денежного значения с помощью таких операций, как сложение, вычитание, умножение и т. д.
    • Это дает полный контроль, но создается ощущение, будто заново изобретаешь что-то, что уже является решенной проблемой.
  • Использовать существующую библиотеку (например, кирпич/деньги) непосредственно внутри уровня домена.
    • Это вводит прямую зависимость от сторонней реализации внутри основного домена.
  • Скройте стороннюю библиотеку за интерфейсами/адаптерами.
    • Это позволяет избежать прямого связывания, но может привести к появлению ненужной абстракции и шаблона для объекта значения.
  • Сохраните Money как простой держатель данных и переместите арифметические операции в отдельные сервисы.
    • Это может привести к анемическому домену модель и разбросанные бизнес-правила.
Я пытаюсь избежать ненужного чрезмерного проектирования, но также не хочу изобретать велосипед, если уже существует широко распространенный подход.
P.S. Речь идет не только о деньгах, но и о других сложных объектах-значениях с нетривиальным поведением.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»