Refactoriser simplement le code basé sur WordPress
En 2011, je lisais beaucoup sur le travail avec le code hérité, la qualité du code et la refactorisation.
Il y a une citation de Martin Fowler (qui a littéralement écrit le livre sur le refactoring) attribuée à l’ oncle Bob qui m’est resté – et je suis sûr que beaucoup, beaucoup de programmeurs – depuis :
laissez toujours le code derrière vous dans un meilleur état que vous ne l’avez trouvé
Le problème avec cette idée particulière est que je pense que cela peut sembler un peu plus idéaliste jusqu’à ce que vous commenciez vraiment à essayer de la mettre en pratique dans tout ce que vous faites.
Autrement dit, si vous le prenez au pied de la lettre, cela ressemble à chaque fois que vous devez travailler sur une base de code, alors vous devez laisser la base de code entière mieux que lorsque vous l’avez trouvée. Mais plus j’ai essayé d’appliquer cette règle dans mon travail quotidien, plus le code spécifique à WordPress est devenu pratique, plus propre et plus maintenable.
Alors, quand il s’agit de refactoriser du code basé sur WordPress, à quoi cela ressemble-t-il ?
Cela ne va pas être un long post. Au lieu de cela, je vais simplement partager quelques puces que je suis lorsqu’il s’agit de travailler sur du code que j’ai déjà écrit, que je rencontre d’autres, ou qui provient d’une base de code sur laquelle j’ai travaillé avec d’autres dans le passé.
Dans aucun ordre particulier:
- Ne soyez pas idéaliste ; Soyez pratique. La refactorisation d’une base de code entière n’est pas quelque chose de pratique, surtout si la base de code n’est pas enveloppée dans des tests unitaires. Regardez le code sur lequel vous travaillez et voyez quelles modifications mineures vous pouvez apporter pour l’améliorer.
- Utilisez les dernières normes. Vous n’avez pas besoin de configurer un environnement de développement entièrement nouveau pour le code plus ancien. Au lieu de cela, assurez-vous simplement d’avoir de bons renifleurs de code en place. Si vous êtes passé des normes de codage WordPress à PSR, examinez les avertissements ou les avis émis par les renifleurs et essayez de mettre à jour le code uniquement dans ce fichier (ou ensemble de fichiers).
- Fonctions d’aide à l’écriture. Si vos fonctions sont trop longues, cherchez des moyens de les rendre plus faciles à utiliser. Tout d’abord, mettez à jour toutes les structures de contrôle telles que les boucles ou les conditions, puis écrivez des fonctions d’assistance pour les rendre plus faciles à lire.
- Ajouter des tests (si possible). Si vous avez déjà un framework de tests unitaires en place, ajoutez des tests pour votre nouveau code. Si vous n’avez pas le temps ou le cadre, ne vous en faites pas. Même si les programmeurs pragmatiques le prêchent, il n’y a pas toujours le temps d’ajouter des tests. (Cela ne doit pas être une déclaration selon laquelle ils ne sont pas utiles ou ne devraient pas être inclus, mais qu’il n’est pas toujours pratique de les incorporer à un moment donné).
Certaines des choses que je me suis retrouvé à faire dans des projets récents incluent aussi des choses simples :
- mise à jour des noms de variables et de fonctions pour suivre PSR,
- changer les tabulations en espaces,
- ajouter des fonctions d’assistance pour rendre les conditions et les boucles plus lisibles,
- fractionner les classes pour qu’elles aient un plus haut degré de cohésion,
- améliorer les docblocks de chaque fonction
Ce ne sont là que quelques exemples et il ne s’agit évidemment pas d’une liste exhaustive. Mais ce n’est pas le sujet. Au lieu de cela, je cherche simplement à partager comment vous pouvez appliquer la refactorisation du code basé sur WordPress tout en effectuant votre travail quotidien de manière gérable.
Tous les changements ou recommandations ci-dessus sont des choses qui peuvent généralement être faites avec l’aide de l’IDE, quelques raccourcis et avec peut-être une demi-heure de temps supplémentaire (et je suis libéral avec cette estimation).
Donc, non, vous n’avez pas à réécrire une base de code entière. Je ne sais même pas si c’est un objectif pratique vers lequel viser. Mais pouvez-vous réparer un petit élément du système global dont vous êtes responsable ?
Et pourquoi ne pas viser au moins cela ?