Я працюю над програмним проектом, де нам потрібно побудувати три API. Один для домашнього банківського каналу, один для агентського каналу та третій для мобільного каналу.
API агентства є найповнішим, оскільки він має всі функціональні можливості. Потім трохи менший Home API, а потім мобільний API.
Тут архітектори створили загальний рівень (міжканальні послуги EJB, якими користуються всі API). Але тоді API відрізняються.
Зараз немає великої різниці між API. Велика команда почала з агентського каналу, і ми зараз адаптуємо її для домашнього каналу. Ми просто збагачуємо об’єкти спеціально для домашнього додатка. В іншому випадку код на 95% схожий між API. API створений на базі Spring MVC , і він має (контролери, моделі та деякі утиліти).
В основному контролери роблять відображення BO на ChannelObject (мені здається, це не правильне місце для цього) та деякі додаткові утиліти та серіалізатори. Наразі все дублюється. Вони кажуть, що причиною дублювання є те, що вони хочуть, щоб API не залежали. "Якщо завтра ми хочемо іншої поведінки вдома, ніж агентство чи мобільний, ми не будемо боротися !!"
Чи є випадок, коли нам слід прийняти повторюваний код?