Автоматизируйте сопоставление данных с помощью мощного MapStruct.

Одним из золотых правил разработки программного обеспечения является разделение. Это означает, что несвязанная системная логика разделена на отдельные компоненты, так что любые изменения в одной части не должны иметь или минимально влиять на другую системную логику.

Многие популярные шаблоны или принципы проектирования программного обеспечения, такие как единая ответственность и абстрактная фабрика, основаны на концепции разделения. Они предназначены для разделения системной логики на независимые компоненты или модули.

Изменения предсказуемы в системе, которая следует правилу проектирования разделения. Это жизненно важно для разработки программного обеспечения, потому что усилия по внедрению улучшений могут быть точно оценены без неопределенностей.

Однако недостаточно поместить системную логику в отдельные компоненты. Системная логика каким-то образом все еще связана вместе, даже если они живут в отдельных компонентах.

Не забывайте тот факт, что программные компоненты имеют общие структуры данных.

Например, в системе электронной коммерции Customer и Order являются общей структурой данных. На приведенной ниже диаграмме видно, что все системные модули, связанные с информацией о клиентах и ​​заказами, зависят от этих двух объектов. Несмотря на хорошо организованный системный модуль, все модули косвенно связаны друг с другом через общую структуру данных. В случае критических изменений в структуре данных, таких как переименование или удаление полей данных, могут быть затронуты все системные модули.

Посмотрите на приведенный ниже пример. Управление заказами вызывает оплату, когда покупатель оформляет заказ в своей онлайн-корзине. Платежный компонент извлекает общую сумму заказа из заказа для обработки платежа.

Небольшое изменение в заказе с переименованием сумма заказа в сумма заказа может нарушить процесс оплаты, поскольку компонент оплаты не может получить общую сумму заказа. Неизбежно, это требует усилий команды инженеров…