Sto lavorando a un progetto software in cui dobbiamo costruire tre API. Uno per il canale di home banking, uno per il canale dell'agenzia e un terzo per il canale mobile .
L'API dell'agenzia è la più completa in quanto ha tutte le funzionalità .. quindi un'API Home un po 'più piccola e quindi un'API mobile.
Gli architetti qui hanno creato un livello comune (servizi EJB cross channel condivisi da tutte le API). Ma poi le API sono diverse.
Per ora non ci sono grandi differenze tra le API. Il grande team ha iniziato con il canale dell'agenzia e ora lo stiamo adattando per il canale principale. Stiamo solo arricchendo oggetti appositamente per la nostra app domestica. In caso contrario, il codice è simile al 95% tra le API. Le API si basano su Spring MVC e dispongono di (controller, modelli e alcune utility).
Fondamentalmente i controller stanno eseguendo la mappatura di BO su ChannelObject (non mi sembra il posto giusto per farlo) e alcune utility e serializzatori extra. Tutto è duplicato per ora. Stanno dicendo che il motivo della duplicazione è che vogliono che le API siano indipendenti. "Se domani vogliamo un comportamento diverso per la casa rispetto all'agenzia o al cellulare non faremo fatica !!"
C'è un caso in cui dovremmo accettare un codice duplicato?