Estoy trabajando en un proyecto de software en el que tenemos que crear tres API. Uno para el canal bancario local , uno para el canal 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 doméstica 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.
Por el momento no hay una gran diferencia entre las API. El gran equipo comenzó con el canal de la agencia y ahora lo estamos adaptando para el canal de inicio. Solo estamos enriqueciendo objetos específicamente para nuestra aplicación doméstica. De lo contrario, el código es similar al 95% entre las API. Las API se crean sobre Spring MVC , y tiene (controladores, modelos y amplificadores; algunos utilidades).
Básicamente, los controladores están haciendo el mapeo 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 el motivo 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 lucharemos!"
¿Hay algún caso en el que debamos aceptar un código duplicado?