Автоматизируйте сопоставление данных с помощью мощного MapStruct.
Одним из золотых правил разработки программного обеспечения является разделение. Это означает, что несвязанная системная логика разделена на отдельные компоненты, так что любые изменения в одной части не должны иметь или минимально влиять на другую системную логику.
Многие популярные шаблоны или принципы проектирования программного обеспечения, такие как единая ответственность и абстрактная фабрика, основаны на концепции разделения. Они предназначены для разделения системной логики на независимые компоненты или модули.
Изменения предсказуемы в системе, которая следует правилу проектирования разделения. Это жизненно важно для разработки программного обеспечения, потому что усилия по внедрению улучшений могут быть точно оценены без неопределенностей.
Однако недостаточно поместить системную логику в отдельные компоненты. Системная логика каким-то образом все еще связана вместе, даже если они живут в отдельных компонентах.
Не забывайте тот факт, что программные компоненты имеют общие структуры данных.
Например, в системе электронной коммерции Customer и Order являются общей структурой данных. На приведенной ниже диаграмме видно, что все системные модули, связанные с информацией о клиентах и заказами, зависят от этих двух объектов. Несмотря на хорошо организованный системный модуль, все модули косвенно связаны друг с другом через общую структуру данных. В случае критических изменений в структуре данных, таких как переименование или удаление полей данных, могут быть затронуты все системные модули.
Посмотрите на приведенный ниже пример. Управление заказами вызывает оплату, когда покупатель оформляет заказ в своей онлайн-корзине. Платежный компонент извлекает общую сумму заказа из заказа для обработки платежа.
Небольшое изменение в заказе с переименованием сумма заказа в сумма заказа может нарушить процесс оплаты, поскольку компонент оплаты не может получить общую сумму заказа. Неизбежно, это требует усилий команды инженеров…