Table des matières
1. Bloc Else complètement inutile " >1. Bloc Else complètement inutile
2. Assignation de valeur " > 2. Assignation de valeur
3. Vérifications des préconditions " > 3. Vérifications des préconditions
4. Convertir If-Else en dictionnaire — Évitez complètement If-Else " > 4. Convertir If-Else en dictionnaire — Évitez complètement If-Else
5. Étendre l'application — évitez d'utiliser complètement If-Else " > 5. Étendre l'application — évitez d'utiliser complètement If-Else
Maison Java javaDidacticiel Comment notre entreprise a-t-elle complètement éliminé 2 000 if-else dans le projet ?

Comment notre entreprise a-t-elle complètement éliminé 2 000 if-else dans le projet ?

Jul 26, 2023 pm 04:29 PM
if-else


Comment notre entreprise a-t-elle complètement éliminé 2 000 if-else dans le projet ?

5 façons de concevoir de meilleurs logiciels et de remplacer If-Else. Exemples débutants à avancés

Permettez-moi juste de dire ceci : If-Else est généralement un mauvais choix.

Cela conduit à des conceptions complexes, à une mauvaise lisibilité du code et peut entraîner des difficultés de refactorisation.

Cependant, If-Else est devenu la solution de facto de branchement de code, et cela a du sens. C'est la première chose enseignée à tous les aspirants développeurs. Malheureusement, de nombreux développeurs n’adoptent jamais une stratégie de branchement plus appropriée.

Le mantra de certaines personnes est : Si-Else est un marteau, tout est un clou.

L'incapacité de savoir quand utiliser une méthode plus appropriée est l'une des choses qui différencient les juniors des juniors.

Je vais vous montrer quelques astuces et modèles qui mettront fin à cette horrible pratique.

La difficulté augmente à chaque exemple.

1. Bloc Else complètement inutile

C'est peut-être l'un des plus gros péchés dont sont coupables les développeurs juniors. L'exemple ci-dessous est un excellent exemple de ce qui se passe lorsqu'on vous dit que If-Else est génial.

Comment notre entreprise a-t-elle complètement éliminé 2 000 if-else dans le projet ?

