[JAVA] Écrire du code facile à maintenir (partie 3)

1. De quoi parler cette fois

2. Collection de techniques

2.1. Ecrire des formules pour les constantes et les variables s'il y a une base

Prenons, par exemple, une constante qui détient une limite supérieure sur la durée qui permet un certain traitement.

Avant correction


public static final long ACCEPT_TIME_LIMIT = 259200000L;

comment c'est? Savez-vous ce que vous entendez en regardant simplement ce nombre?

modifié


public static final long ACCEPT_TIME_LIMIT  = 3 * 24 * 60 * 60 * 1000;

Et si c'était écrit comme ça? À 24 * 60 * 60, vous pouvez voir le "nombre de secondes par jour", et lorsque vous le multipliez par 1000, vous pouvez voir "millisecondes", et lorsque vous le multipliez par 3, vous pouvez voir "Ah, c'est une milliseconde qui représente 3 jours". Je peux imaginer. Lorsque vous avez une valeur comme constante, vous avez tendance à n'écrire que la valeur du résultat final d'un calcul. En le démontant correctement et en l'écrivant, il est facile pour le réviseur de le faire correspondre avec les spécifications au moment de la révision du code, et la signification des nombres peut être comprise simplement en la regardant au moment de la maintenance dans le futur.

2.2. Imaginons une séquence d'opérateurs de comparaison représentant des plages

Avant correction


//Traiter uniquement lorsque 100 ou plus et 500 ou moins
if(value >= 100 && value < 500){
  //En traitement
}

modifié


//Traiter uniquement lorsque 100 ou plus et 500 ou moins
if(100 <= value && value < 500){
  //En traitement
}

Lorsque les humains reconnaissent les nombres, imaginez une ligne droite numérique où les nombres sont plus petits vers la gauche et plus grands vers la droite. Par conséquent, lors de l'indication de la plage de nombres, la lisibilité peut être améliorée en les échangeant dans l'ordre des nombres.

Cependant, pour certaines personnes, il est plus facile à comprendre dans le format du prédicat sujet sous la forme "la valeur est de 100 ou plus et la valeur est inférieure à 500". Il est préférable d'utiliser celui qui est facile à comprendre pour chaque organisation.

2.3. Lors de la création d'une méthode qui renvoie List ou Map, ne renvoyez pas NULL autant que possible

Avant correction


public List<Long> getList(){

  if(XXX == 0){
    return null;
  }

  List<Long> list = new ArrayList<>();
  for(i = 0; i < XXX; i++){
    list.add(YYY);
  }

}

modifié


public List<Long> getList(){

  List<Long> list = new ArrayList<>();
  for(i = 0; i < XXX; i++){
    list.add(YYY);
  }

  return list;

}

Lorsque vous utilisez une méthode qui renvoie une liste ou une carte de quelque chose, le destinataire sera différent selon que la méthode retourne null ou non. Si vous ne retournez jamais null, vous n'avez pas à écrire ```if (list! = Null) `à chaque fois, et si vous voulez savoir si la liste est vide,` list.size ( ) `` Cela suffit. À moins qu'il n'y ait une raison spécifique pour laquelle la nullité est importante, nous pensons que les méthodes qui sensibilisent les utilisateurs aux valeurs nulles peuvent améliorer la lisibilité.

Recommended Posts

Écrire du code facile à maintenir (partie 4)
Écrire du code facile à maintenir (partie 3)
Écrivons un code facile à maintenir (Partie 2) Nom
Code difficile à déboguer et à analyser
Pensez à un code de test facile à comprendre grâce au test de Comparator
Comment écrire du code qui pense Ruby orienté objet
Facile à entretenir FizzBuzz
Comment écrire du bon code
Nouvelles fonctionnalités de Java 14 pouvant être utilisées pour écrire du code
[Java] Code difficile à remarquer mais terriblement lent
La fonction est très facile à utiliser
Comment rédiger un code facile à comprendre [Résumé 3]
Comment identifier le chemin sur lequel il est facile de se tromper
AtCoder s'appelle TLE et explique comment écrire du beau code
Comment écrire du code de test avec la certification de base
Pour implémenter, écrivez le test puis codez le processus
Utilisez stream pour vérifier que SimpleDateFormat est thread unsafe