Clean code Java: Wie erreicht man ihn?

Es kommt die Frühlingszeit, in der die Natur ihre Schönheit erneuert. Wir können uns inspirieren lassen und wieder an der ästhetischen Seite unseres Quellcodes arbeiten. Gerade jetzt ist der richtige Zeitpunkt, mit dem Aufräumen und Reinigen des Codes zu beginnen, denn sauberer Code ist nicht nur ein Trendkonzept, sondern eine Notwendigkeit für die Qualität des Programms.

Sauberer Code ist in vielerlei Hinsicht vergleichbar mit der Zahnpflege. Wenn wir uns nicht um den Quellcode kümmern, vernachlässigen wir die Architektur und ‚flicken‘ neue Funktionalitäten lediglich hinzu. Mit der Zeit steigen unnötige Kosten und der Aufwand, der für seine Bereinigung erforderlich ist. Ähnlich ist es auch mit den Zähnen Bakterien (in der IT-Welt Software-Bugs) lieben eine schmutzige, vernachlässigte Umgebung (des Programms).

Das Schreiben von sauberem Code ist längst keine persönliche Vorliebe mehr, sondern es gibt eine Vielzahl von Empfehlungen und Tipps, die sich über Jahre bewährt haben und uns helfen, solchen Code zu schreiben. In unserem Artikel werfen wir einen Blick auf eine Reihe von Regeln und Empfehlungen zum Schreiben von sauberem Code in der Programmiersprache Java. Diese Grundsätze helfen uns, Code zu erstellen, der nicht nur funktional, sondern auch elegant und für uns sowie für andere Entwickler leicht verständlich ist.

Lasst unseren Code ebenso schön blühen wie die Natur im Frühling. Los geht’s!

Was ist sauberer Code?

Sauberer Code kann als Code definiert werden, der relativ einfach zu lesen und zu verstehen ist und gleichzeitig leicht zu ändern und zu pflegen ist. Er sollte gut organisiert, konsistent in den verwendeten Regeln und frei von Fehlern sein.

Eigenschaften von sauberen Code

Wenn wir Quellcode schreiben, versuchen wir, ihn mit den folgenden Eigenschaften auszustatten:

  1. Einfachheit – der Code sollte so einfach wie möglich sein, damit er leicht zu verstehen ist. Viele unnötige Fehler in einem Programm entstehen, wenn der Programmierer nicht ganz versteht, was der Code tut.
  2. Wartbarkeit – der Code sollte langfristig wartbar sein, damit er leicht geändert und um neue Funktionen erweitert werden kann. Möglicherweise arbeiten viele verschiedene Entwickler an dem Code. Daher ist es wichtig, dass sie zusammenarbeiten und die vereinbarten Regeln einhalten.
  3. Testbarkeit – der Code sollte relativ einfach zu testen sein, was ihn auch weniger fehleranfällig macht. Ideal ist es, sich auf automatisierte Tests zu konzentrieren, um sicherzustellen, dass wir bei der Programmierung neuer Funktionen keine bestehenden Funktionen zerstören.

Sauberer Code enthält keine Codeduplikationen, ist weniger fehleranfällig und es ist auch einfacher, Probleme im Code zu isolieren und zu beheben. Außerdem müssen Sie nicht so viele Kommentare schreiben, um komplexe Bereiche des Codes zu erklären.

Eigenschaften von „schmutzigem“ Code

Wenn Ihr Code hingegen eines der folgenden Elemente enthält, sollten Sie überlegen, wie Sie es entfernen können. Der sogenannte ‚schmutzige‘ Code kann voll funktionsfähig sein, und dem Compiler ist es im Grunde egal, wie der Code geschrieben ist. In der Zukunft können jedoch Probleme auftreten, insbesondere wenn er bearbeitet wird. Zu den Merkmalen von unsauberem Code gehören: Chaos, Komplexität, schwer zu lesen und zu verstehen, Probleme mit der Erweiterbarkeit, schwieriges Auffinden und Beheben von Fehlern, Duplizierung, zeitaufwändig.

Clean code Java

Struktur des Projekts