Supprimez simplement le bloc else` pour simplifier ce processus.

Comment notre entreprise a-t-elle complètement éliminé 2 000 if-else dans le projet ?

Ça a l'air plus professionnel, non ?

Vous constaterez souvent qu'aucun autre bloc n'est réellement nécessaire. Comme dans ce cas, vous souhaitez effectuer une action et revenir immédiatement si une condition spécifique est remplie.

2. Assignation de valeur

Si vous attribuez une nouvelle valeur à une variable en fonction d'une entrée fournie, arrêtez le non-sens If-Else - une approche plus lisible.

Comment notre entreprise a-t-elle complètement éliminé 2 000 if-else dans le projet ?

Aussi simple que cela soit, c'est nul. Premièrement, If-Else peut facilement être remplacé par un commutateur ici. Cependant, nous pouvons simplifier davantage ce code en supprimant complètement else.

Comment notre entreprise a-t-elle complètement éliminé 2 000 if-else dans le projet ?

Si else n’est pas utilisé, nous nous retrouvons avec un code propre et lisible. Notez que j'ai également modifié le style en un retour rapide plutôt qu'une instruction de retour unique - cela ne sert à rien de continuer à tester une valeur si la valeur correcte a déjà été trouvée.


3. Vérifications des préconditions

Habituellement, je trouve que si une méthode fournit une valeur invalide, cela n'a aucun sens de poursuivre l'exécution.

Supposons que nous ayons la méthode DefineGender d'avant, qui nécessite que la valeur d'entrée fournie soit toujours 0 ou 1.

Comment notre entreprise a-t-elle complètement éliminé 2 000 if-else dans le projet ?

Cela n'a aucun sens d'exécuter la méthode sans validation de valeur. Par conséquent, nous devons vérifier certains prérequis avant d’autoriser la méthode à poursuivre son exécution.

En appliquant la technique de codage défensif de la clause de garde, vous vérifierez la valeur d'entrée de la méthode puis continuerez à exécuter la méthode.

Comment notre entreprise a-t-elle complètement éliminé 2 000 if-else dans le projet ?

À ce stade, nous nous assurons que la logique principale n'est exécutée que lorsque la valeur se situe dans la plage attendue.

IF a désormais également été remplacé par un ternaire, car il n'est plus nécessaire de mettre par défaut "inconnu" à la fin.

4. Convertir If-Else en dictionnaire — Évitez complètement If-Else

Supposons que vous deviez effectuer certaines opérations qui sélectionneront en fonction de certaines conditions, nous savons que nous devrons ajouter d'autres opérations plus tard.

Comment notre entreprise a-t-elle complètement éliminé 2 000 if-else dans le projet ?

Peut-être que certaines personnes préfèrent utiliser le If-Else éprouvé. Si vous ajoutez une nouvelle action, ajoutez simplement autre chose. Très simple. Cependant, cette approche n’est pas une bonne conception en termes de maintenance.

Sachant que nous devrons ajouter de nouvelles opérations plus tard, nous pouvons refactoriser If-Else dans un dictionnaire.

Comment notre entreprise a-t-elle complètement éliminé 2 000 if-else dans le projet ?

La lisibilité a été grandement améliorée et le code peut être plus facilement déduit.

Notez que le dictionnaire est placé à l'intérieur de la méthode à des fins d'illustration uniquement. Vous souhaiterez peut-être le fournir ailleurs.

5. Étendre l'application — évitez d'utiliser complètement If-Else

Ceci est un exemple légèrement plus avancé.

Sachez quand éliminer complètement les If en les remplaçant par des objets.

Souvent, vous devrez étendre certaines parties de votre candidature. En tant que développeur junior, vous pourriez être tenté de le faire en ajoutant des instructions If-Else (c'est-à-dire else-if) supplémentaires.

Donnez cet exemple illustratif. Ici, nous devons afficher l’instance Order sous forme de chaîne. Premièrement, nous n'avons que deux représentations sous forme de chaîne : JSON et texte brut. Utiliser If-Else n’est pas un gros problème à ce stade, si l’on peut facilement remplacer les autres, comme mentionné précédemment.

Comment notre entreprise a-t-elle complètement éliminé 2 000 if-else dans le projet ?

Sachant que nous devons faire évoluer cette partie de l'application, cette approche est absolument inacceptable.

Le code ci-dessus viole non seulement le principe « ouvrir/fermer », mais il ne se lit pas non plus bien et peut causer des problèmes de maintenabilité.

L'approche correcte est celle qui suit les principes SOLID - nous le faisons en implémentant un processus de découverte de type dynamique (dans ce cas, le modèle de stratégie).

Le processus de refactorisation de ce processus compliqué est le suivant :

· Extrayez chaque branche dans une classe de stratégie distincte à l'aide d'une interface commune

· Recherchez dynamiquement toutes les classes qui implémentent l'interface commune

· Décidez quelle stratégie exécuter en fonction de la input

Le code pour remplacer l'exemple ci-dessus est le suivant. Oui, c'est bien plus de code. Cela nécessite que vous compreniez comment fonctionne la découverte de types. Mais la mise à l’échelle dynamique des applications est un sujet avancé.

Je ne montre que la partie exacte qui remplacera l'exemple If-Else. Si vous voulez voir tous les objets impliqués, consultez cet aperçu.

Comment notre entreprise a-t-elle complètement éliminé 2 000 if-else dans le projet ?

Jetons un coup d'œil rapide au code.

La signature de la méthode reste inchangée car l'appelant n'a pas besoin de connaître notre refactorisation.

Tout d’abord, récupérez tous les types de l’assembly qui implémentent l’interface commune IOrderOutputStrategy. Ensuite, nous créons un dictionnaire, le nom du displayName du formateur est key et le type est value.

Sélectionnez ensuite le type de formateur dans le dictionnaire et essayez d'instancier l'objet de stratégie.

Enfin, appelez ConvertOrderToString de l'objet stratégie.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment notre entreprise a-t-elle complètement éliminé 2 000 if-else dans le projet ? Comment notre entreprise a-t-elle complètement éliminé 2 000 if-else dans le projet ? Jul 26, 2023 pm 04:29 PM

Tout d’abord, récupérez tous les types de l’assembly qui implémentent l’interface commune IOrderOutputStrategy. Ensuite, nous créons un dictionnaire, le nom du displayName du formateur est key et le type est value. Sélectionnez ensuite le type de formateur dans le dictionnaire et essayez d'instancier l'objet de stratégie.

Comment écrire if-else avec élégance en Java Comment écrire if-else avec élégance en Java Apr 29, 2023 pm 10:04 PM

1. La méthode switch a de bons effets sur le traitement des valeurs d'énumération. Par exemple, différents traitements doivent être effectués pour différents statuts de commande. Parce que les valeurs de statut sont limitées, nous pouvons alors utiliser directement switch pour effectuer différents traitements pour différents statuts : Déclaration originale publicvoidbefore(Integerstatus){if(status==1){System.out.println("Commande non reçue");}elseif(status==2){System.out.println("Commande non expédiée") ; }elseif(statut==3

Allez aux bases du langage - si-sinon Allez aux bases du langage - si-sinon Jul 24, 2023 pm 03:38 PM

if est une instruction avec une condition booléenne. Si la condition est évaluée comme vraie, le code entre accolades après if sera exécuté. Si le résultat est faux, le code entre accolades après else sera exécuté.

Comment utiliser l'opérateur ternaire pour optimiser if-else en Java Comment utiliser l'opérateur ternaire pour optimiser if-else en Java May 02, 2023 pm 11:34 PM

Utilisez l'opérateur ternaire pour optimiser if-else1 et juger l'affectation en fonction de conditions if-else, telles que : Stringid="";if(flag){id="a";}else{id="b";} use L'opérateur ternaire peut être directement optimisé dans une ligne de code : id=flag?"a":"b"; 2. Utilisez des conditions if-else pour déterminer la méthode appelante, telles que : Setset1=newHashSet();Setset2=newHashSet (); if(drapeau){set1.add(

Exécuter simultanément les instructions if et else en C/C++ Exécuter simultanément les instructions if et else en C/C++ Sep 05, 2023 pm 02:29 PM

Dans cette section, nous verrons comment exécuter les parties if et else dans du code C ou C++. Cette solution est un peu délicate. Lorsque if et else sont exécutés l'un après l'autre, c'est comme si l'instruction sans if-else était exécutée. Mais nous verrons ici comment les exécuter séquentiellement s’ils existent. Exemple de code #include<iostream>usingnamespacestd;intmain(){ intx=10; if(x>5) { &

Quelles sont les structures de contrôle de flux courantes en Python ? Quelles sont les structures de contrôle de flux courantes en Python ? Jan 20, 2024 am 08:17 AM

Quelles sont les structures de contrôle de flux courantes en Python ? En Python, la structure de contrôle de flux est un outil important utilisé pour déterminer l'ordre d'exécution du programme. Ils nous permettent d'exécuter différents blocs de code en fonction de différentes conditions, ou d'exécuter un bloc de code de manière répétée. Ce qui suit présentera les structures de contrôle de processus courantes en Python et fournira des exemples de code correspondants. Instructions conditionnelles (if-else) : les instructions conditionnelles nous permettent d'exécuter différents blocs de code en fonction de différentes conditions. Sa syntaxe de base est la suivante : if condition 1 : #when condition

Partage d'astuces : réduisez l'utilisation de if-else et augmentez la lisibilité du code ! Partage d'astuces : réduisez l'utilisation de if-else et augmentez la lisibilité du code ! Oct 27, 2022 am 10:11 AM

Cet article ne vise pas à éliminer ou à discriminer if else. Tout le monde connaît l'utilité de if else. Cet article fournit simplement une idée supplémentaire pour chacun dans certains scénarios spécifiques pour augmenter la lisibilité de notre code.

Un article vous apprend à implémenter JavaScript en cas d'optimisation de branche Un article vous apprend à implémenter JavaScript en cas d'optimisation de branche Mar 14, 2023 pm 07:37 PM

Est-ce que 1 000 conditions de jugement nécessitent 1 000 déclarations if ? Comment optimiser l'instruction if branch ? L'article suivant vous expliquera comment réaliser l'optimisation des branches. J'espère qu'il sera utile à tout le monde !

See all articles