Maison > Article > développement back-end > Compétences de codage et réflexion nécessaires pour les ingénieurs PHP seniors
Les bons développeurs se définissent souvent par la qualité du code. Dans l’industrie du logiciel, écrire du bon code signifie économiser de l’argent sur les tests, la mise à jour, l’extension ou la correction des bogues. Dans cet article, je vais vous montrer quelques exemples concrets de techniques et d'idées pour vous aider à nettoyer votre code logique, à le refactoriser et à le rendre plus robuste et modulaire. Ces conseils vous aideront non seulement à refactoriser votre ancien code, mais vous donneront également de bons conseils sur la façon d'écrire du code plus propre à partir de maintenant.
Qu'est-ce que le refactoring et pourquoi en avons-nous besoin ?
Le refactoring fait référence à des méthodes et des étapes qui nous aident à écrire du code concis. Ceci est important pour les autres développeurs qui peuvent lire, étendre et réutiliser notre code sans trop de modifications.
Le contenu suivant vous montrera quelques exemples de refactorisation du code logique pour l'améliorer.
Ne refactorisez pas le code de production sans tests unitaires
Mon premier conseil est de ne jamais commencer à refactoriser le code logique sans le tester entièrement unitairement. Mon raisonnement est le suivant : vous vous retrouverez avec une fonctionnalité cassée, difficile à réparer, car il est difficile d'identifier ce qui est cassé. Donc, si vous envisagez de le refactoriser, commencez par des tests. Assurez-vous que les parties que vous envisagez de refactoriser sont couvertes par des tests. Analyse de la couverture du code PHPUnit.
Commencez la refactorisation à partir du bas de votre code
Regardez l'image ci-dessous. Il s'agit d'un véritable projet de système de gestion hôtelière que j'ai trouvé sur Github. Il s'agit d'un projet open source, mais les projets fermés seraient terribles.
Exemple : Refactoring de bas en haut
Regardez ce code, il y a trois niveaux marqués en rouge. Le niveau le plus bas doit être la déclaration entourée de if/else dans la première condition if. Habituellement, le niveau le plus bas est concentré sur un seul traitement logique et est plus facile à refactoriser.
Rendez vos méthodes plus courtes, décomposez-les en méthodes plus petites ou en fichiers de configuration/tables de base de données
Peut-être qu'ici, nous pouvons l'affiner comme ci-dessous Une méthode privée :
Rendez votre méthode plus courte
Le prochain point approfondi sera le téléchargement des paramètres et le chargement des vues. Examinons maintenant la méthode add() après avoir refactorisé les autres parties. Il devient plus concis, plus facile à lire et à tester.
Exemple : Refactorisez d'abord le niveau le plus bas
instruction if S'en tenir aux accolades
La plupart des langages de programmation Tous prend en charge les instructions if sur une seule ligne. Parce que c'est plus simple, certains développeurs l'utilisent de cette façon. Cependant, cela n'est pas facile à lire et peut facilement causer des problèmes, car une ligne vide peut interrompre la condition et provoquer un crash. Regardez la différence entre les deux exemples suivants :
Exemple : Utilisez des accolades
N'utilisez pas de nombres magiques ni de chaînes magiques :
Dans l'exemple suivant, vous remarquez que si la salle dépasse 250, un message d'erreur sera renvoyé. Ici, 250 est considéré comme un nombre magique. Si vous n'êtes pas le développeur qui écrit ceci, il est difficile de comprendre ce que signifie ce numéro.
Exemple : Les nombres magiques
Pour refactoriser cette méthode, on peut souligner que 250 représente le nombre maximum de pièces. Pour remplacer le codage en dur, nous pouvons l'extraire dans une variable $maxAvailableRooms . Cela devient désormais plus compréhensible pour les autres développeurs.
Exemple : Corrigez les nombres magiques
N'utilisez pas d'instructions else si vous n'en avez pas vraiment besoin :
Dans la même fonction availablerooms(), vous remarquez que l'instruction if, où l'on peut facilement se débarrasser de la partie else et la logique reste cohérente.
Exemple : Ignorer l'instruction else
Utilisez un nom qui représente vos méthodes, variables et tests
Dans le Dans l'exemple suivant, vous constaterez que le système de gestion hôtelière dispose de deux méthodes : "index()" et "room_m()". Pour moi, je n'arrive pas à comprendre quel est leur but. Je pense qu'il devrait être facile de comprendre si leurs noms se décrivent.
Exemple : Mauvaise dénomination de méthode
Profitez pleinement des fonctionnalités de votre langage de programmation
De nombreux développeurs ne profitent pas de toute la puissance du langage de programmation qu'ils utilisent. De nombreuses fonctionnalités peuvent vous faire gagner du temps et rendre votre code plus robuste. Jetez un œil à l'exemple ci-dessous et remarquez à quel point il est plus facile d'obtenir le même résultat avec moins de code, en utilisant des astuces de type.
Enfin, je souhaite proposer quelques conseils rapides pour un meilleur codage :
● Utilisez la nouvelle forme de tableau [] pour remplacer l'ancien tableau ().
● Sauf s'il est important de ne pas vérifier le type de données, utilisez l'opérateur === au lieu de ==.
● C'est toujours une bonne idée de donner aux méthodes publiques des noms courts et descriptifs. Les méthodes privées peuvent utiliser des noms plus longs car leur portée est plus limitée.
● Utilisez uniquement des noms génériques tels que add () pour les méthodes qui implémentent l'interface, et utilisez des noms descriptifs tels que addUser () ou addDocument () pour les méthodes de classe individuelles.
● Supprimez les méthodes inutilisées de la classe.
● Utilisez le préfixe is/has pour les fonctions qui renvoient des valeurstelles que booléennes : isAdmin ($user), hasPermission ($user).
● Utilisez toujours des modificateurs d'accès sur les méthodes et propriétés de classe.
● Faites attention à la pollution de l'interface : utilisez uniquement des méthodes accessibles publiquement aux utilisateurs.
● Organisez les méthodes de classe avec les méthodes publiques en haut.
● Appliquez toujours le concept de responsabilité unique au sein d'une classe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!