Der erste Schritt zu sauberem Code ist eine geeignete Projektstruktur, die festlegt, wie Quelldateien, Ressourcen, Konfigurationen, Tests usw. organisiert werden sollen. Ziel ist es, eine so intuitive Projektstruktur zu schaffen, die die Suchzeit zwischen den Dateien verkürzt.

Obwohl Java uns nicht dazu zwingt, eine bestimmte Projektstruktur zu verwenden, ist es immer eine gute Idee, den besten Gemeinschaftsstandards zu folgen. Maven, ein Tool für die automatische Erstellung von Projekten, empfiehlt ein standardisiertes Layout von Ordnern in einem Projekt gemäß der folgenden Struktur:

src/main/java Ressourcendateien und Bibliotheken
src/main/resources Andere Quellen wie. Modelle, …
src/test/java Test-Quelldateien
src/test/resources Andere Ressourcen zum Testen

Die Dateien in dieser Art von Projektstruktur sind in erster Linie in Anwendungs- und Testdateien unterteilt. Diese werden dann weiter in Quelldateien und andere Quellen unterteilt. Der Quellcode wird dann auf einer niedrigeren Ebene inPaketen organisiert.

Korrekte Benennung

Einer der wichtigsten Grundsätze für sauberen Code ist die Verwendung klarer und sinnvoller Namen für Variablen, Funktionen, Klassen und andere Bezeichner. Daher sollten wir ihnen immer einen Namen geben, der mit ihrer Funktionalität zusammenhängt. Zum Beispiel. Bereits aus dem Namen der Methode sollte ohne genauere Untersuchung klar sein, was die betreffende Methode tut. Das erleichtert es anderen Entwicklern, zu verstehen, was dein Code macht. Ebenso müssen Variablen so benannt werden, dass sofort ersichtlich ist, was in ihnen gespeichert wird und welcher Datentyp es ist. Obwohl es sicherlich bequemer ist, die Namen von Identifikatoren abzukürzen (z. B. c statt count oder calc statt calculate), um den Code schneller zu schreiben, leidet letztendlich die Lesbarkeit des Codes darunter. Die Lesbarkeit und Verständlichkeit des Codes trägt dazu bei, dass der Code auf Dauer erhalten bleibt.

Struktur der Quelldatei

Die Quellcodedatei enthält viele verschiedene Elemente. Der Java-Compiler lässt dem Programmierer ziemlich viel Freiheit bei der Wahl der Reihenfolge der Elemente und verlangt nur, dass er sich an die Grundstruktur der Quellcodedatei hält. Wie bei der Projektstruktur gibt es eine Reihe von Empfehlungen, aber eine typische Anordnung der Elemente im Quellcode sieht wie folgt aus:

  • Package
  • Importe
    • alle statischen Importe,
    • alle nicht-statischen Importe,
  • Klasse
    • Variablen,
    • Instanzen,
    • Konstrukteure,
    • Methoden.
Der erste Schritt zu sauberem Code ist eine geeignete Projektstruktur
Der erste Schritt zu sauberem Code ist eine geeignete Projektstruktur.

Parameter der Methode

Obwohl Methodenparameter in den meisten Fällen notwendig sind, kann die Menge der Parameter in einer Methode den Code weniger verständlich und lesbar machen. Deshalb sollten wir versuchen, die Anzahl der Parameter in der Methode zu optimieren, um einen gewissen Kompromiss zu erreichen. Meistens ist es eine gute Wahl, etwa 3 Parameter zu haben, und wenn es deutlich mehr Parameter gibt, ist die Methode in der Regel länger und komplizierter. In einem solchen Fall können zusammenhängende Parameter in einem gemeinsamen Datenobjekt zusammengefasst und als Parameter der Methode verwendet werden. Zum Beispiel. Der Objekttyp Adresse kann anstelle von Parametern (Vorname, Nachname, Straße, Ort, Bundesland, Telefonnummer) verwendet werden. In jedem Fall müssen wir dies von Fall zu Fall prüfen und nicht versuchen, unnötige neue Datentypen zu erstellen, um nicht verwandte Parameter miteinander zu verknüpfen. Wir versuchen, die Lesbarkeit des Codes zu verbessern, nicht ihn zu verkomplizieren.

