Salut tout le monde. Je suis en train de refactoriser un vieux module de traitement de données et je me retrouve vraiment bloqué sur un point de conception. D’un côté, je pourrais tout réécrire en suivant une approche purement fonctionnelle, ce qui rendrait le code plus prévisible pour la partie transformation, mais ça implique de tout découper en petites fonctions et de changer pas mal d’appels existants. De l’autre, je pourrais juste améliorer l’objet actuel en le rendant plus cohérent, ce serait moins de travail immédiat mais ça laisserait en place certaines complexités cachées. Je n’arrive pas à trancher, et je procrastine depuis deux jours sur ce choix. Des avis ?
|
comment choisir entre refactoriser en mode fonctionnel et améliorer l'objet ?
|
|
Franchement je suis partagé et ta fatigue est palpable. Si l objectif est plus de prévisibilité l approche fonctionnelle peut sembler séduisante car les transformations deviennent plus faciles a suivre mais cela oblige a découper le code et a changer pas mal d appels existants ce qui peut bloquer le reste du travail
Pour moi il faut peser le cout total sur le long terme avec une approche fonctionnelle le module devient plus testable et moins sensible aux effets de bord mais cela peut te faire perdre le confort de l API actuelle et augmenter le boulot de refactor avec l objet actuel on avance vite mais on cache des complexites qui s accroissent sous la surface le bon compromis depend de ta couverture de tests et du risque de regression
J ai l impression que ce dilemme parle surtout de risques et de delais si le coeur du probleme est la maintenance future peut etre que viser une coherence autour d un petit noyau fonctionnel serait un compromis mais est ce que ce serait satisfaisant demain
On peut aussi se poser autrement etudier si le vrai probleme n est pas le contrat d interface peut etre introduire des adaptateurs et des tests de migration sans tout refactoriser c est une option qui permet de gagner du temps sans trahir le sujet et peut aussi viser une solution fonctionnelle plus claire
Si on reformule le probleme comme ce que l on veut livrer sans rupture et avec des garanties cela peut changer la donne et on peut aussi passer par une approche hybride qui evolue selon les retours des tests et des utilisateurs
|
|
« Sujet précédent | Sujet suivant »
|

