[JAVA] Ein Memorandum zum Schreiben von schönem Code

Überblick

["Clean Code Agile Software Master's Skill"](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) und fassen Sie kurz die Regeln zusammen, die ich für wichtig hielt, um meinen Code sauber zu halten. Es war. Ich denke, es ist wichtig, Ihren Code erweiterbar und wartbar zu machen, damit andere Ihren Code leicht lesen können.

Funktion

  1. ** Die Methode sollte so klein wie möglich sein (3, 4 Zeilen) ** Eine Rolle in einer Methode. Wenn es mehrere Prozesse enthält, zerlegen Sie es.

  2. ** Bis zu 1 oder 2 Einrückungen ** Verwenden Sie weniger if und for-Anweisungen.

  3. ** Richten Sie die Abstraktionsebene in der Methode aus. ** ** **

  4. ** Leicht verständlicher Methodenname. ** ** ** Damit auch diejenigen, die den Code zum ersten Mal lesen, verstehen können, was er darstellt.

  5. ** Weniger Argumente. 0 ist ideal, 2 oder weniger. ** ** ** Boolescher Wert ist kein Argument. Das Übergeben von Booleschen Werten als Argument bedeutet, dass sich darin ein bedingter Zweig befindet.

  6. ** Nebenwirkungen beseitigen. (Versteckter Prozess) ** Beseitigen Sie versteckte Verarbeitungen, die aus dem Methodennamen nicht ersichtlich sind.

  7. ** Machen Sie es verständlich, ohne den Aufrufer der Funktion anzusehen. ** ** ** Damit Sie sehen können, was Sie mit dem Methodennamen tun.

  8. ** Schneiden Sie den Inhalt von try catch in eine Methode aus. ** ** ** Wenn Sie versuchen zu fangen, wird es schwer zu sehen sein.

  9. ** DRY-Prinzip (Wiederholen Sie sich nicht). ** ** ** Wiederholen Sie nicht den gleichen Code.

  10. ** Kapselung des bedingten Ausdrucks. Sei so positiv wie möglich. ** ** ** Nicht verwenden! Oder nicht ◯◯ so viel wie möglich.

Formatierung

  1. ** Schreiben Sie Variablen und private Methoden in die Nähe Ihrer Verwendungsstelle. ** ** ** Es ist leicht zu erkennen, da in vertikaler Richtung nicht stark gescrollt werden muss.

  2. ** Beschreibende Variablen verwenden. ** ** ** Geben Sie dem Wert im Berechnungsprozess einen Variablennamen.

  3. ** Kapselung von Randbedingungen ** Extrahieren Sie den in bedingten Ausdrücken verwendeten Grenzwert als Variablennamen.

  4. ** Ordnen Sie die Methoden in der Reihenfolge der Abstraktionsebene an. ** ** **

  5. ** Verwenden Sie nicht so viele Kommentare wie möglich. ** ** ** Erleichtern Sie das Verständnis anhand des Methodennamens, des Variablennamens und des Klassennamens.

Objekte und Datenstrukturen

Der Prozedurtyp erleichtert das spätere Hinzufügen von Funktionen. Objektorientiert erleichtert das Hinzufügen von Klassen.

  1. ** Demeter-Gesetz **
    Wenn Sie ein Objekt verwenden, sollten Sie nichts über das Innere des Objekts wissen. Reduzieren Sie Klassenabhängigkeiten.

Ausnahmebehandlung

  1. ** Verwenden Sie ungeprüfte Ausnahmen. ** ** **

  2. ** Gibt die Ausnahmeklasse anstelle des Fehlercodes zurück. ** ** **

  3. ** Schreibe genug Protokolle, wenn du fängst. ** ** **

  4. ** Geben Sie nicht null zurück. ** ** ** Es gibt in der Regel viele Nullprüfungen. Behandeln Sie es, indem Sie es als leere Liste zurückgeben.

  5. ** Übergeben Sie nicht null als Argument. ** ** ** Es gibt nur wenige Methoden, die gut damit umgehen können, wenn null übergeben wird. Grundsätzlich sollte das Übergeben von Null verboten werden.

Grenze

  1. ** Wenn eine externe Zusammenarbeit erforderlich ist, verwendet noch nicht vorhandener Code die Schnittstelle. ** ** **

Testcode

Machen Sie es einfach zu verstehen, was Sie testen.

  1. ** Ein Assert für einen Test. ** ** **
  2. ** Ein Konzept in einem Test. ** ** **

Klasse

  1. ** Variablen privat machen **
  2. SRP(single responsibility principle) Eine Rolle in einer Klasse.

4 Regeln für einfaches Design

Die Priorität ist in der Reihenfolge von oben hoch. (② und ③ sind ungefähr gleich) ① ** Besteht die Tests ** Der Test besteht. Sie können jederzeit überprüfen, ob Ihr Code wie beabsichtigt funktioniert.

② ** enthüllt Absicht ** Klären Sie die Absicht des Autors mit einer guten Benennung, halten Sie Funktionen und Klassen klein und wenden Sie Entwurfsmuster an.

③ ** Keine Vervielfältigung **

④ ** Wenigste Elemente (Klassen und Methoden minimieren) ** Reduzieren Sie die Anzahl der Funktionen und Klassen.

Zusammenfassung

Im Idealfall sollten Sie in der Lage sein, den Code zu lesen und zu sehen, was Sie tun, ohne Kommentare zu verwenden. Ich persönlich wollte in der Lage sein, ** Code zu schreiben, der genauso gelesen werden kann wie das Lesen natürlicher Sprache **, indem ich Variablennamen, Methodennamen und das Teilen von Klassen entwickelte. Wenn Sie einen Test haben, können Sie auch den Sprung wagen und ihn umgestalten. Ich möchte immer genug Tests schreiben, TDD usw. voll ausnutzen, damit der Code jederzeit bereinigt werden kann. Tatsächlich ist es oft schwierig, sich Zeit zu nehmen, um den Code zu bereinigen, aber beachten Sie die "Pfadfinderregeln" und ** machen Sie den Code, den Sie finden, sauberer als zu dem Zeitpunkt, als Sie ihn gefunden haben **. Ich werde versuchen, den schmutzigen Code zu reduzieren.

Verweise

  1. [Fähigkeit des Clean Code Agile Software Masters](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

Ein Memorandum zum Schreiben von schönem Code
Ein Memorandum für Anfänger der Android-Anwendungsentwicklung
[Rspec] Ablauf von der Einführung von Rspec bis zum Schreiben von Unit-Test-Code für das Modell
Code schreiben Ruby
Memorandum zum Bereinigen des Codes Ruby
Machen Sie einen Ausschnitt für Thymeleaf in VS Code
[Java] Beim Schreiben der Quelle ... Memorandum ①
Ein Memorandum zum Erstellen eines erweiterten Loggers mit org.slf4j.Logger
Ein Memorandum, um den juckenden Ort für Java Gold zu erreichen
Oracle Live für den Code
Erstellen Sie ein VSCode-Plugin.
[Java] Tipps zum Schreiben der Quelle
Programmiermemorandum aus 51 Jahre altem Memorandumcode für die Netzwerkkommunikation Socket | HttpURLConnection
Schreiben wir einen Testcode für die Anmeldefunktion mit Spring Boot