[JAVA] Codeüberprüfungspunkte
- Gibt es Ausnahmen?
- Verschwindet die ursprüngliche Ausnahme aufgrund der im catch-Block generierten Ausnahme?
- Schließen Sie beim Umschließen einer Ausnahme mit einer anderen Ausnahme die ursprüngliche Ausnahme ein?
- Gibt es einen "e.printStacktrace" (außer wenn dies durch Codierungsstandards usw. zulässig ist)?
- Sie können die Informationen der aufgetretenen Ausnahme verfolgen, z. B. e.addSuppressed, die im Protokoll ausgegeben wird.
- Geben Sie in den Kommentaren den Grund an, warum Sie es drücken können, wenn Sie können.
- Gibt es Variablenüberschreibungen (außer unter bestimmten Umständen)?
- Die einzigen Variablen, die überschrieben werden müssen, sind normalerweise Zähler.
- Verschachteln Sie Blöcke, bei denen eine frühzeitige Rückgabe möglich ist?
- Wenn Sie mit einem if-Block wie if (isXXX) {} verarbeiten, prüfen Sie, ob if (! IsXXX) {return;} angewendet werden kann.
- Gibt es Auslassungen beim Schließen von Ressourcen?
- Closeable / AutoCloseable wie InputStream / OutputStream verwendet aktiv Try-with-Resources
- Wenn Sie nicht explizit schließen, geben Sie im Kommentar an, wann geschlossen werden soll und warum Sie nicht schließen
- Gibt es einen übermäßigen Überprüfungsprozess?
- Geben Sie in Javadoc an, ob die öffentliche Methode null zulässig ist.
- return null; Code gibt eine Konstante zurück, die so viel wie möglich für leer steht (z. B. Optional # empty () oder Collections # emptyList ()).
- Wenn sich return null in einem abnormalen Zustand befindet, lösen Sie eine Ausnahme aus oder verwenden Sie die Klasse, die den Status darstellt, als Rückgabewert.
- Verwenden Sie die in der Bibliothek usw. definierten Konstanten?
- HTTP-Statuscode usw.
- Ist die IN / OUT-Verarbeitung gepuffert?
- Verwenden Sie BufferedInputStream anstelle von Raw InputStream usw.
- Ist der spezifische Code, der häufig angezeigt wird, richtig klassifiziert und in ein Dienstprogramm umgewandelt?
- Grundsätzlich basiert die Delegierung eher auf der Delegierung als auf der Vererbung.
- Ist - Gibt es eine Vererbung, die nicht zu einer wird?
Wenn es viele Prozesse gibt, die abhängig von der Instanz verzweigen, wie z. B. * instance of, besteht eine hohe Wahrscheinlichkeit, dass eine geeignete Vererbungsbeziehung nicht aufrechterhalten wird.
- Ist die Ressource im Konstruktor geöffnet?
- Wenn Sie Ressourcen mit einem Konstruktor öffnen möchten, ziehen Sie statische Factory-Methoden in Betracht.
- Können Konstanten enum anwenden?