Unflexibler Code

Fest kodierte Werte im Programm machen es ziemlich schwierig, solche Werte zu ändern, vor allem wenn dieselben Werte über das ganze Programm verstreut sind.
Das führt oft zu Fehlern, wenn wir vergessen, sie irgendwann auf einen neuen Wert zu ändern. Deshalb versuchen wir, den Code dynamisch auf Änderungen reagieren zu lassen, indem wir hartkodierte Werte hartkodieren, z.B.:

  • durch eine Konstante oder eine Aufzählungsklasse ersetzen,
  • den aus der Konfigurationsdatei oder der Umgebung gelesenen Wert ersetzen.

Kommentare im Code

Was Kommentare betrifft, so müssen Sie vorsichtig sein und sie sparsam einsetzen. Aussagekräftige Kommentare im Code können hilfreich sein, um nicht-triviale Aspekte des Programms zu verstehen, aber gleichzeitig sollten sie keine offensichtlichen Teile des Codes beschreiben, da aufgeblähte Kommentare den Code weniger lesbar machen können. Im Prinzip versuchen wir, die folgenden Empfehlungen zu befolgen:

  • Kommentare sind ein Zusatz zum Code. Sie dienen nicht dazu, schlecht geschriebenen, schwer verständlichen Code zu erklären.
  • Kommentare müssen richtig formatiert sein, um lesbar zu sein.
  • Es wird empfohlen, JavaDoc-Kommentare zu verwenden, vor allem, wenn unser Code von jemand anderem verwendet werden soll.
  • Wir verwenden hauptsächlich einzeilige Kommentare. Blockkommentare nur für Lösungsbegründungen im Falle einer unkonventionellen Entscheidung.

Code protokollieren

Wie bei den Kommentaren kann die Bedeutung der Codeprotokollierung nicht bestritten werden. Wenn wir es jedoch mit dem Logging übertreiben, kann dies zu einer Verschlechterung der Programmleistung und zur Unübersichtlichkeit des Codes führen. Zum Loggen von Nachrichten in Java können wir verschiedene Bibliotheken und Frameworks verwenden. Ich erwähne zum Beispiel Apache Log4J. Bei der Protokollierung von Nachrichten versuchen wir, die folgenden Ratschläge zu befolgen:

  • Wir müssen die Protokollnachricht sehr klar und anschaulich gestalten.
  • Wenn der Code in der Produktion eingesetzt werden soll, müssen wir die richtige Protokollierungsstufe wählen.
  • Wir müssen vermeiden, alles zu protokollieren, und stattdessen überlegen, welche Informationen uns wirklich helfen können.

Werkzeuge

Im Java-Ökosystem gibt es mehrere Tools, die beim Schreiben von sauberem Code helfen. Wir können Codeformatierungs- und Codeanalysetools wie SonarQube, SpotBugs, Veracode, Checkstyle, Codacy, FindBugs, Coverity, PMD usw. verwenden. Die meisten gängigen Java-Code-Editoren wie Eclipse und IntelliJ ermöglichen eine automatische Codeformatierung. Wir können die voreingestellten Formatierungsregeln leicht anpassen oder durch unsere eigenen Formatierungsregeln ersetzen.

Fazit

In diesem Artikel haben wir die grundlegenden Empfehlungen und Praktiken besprochen, die Ihnen helfen können, sauberen Java-Code zu schreiben. Denken Sie daran, dass das Schreiben von sauberem Java-Code der Schlüssel zur Entwicklung hochwertiger Software ist. Wenn Sie auf der Suche nach einem Job sind und Java-Programmierer sind, sehen Sie sich unsere Mitarbeitervorteile an und reagieren Sie auf die neuesten Stellenausschreibungen.

Über den Autor

Jozef Wagner

Java Developer Senior

Viac ako 10 rokov programujem v Jave, momentálne pracujem v msg life Slovakia ako Java programátor senior a pomáham zákazníkom implementovať ich požiadavky do poistného softvéru Life Factory. Vo voľnom čase si rád oddýchnem v lese, prípadne si zahrám nejakú dobrú počítačovú hru.

Informieren Sie uns über sich