• [^] # Re: chi va piano va sano

    Posté par (site web personnel) . En réponse au journal Lutter contre l'overengineering. Évalué à 3.

    J'ai un peu de mal avec ta notion de « ready-to-refactor », pour moi l'unique prérequis pour un refactor c'est d'avoir un minimum de couverture par des tests unitaires (de ma modeste expérience, j'ai appris que je ne savais pas faire de refactoring sans avoir de test...).

    Je soutiens complètement ton point de vue et corrobore ton expérience. J'ai récemment fait un refactoring (un réusinage? une refonte?) d'une application NodeJS relativement complexe et les tests unitaires (automatisés cela va sans dire) m'ont guidé pendant tout les processus. Un point intéressant de langages au typage fort comme OCaml est qu'ils sont très utiles pour réaliser un refactoring: on commence par changer le "haut niveau" de son programme et on suit les répercussions de ce changement à travers les erreurs de compilation pour arriver à un programme qui marche. L'avantage est qu'on a besoin de beaucoup moins de tests unitaires (on peut presque s'en tenir aux tests fonctionnels qui testeraient par exemple l'API d'un service) ce qui réduit la maintenance du logiciel (les tests font aussi l'objet de maintenance!).