déclaration de contrôle


1. [Obligatoire] Dans un bloc switch, chaque cas doit être terminé par un break/retour, etc., ou un commentaire indiquant quel cas le programme continuera à s'exécuter ; Dans un bloc switch, une instruction par défaut doit être incluse et est placé à la fin, même s'il n'a pas de code.


2. [Obligatoire] Les accolades doivent être utilisées dans les instructions if / else / for / while / do, même s'il n'y a qu'une seule ligne de code, évitez d'utiliser

les formes suivantes : if (condition) instructions ;


3. [Recommandation] Il est recommandé d'utiliser le moins possible else La méthode if - else peut être réécrite comme :

if(condition){
...
return obj;
}

// Ensuite, écrivez le code de logique métier else ;

Si vous devez utiliser la méthode if()... Else if()...else... pour exprimer la logique, [Obligatoire] Ne dépassez pas 3 niveaux,

Veuillez utiliser le modèle de conception d'état s'il dépasse 3 niveaux.

Exemple positif : Un code if-else avec plus de 3 niveaux de logique peut être implémenté à l'aide d'instructions de garde ou de modèles d'état.

4. [Recommandé] À l'exception des méthodes courantes (telles que getXxx/isXxx), n'exécutez pas d'autres instructions complexes dans des jugements conditionnels et attribuez les résultats de jugements logiques complexes à un nom de variable booléenne significatif, pour améliorer. lisibilité.


Explication : La logique dans de nombreuses instructions if est assez complexe. Le lecteur doit analyser le résultat final de l'expression conditionnelle pour savoir quel type de condition exécute quelle instruction. Ensuite, si le lecteur analyse la logique. expression Qu'en est-il des erreurs ?

Exemple positif :

//伪代码如下
boolean existed = (file.open(fileName, "w") != null) && (...) || (...);
if (existed) {
...
}

Contre-exemple :

if ((file.open(fileName, "w") != null) && (...) || (...)) {
...
}
5. [Recommandation] Les instructions dans le corps de la boucle doivent prendre en compte les performances et les opérations suivantes doivent être déplacées autant que possible en dehors de la boucle, telles que définir des objets, des variables et obtenir des connexions à la base de données, effectuer des opérations try-catch inutiles (ce try-catch peut-il être déplacé en dehors de la boucle).

6. [Recommandé] Protection des paramètres d'entrée d'interface Ce scénario est courant pour les interfaces utilisées pour les opérations par lots.


7. [Référence] Scénarios où la vérification des paramètres est requise dans les méthodes :

1) Méthodes à faible fréquence d'appel.

2) Pour une méthode qui nécessite beaucoup de temps d'exécution, le temps de vérification des paramètres est presque négligeable. Cependant, si des erreurs de paramètres provoquent un retour en arrière ou des erreurs d'exécution intermédiaires, le gain dépasse la perte.

3) Méthodes qui nécessitent une stabilité et une disponibilité extrêmement élevées.

4) Interfaces ouvertes fournies au monde extérieur, qu'il s'agisse d'interface RPC/API/HTTP.

5) Entrée des autorisations sensibles.


8. [Référence] Scénarios où la vérification des paramètres n'est pas requise dans les méthodes :

1) Il n'est pas recommandé de vérifier les paramètres des méthodes qui sont très susceptibles d'être appelées en boucle. Cependant, les contrôles de paramètres externes doivent être notés dans la description de la méthode.

2) Les méthodes sous-jacentes sont appelées fréquemment et ne sont généralement pas vérifiées. Après tout, c’est comme la dernière étape de la filtration de l’eau pure. Il est peu probable que de mauvais paramètres exposent à des problèmes jusqu’à ce qu’ils atteignent la couche inférieure. Généralement, la couche DAO et la couche Service se trouvent dans la même application et déployées sur le même serveur, la vérification des paramètres DAO peut donc être omise.

3) Les méthodes déclarées comme privées ne seront appelées que par votre propre code. Si vous pouvez être sûr que les paramètres transmis par le code appelant la méthode ont été vérifiés ou qu'il n'y a définitivement aucun problème, vous n'avez pas besoin de vérifier. les paramètres à ce moment.