MachinManager, TrucManager, BiduleManager, comment s'en sortir ?

a marqué ce sujet comme résolu.

Salut,

Au boulot, la solution sur laquelle on bosse comporte plein de projets type XXXManager, YYYManager, ZZZManager, et se pose aujourd’hui la question de la maintenabilité de ces derniers, dont le code est trop complexe/compliqué pour être repris par "n’importe qui". Comme il n’est pas viable de reprendre ces projets de zéro (ils sont bien trop conséquents), nous cherchons des alternatives viables afin d’en faciliter la maintenance et l’évolutivité.

Une solution proposée consiste en l’écriture d’un wrapper "propre" autour de chaque projet, qui appellerait le "manager" concerné pour effectuer des actions données, en respectant les principes SOLID (et plus spécifiquement le SRP). Nous n’aurions alors qu’à maintenir ce wrapper pour des modifications triviales, et diminuerions par conséquent les actions sur le "manager".

Qu’en pensez-vous ? Avez-vous des alternatives à proposer ?

Merci !

Si tu fais un wrapper, tu vas en gros te contenter d’emballer ton caca. Il sera plus joli, mais ce sera toujours du caca.

Donc :

  • Idéalement tu arrives à dégager les ressources (temporelles et/ou humaines, et financières qui vont avec) pour attaquer le mal à la racine et nettoyer les managers qui posent problèmes.
  • Dans la réalité, ce sera sans doute impossible à court terme, et donc tu devras quand même faire un wrapper, qui servira au moins le temps de faire le nettoyage (ce qui peut signifier « pour toujours »).

Dans tous les cas, il faut clairement chiffrer et faire remonter que tout nettoyage non fait maintenant se paiera à long terme : ce n’est pas parce que le code est planqué derrière une interface qu’il ne faudra pas le maintenir…

S’il est wrappé derrière une interface bien propre, ce qui se passe derrière l’interface n’importe plus. Du coup c’est peut-être envisageable, une fois posé le "mur" (l’API), de voir si tu ne peux pas migrer le code progressivement.

Après ça dépend de ton projet, il n’y a peut-être pas de truc facile à détacher du reste… Perso j’ai toujours trouvé une solution pour refaire progressivement les choses par ce moyen (au début le code n’est qu’un proxy, puis à un moment donné il arrête de forwarder tel appel vers le code legacy pour plutôt le faire exécuter par son remplaçant, etc.), mais je me doute que j’ai probablement toujours eu de la chance.

+1 -0

Je dirais que ça dépend énormément de l’état des managers. S’ils sont bien testés, modulaires et surtout stables (et donc que tu peux les laisser mourir sans trop y toucher et les remplacer par bouts), c’est gérables. Sinon, ça va juste rajouter une couche pour pas grand-chose.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte