Je travaille sur un projet logiciel dans lequel nous devons construire trois API. Un pour le canal de banque à domicile , un pour le canal d' agence et un troisième pour le canal de téléphonie mobile .
L'API de l'agence est la plus complète, car elle possède toutes les fonctionnalités. Ensuite, une API Home un peu plus petite, puis une API mobile.
Les architectes ont créé ici une couche commune (services EJB multicanaux partagés par toutes les API). Mais alors les API sont différentes.
Il n'y a pas de grande différence pour le moment entre les API. La grande équipe a commencé avec le canal de l'agence, et nous l'adaptons maintenant pour le canal domestique. Nous enrichissons simplement les objets de notre application personnelle. Sinon, le code est similaire à 95% entre les API. Les API sont construites sur Spring MVC , et elles ont (contrôleurs, modèles et certains utilitaires).
Fondamentalement, les contrôleurs font le mappage de BO vers ChannelObject (il me semble que ce n'est pas le bon endroit pour le faire), ainsi que certains utilitaires et sérialiseurs supplémentaires. Tout est en double pour l'instant. Ils disent que la raison de la duplication est qu'ils veulent que les API soient indépendantes. "Si demain nous voulons un comportement différent pour le domicile que pour l'agence ou le mobile, nous ne lutterons pas!"
Y at-il un cas où nous devrions accepter le code en double?