[JAVA] Un mémorandum pour écrire un beau code

Aperçu

["Compétence de maîtrise du logiciel Clean Code Agile"](https://www.amazon.co.jp/Clean-Code-%E3%82%A2%E3%82%B8%E3%83%A3%E3%82 % A4% E3% 83% AB% E3% 82% BD% E3% 83% 95% E3% 83% 88% E3% 82% A6% E3% 82% A7% E3% 82% A2% E9% 81% 94 % E4% BA% BA% E3% 81% AE% E6% 8A% 80-Robert-C-Martin / dp / 4048930591) et résumez brièvement les règles que j'ai trouvées importantes pour garder mon code propre. C'était. Je pense qu'il est important de rendre votre code extensible et maintenable afin que les autres puissent lire votre code facilement.

une fonction

  1. ** La méthode doit être aussi petite que possible (3, 4 lignes) ** Un rôle dans une méthode. S'il contient plusieurs processus, démontez-le.

  2. ** Jusqu'à 1 ou 2 tirets ** Utilisez moins si et pour les déclarations.

  3. ** Alignez le niveau d'abstraction dans la méthode. ** **

  4. ** Nom de méthode facile à comprendre. ** ** Pour que même ceux qui lisent le code pour la première fois puissent comprendre ce qu'il représente.

  5. ** Moins d'arguments. 0 est idéal, 2 ou moins. ** ** boolean n'est pas un argument. Passer boolean comme argument signifie qu'il y a une branche conditionnelle à l'intérieur.

  6. ** Élimine les effets secondaires. (Processus caché) ** Éliminez les traitements masqués qui ne peuvent pas être compris à partir du nom de la méthode.

  7. ** Rendez-le compréhensible sans regarder l'appelant de la fonction. ** ** Pour que vous puissiez voir ce que vous faites avec le nom de la méthode.

  8. ** Découpez le contenu de try catch dans une méthode. ** ** Si vous utilisez try and catch, ce sera difficile à voir.

  9. ** Principe DRY (Ne vous répétez pas). ** ** Ne répétez pas le même code.

  10. ** Encapsulation d'expression conditionnelle. Soyez aussi positif que possible. ** ** Ne pas utiliser! Ou pas ◯◯ autant que possible.

Mise en page

  1. ** Écrivez des variables et des méthodes privées à proximité de l'endroit où vous les utilisez. ** ** Il est facile à voir car il n'est pas nécessaire de faire défiler beaucoup dans le sens vertical.

  2. ** Utilisez des variables descriptives. ** ** Donnez un nom de variable à la valeur dans le processus de calcul.

  3. ** Encapsulation des conditions aux limites ** Extrayez la valeur limite utilisée dans les expressions conditionnelles en tant que nom de variable.

  4. ** Organisez les méthodes par ordre de niveau d'abstraction. ** **

  5. ** N'utilisez pas les commentaires autant que possible. ** ** Facilitez la compréhension par nom de méthode, nom de variable et nom de classe.

Objets et structures de données

Le type procédural facilite l'ajout de fonctions ultérieurement. Orienté objet, il est facile d'ajouter des classes.

  1. ** Loi de Déméter **
    Lorsque vous utilisez un objet, vous ne devez pas connaître l'intérieur de l'objet. Réduisez les dépendances de classe.

Gestion des exceptions

  1. ** Utilisez des exceptions non cochées. ** **

  2. ** Renvoie la classe d'exception au lieu du code d'erreur. ** **

  3. ** Écrivez suffisamment de journaux lorsque vous attrapez. ** **

  4. ** Ne retournez pas null. ** ** Il y a généralement beaucoup de vérifications nulles. Traitez-le en le renvoyant sous forme de liste vide.

  5. ** Ne passez pas null comme argument. ** ** Il existe peu de méthodes qui peuvent le gérer correctement lorsque null est passé. En principe, la transmission de null devrait être interdite.

frontière

  1. ** Lorsqu'une coopération externe est requise, un code qui n'existe pas encore utilise l'interface. ** **

Code de test

Facilitez la compréhension de ce que vous testez.

  1. ** Une affirmation pour un test. ** **
  2. ** Un concept dans un test. ** **

classe

  1. ** Rendre les variables privées **
  2. SRP(single responsibility principle) Un rôle dans une classe.

4 règles pour une conception simple

La priorité est élevée dans l'ordre du haut. (② et ③ sont à peu près identiques) ① ** Passe les tests ** Le test réussit. Vous pouvez toujours vérifier que votre code fonctionne comme prévu.

② ** Révèle l'intention ** Clarifiez l'intention de l'auteur avec une bonne dénomination, en gardant les fonctions et les classes petites et en appliquant des modèles de conception.

③ ** Pas de duplication **

④ ** Moins d'éléments (minimiser les classes et les méthodes) ** Réduisez le nombre de fonctions et de classes.

Résumé

Idéalement, vous devriez être en mesure de lire le code et de voir ce que vous faites, sans utiliser de commentaires. Personnellement, je voulais être capable d'écrire ** du code qui peut être lu de la même manière que la lecture du langage naturel ** en concevant des noms de variables, des noms de méthodes et comment diviser les classes. De plus, si vous avez un test, vous pouvez franchir le pas et le refactoriser. Je veux toujours écrire suffisamment de tests, en utilisant pleinement TDD, etc. pour que le code puisse être nettoyé à tout moment. En fait, il est souvent difficile de prendre le temps de nettoyer le code, mais soyez conscient des «règles du boy-scout» et ** rendez le code que vous trouvez plus propre que lorsque vous l'avez trouvé **. Je vais essayer de réduire le code sale.

Les références

  1. [Compétence de maîtrise du logiciel Clean Code Agile](https://www.amazon.co.jp/Clean-Code-%E3%82%A2%E3%82%B8%E3%83%A3%E3%82 % A4% E3% 83% AB% E3% 82% BD% E3% 83% 95% E3% 83% 88% E3% 82% A6% E3% 82% A7% E3% 82% A2% E9% 81% 94 % E4% BA% BA% E3% 81% AE% E6% 8A% 80-Robert-C-Martin / dp / 4048930591)
  2. BeckDesignRules

Recommended Posts

Un mémorandum pour écrire un beau code
Mémorandum des débutants en développement d'applications Android
[Rspec] Flux de l'introduction de Rspec à l'écriture du code de test unitaire pour le modèle
Code d'écriture Ruby
Mémorandum pour nettoyer le code Ruby
Créer un extrait pour Thymeleaf dans VS Code
[Java] Lors de l'écriture du source ... Mémorandum ①
Un mémorandum pour créer un enregistreur étendu à l'aide de org.slf4j.Logger
Un mémorandum pour atteindre le lieu qui démange pour Java Gold
Oracle Live pour le code
Créez un plugin VSCode.
[Java] Conseils pour l'écriture de la source
Mémorandum de programmation de 51 ans Code mémorandum pour la communication réseau Socket | HttpURLConnection
Écrivons un code de test pour la fonction de connexion avec Spring Boot