32 votes

Commentaire Java en fin d'accolade / bloc

Est-ce une pratique acceptée dans le langage de programmation Java de mettre fin à une accolade pour un bloc de code avec un commentaire expliquant brièvement le bloc de code que l'accolade se ferme? Personnellement, je penserais que ce sont des commentaires inutiles qui encombrent la lisibilité du code, mais je peux peut-être me tromper. Par exemple:

 public void myMethod(int foo) {    
    // some code
    if (foo == 2) {
        for (int i = 0; i < myMax; i++) {
            while (true) {
                // some more code
            } // end while
        } // end for
    } // end if
} // end myMethod(int)
 

La pratique consistant à commenter les blocs de code de manière similaire est-elle une pratique acceptée?

58voto

farfareast Points 907

De mon point de vue sur c'est qu'en règle générale, il n'est PAS une bonne pratique. Comme toujours avec les règles, il peut y avoir des exceptions, mais très rare.

Ce n'est pas une bonne pratique car

  1. Moderne éditeurs de mettre en évidence l'ouverture du support lorsque vous placez le curseur sur la clôture, et vice-versa.
  2. Le plus important: en cas il y a une possibilité de ne pas voir le début de la clause cela signifie que la méthode est énorme (plus d'une demi-page), qui est une mauvaise pratique.
  3. Il ajoute du bruit le code qui va confondre les lecteurs qui sont utilisés à plus conventionnelle Java style de codage.
  4. Intégrant LordScree-Joachim Sauer commentaires: Ces commentaires être une douleur dans le cou pour maintenir. Donc, très probablement, il ne sera pas maintenue et l'information est généralement en décalage avec la réalité.

38voto

Josiah Hester Points 5236

Ce n'est pas exactement une mauvaise pratique, MAIS c'est un effet secondaire mortel de pauvres Orientée Objet pratique de codage!

Aussi, cela viole les directives de style et les principes de la doctrine de "l'auto-documentation du code". Vous ne devriez jamais avoir autant de crochets ou d'une méthode assez longue pour induire en erreur le lecteur sur support de placement, au lieu d'encapsuler cette fonctionnalité à une autre méthode qui est bien documentée.

Entre parenthèses signifie soit en boucle ou complexe si-sinon la logique des chaînes, la bonne pratique est d'avoir une méthode de faire exactement une chose et le faire bien, alors construire votre programme à partir de ces plus petits, atomisé méthodes. Je voudrais lire Butler Lampson majeur du morceau "Conseils pour la Conception de systèmes Informatiques". Il entre dans quelques détails sur la façon de concevoir un bon logiciel.

Donc, essentiellement, n'est pas un commentaire comme ça parce que:

  1. Il viole les directives de style
  2. Il témoigne d'un manque de programmation Orientée Objet - atomiser votre fonctionnalité!
  3. C'est un effet secondaire mortel de la pratique de codage qui va à l'encontre des concepts sous-jacents pourquoi Java a été créé - encapsulation, spécifiquement se cacher de l'information
  4. Elle viole le principe de l'auto-documentation du code
  5. D'autres programmeurs vont se moquer de vous.

1voto

VinceOmega Points 90

Cela dépend de la complexité de la méthode ou de la fonction. Par exemple, si vous avez quelque chose qui peut être facilement lu et compris, il ne serait pas utile de mettre fin à CHAQUE ligne avec un commentaire expliquant que la partie est terminée. C'est à cela que servent l'indentation et les sauts de ligne. Cependant, si vous avez quelque chose de vraiment complexe qui affecte une partie majeure de votre code, vous devez indiquer où se termine ce code et ce que fait cette section.

1voto

Jenny O'Reilly Points 2150

Je ne le fais quand il y a un endroit dans le code qui a beaucoup de clôture des accolades uns après les autres. Mais pas pour tous corset. J'en ai principalement semblent l'utiliser pour les boucles de sorte que vous pouvez facilement voir ce qui est répétée bloc de code.

Quelque chose qui ressemble à ceci:

 // ...
fichier.Close();
}
}
}
}
}
}

Il est utile d'ajouter quelques commentaires:

 // ...
fichier.Close();
}
}
}
 }//pour chaque fichier
}
}

0voto

baturayd Points 9

Si il y a des blocs imbriqués de même type, il peut être source de confusion au lieu de faire le bien. Disons que vous avez 4 ou 5 instructions if imbriquées(gardez à l'esprit que ce seulement un exemple pour expliquer la situation, indépendamment de "oh, vous devriez séparer ces" ou "faire une méthode" suggestions) dans ce cas, vous avez 4 ou 5 différents //fin si séquencé. Après un certain temps, il vous fait vous confondez qui "end if" est pour l'énoncé, vous fait passer un effort supplémentaire inconsciemment de voir à travers le code réel/états parce qu'il n'est pas toujours aussi propre/court que votre exemple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X