Estoy trabajando en un proyecto de software donde tenemos que construir tres API. Uno para el canal de banca doméstica , uno para el canal de la agencia y un tercero para el canal móvil .
La API de la agencia es la más completa ya que tiene todas las funcionalidades ... luego una API de inicio un poco más pequeña y luego una API móvil.
Los arquitectos aquí crearon una capa común (servicios EJB de canal cruzado compartidos por todas las API). Pero entonces las API son diferentes.
No hay una gran diferencia por ahora entre las API. El gran equipo comenzó con el canal de la agencia, y ahora lo estamos adaptando para el canal local. Solo estamos enriqueciendo objetos específicamente para nuestra aplicación de inicio. De lo contrario, el código es 95% similar entre las API. La API está construida sobre Spring MVC , y tiene (controladores, modelos y algunas utilidades).
Básicamente, los controladores están haciendo el mapeo de BO a ChannelObject (me parece que no es el lugar correcto para hacerlo), y algunas utilidades y serializadores adicionales. Todo está duplicado por ahora. Dicen que la razón de la duplicación es que quieren que las API sean independientes. "¡Si mañana queremos un comportamiento diferente para el hogar que la agencia o el móvil, no tendremos problemas!"
¿Hay algún caso en el que debamos aceptar código duplicado?