PC & Mobile

5 conseils pour écrire un meilleur code

5 conseils pour écrire un meilleur code


Code de duplication toujours se termine mal. Cela conduit à des situations telles que: «J'ai corrigé ce bogue ici, mais j'ai oublié de le faire là-bas» ou «Je dois faire une modification / ajouter une nouvelle fonctionnalité et je dois le faire à cinq endroits différents».

Tout comme le SEC (ne vous répétez pas) énonce le principe:

Chaque élément de connaissance ou de logique doit avoir une représentation unique et non ambiguë au sein d'un système.

Donc avoir moins de code c'est bien: Ça nous sauve tous les deux temps et effort, est plus facile à maintenir et réduit les risques d’apparition de bugs.

Alors, comment pouvons-nous nous débarrasser du code dupliqué? La réponse n’est pas toujours simple, mais extraire la logique des fonctions / variables fonctionne habituellement très bien. Jetons un coup d’œil au code suivant, que j’ai rencontré lors du refactoring d’une application:

Un exemple de code dupliqué

Vous aurez probablement remarqué que la boucle for est exactement la même chose dans les deux fonctions, à part un petit détail: le type d’actualité que nous voulons, qui est soit JavaScript ou Rouille nouvelles. Pour éviter cette duplication, nous pouvons extraire la boucle for dans une fonction, que nous appelons ensuite du getJavascriptNews, getRustNews et getGolangNews les fonctions. Voici comment:

Après avoir extrait la boucle for dans le getNewsContent fonction, notre getJavaScriptNews, getRustNews et getGolangNews les fonctions sont devenues simple, clair one liners.

Refactoring

Cependant, avez-vous réalisé que, encore une fois, les deux fonctions sont exactement la même chose sauf pour la chaîne de caractères que nous passons dans le getNewsContent une fonction? C'est quelque chose qui se produit généralement lorsque nous refactorisons notre code. Le plus souvent, un changement entraîne un autre changement, et ainsi de suite, jusqu'à ce que notre code refactorisé finisse par avoir la moitié de la taille de l'original. Laissez votre code vous dire ce dont il a besoin:

Refactoring

D'où vient notre getJavaScriptNews, getRustNews et getGolangNews les fonctions vont? Nous les avons substitués à un obtenir des nouvelles fonction, qui reçoit le type de nouvelles comme argument. Ainsi, quel que soit le nombre de types de nouvelles que nous ajoutons, nous utilisons toujours la même fonction. C'est appelé abstraction, et nous permet de fonctions de réutilisation, donc être incroyablement utile. L'abstraction est l'une des techniques que j'utilise le plus souvent dans mon code.

Bonus: Rendre la boucle for plus lisible avec les fonctionnalités de l'ES6

C'est le dernier refactoring, je le jure.

Les boucles ne sont pas lisibles avec précision. Avec l’introduction des fonctions de tableau ES6, nous pouvons éviter de les utiliser 95% du temps. Dans notre cas, nous pouvons utiliser Array.filter combiné avec Array.map pour substituer la boucle d'origine:

Utilisation de Array.filter et Array.map pour remplacer la boucle
  • Avec Array.filter, nous ne renvoyons que les éléments dont type est égal au type passé en argument.
  • Avec Array.map, nous ne renvoyons que le contenu propriété du élément oobjet, au lieu de l'élément entier.

Félicitations, après trois simples restructurations, nos trois premières fonctions ont été réduites à deux, beaucoup plus faciles à comprendre et à gérer. De plus, en utilisant l’abstraction, nous avons fait la obtenir des nouvelles une fonction réutilisable.

Afficher plus

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Articles similaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page
Fermer