[JAVA] Points de révision du code
- Y a-t-il des exceptions?
- L'exception d'origine disparaît-elle en raison de l'exception générée dans le bloc catch?
- Lorsque vous encapsulez une exception avec une autre exception, incluez-vous l'exception d'origine?
- ʻE.printStacktrace` est manquant (sauf lorsque permis par les normes de codage, etc.)
- Être en mesure de suivre les informations de l'exception qui s'est produite, comme e.addSuppressed, qui est sortie dans le journal.
- Dans les commentaires, spécifiez la raison pour laquelle vous pouvez le presser si vous pouvez le presser.
- Y a-t-il des remplacements de variables (sauf dans certaines circonstances)?
- Les seules variables qui doivent être écrasées sont généralement des compteurs.
- Êtes-vous en train d'imbriquer des blocs où les retours anticipés s'appliquent?
- Si vous traitez avec un bloc if tel que if (isXXX) {}, vérifiez si if (! IsXXX) {return;} peut être appliqué.
- Y a-t-il des omissions dans la fermeture des ressources?
- Closeable / AutoCloseable comme InputStream / OutputStream utilise activement try-with-resources
- Si vous ne fermez pas explicitement, spécifiez dans le commentaire quand fermer et la raison de ne pas fermer
- Y a-t-il un processus de vérification excessif?
- Spécifiez dans Javadoc s'il faut ou non autoriser null de la méthode publique.
- return null; le code renvoie une constante qui représente Empty autant que possible (comme facultatif # empty () ou Collections # emptyList ())
- Si return null est dans un état anormal, lancez une exception ou utilisez la classe qui représente l'état comme valeur de retour.
- Utilisez-vous les constantes définies dans la bibliothèque, etc.
- Code d'état HTTP, etc.
- Le traitement IN / OUT est-il mis en mémoire tampon?
- Utilisez BufferedInputStream au lieu de InputStream brut, etc.
- Le code spécifique qui apparaît fréquemment est-il correctement classé et transformé en utilitaire?
- En principe, la délégation est basée sur la délégation plutôt que sur l'héritage.
- is - Y a-t-il un héritage qui ne devienne pas un?
S'il existe de nombreux processus qui se branchent en fonction de l'instance, comme * instance of, il existe une forte possibilité qu'une relation d'héritage appropriée ne soit pas maintenue.
- La ressource est-elle ouverte dans le constructeur?
- Si vous souhaitez ouvrir des ressources avec un constructeur, envisagez des méthodes de fabrique statiques.
- Les constantes peuvent-elles s'appliquer enum?