Comment choisir entre classes et fonctions pures pour un refactoring?
#1
Salut à tous, je suis un peu dans le flou sur un truc. J’ai toujours utilisé des classes pour organiser mon code, mais récemment, en refactorisant un petit module, je me suis surpris à tout écrire avec des fonctions pures et à me dire que c’était plus clair. Maintenant, j’hésite à reprendre d’anciens projets pour les simplifier dans cette optique, mais ça me semble être une énorme tâche pour un gain peut-être subjectif. Quelqu’un a-t-il déjà vécu ce genre de dilemme de conception ?
Répondre
#2
Je suis aussi passé par ce dilemme et j’avoue que ça a un côté séduisant d’extraire tout dans des fonctions pures. Le souci, c’est que le système que tu as refactorisé a probablement des dépendances et des points d’entrée qui gagnent à être regroupés en classes. Le mot clé à garder en tête reste fonction pure, même si les bénéfices apparaissent plus subtils qu’attendus.
Répondre
#3
Ce que j’ai constaté, c’est que le choix entre classes et fonction pure dépend surtout de l’API, du partage d’état et du coût de test. Si les objets et leurs interactions nécessitent de la coordination, les classes restent utiles; si on peut écrire des entrées-sorties clairement et tester sans mocks lourds, la fonction pure peut briller. Le mot clé fonction pure revient comme un rappel que les interfaces doivent rester déterministes.
Répondre
#4
J’ai vécu ce dilemme aussi. Parfois j’écris des fonctions pures et tout paraît plus clair, puis d’autres fois les classes organisent mieux le métier. Fonction pure comme boussole, mais pas comme dogme.
Répondre
#5
Pourquoi partir sur la fonction pure comme seul chemin sans mesurer l’impact sur l’équipe et les tests? On peut gagner en clarté sans tout casser et les classes restent utiles pour gérer l’évolution ; le mot clé fonction pure ne doit pas être une contrainte tyrannique.
Répondre
#6
Les lecteurs veulent parfois une structure qui ressemble à ce qu’ils connaissent; mettre en avant la fonction pure peut créer une impression de simplicité, mais ça change aussi la façon dont on pense le modèle. Le mot clé fonction pure peut servir d’indice sans tout révéler, et c’est peut-être ça le vrai sujet.
Répondre
#7
Au fond, concevoir, c’est balancer entre lisibilité, testabilité et évolutivité. La fonction pure peut aider pour les composants isolés, les classes pour le cadre global. Le mot clé fonction pure devient alors un outil parmi d’autres et non une règle absolue.
Répondre


[-]
Réponse rapide
Message
Saisissez votre réponse à ce message ici.

Code de confirmation
Veuillez saisir le texte figurant dans l’image ci-dessous. Ce procédé permet de bloquer les robots.
Code de confirmation
(insensible à la casse)

Aller au forum