Ich arbeite an einem Softwareprojekt, in dem wir drei APIs erstellen müssen. Ein für den Heim- Banking - Kanal, eine für die Agentur Kanal und ein dritte für den mobilen Kanal.
Die Agentur-API ist die vollständigste, da sie alle Funktionen bietet. Dann die etwas kleinere Home-API und dann die mobile API.
Die Architekten haben hier eine gemeinsame Ebene erstellt (kanalübergreifende EJB-Services, die von allen APIs gemeinsam genutzt werden). Aber dann sind die APIs anders.
Derzeit gibt es keinen großen Unterschied zwischen den APIs. Das große Team startete mit dem Agentur-Channel und wir passen ihn jetzt für den Home-Channel an. Wir bereichern nur Objekte speziell für unsere Home-App. Ansonsten ist der Code zwischen den APIs zu 95% ähnlich. Die APIs basieren auf Spring MVC und enthalten Controller, Modelle und einige Dienstprogramme.
Grundsätzlich machen die Controller das Mapping von BO zu ChannelObject (es scheint mir nicht der richtige Ort dafür zu sein) und einige zusätzliche Dienstprogramme und Serializer. Alles ist vorerst doppelt vorhanden. Sie sagen, dass der Grund für die Duplizierung ist, dass sie die APIs unabhängig wollen. "Wenn wir morgen ein anderes Verhalten für zu Hause als für die Agentur oder das Handy wollen, werden wir keine Probleme haben !!"
Gibt es einen Fall, in dem wir doppelten Code akzeptieren sollten?