{"id":4453,"date":"2024-03-08T16:00:29","date_gmt":"2024-03-08T16:00:29","guid":{"rendered":"https:\/\/msgprogramator.sk\/?p=4453"},"modified":"2025-10-22T11:03:54","modified_gmt":"2025-10-22T11:03:54","slug":"clean-code-java","status":"publish","type":"post","link":"https:\/\/msgprogramator.sk\/de\/clean-code-java\/","title":{"rendered":"Clean code Java: Wie erreicht man ihn?"},"content":{"rendered":"<p>Es kommt die Fr\u00fchlingszeit, in der die Natur ihre Sch\u00f6nheit erneuert. Wir k\u00f6nnen uns inspirieren lassen und wieder an der \u00e4sthetischen Seite unseres Quellcodes arbeiten. Gerade jetzt ist der richtige Zeitpunkt, mit dem Aufr\u00e4umen und Reinigen des Codes zu beginnen, denn sauberer Code ist nicht nur ein Trendkonzept, sondern eine Notwendigkeit f\u00fcr die Qualit\u00e4t des Programms.<\/p>\n<p>Sauberer Code ist in vielerlei Hinsicht vergleichbar mit der Zahnpflege. Wenn wir uns nicht um den Quellcode k\u00fcmmern, vernachl\u00e4ssigen wir die Architektur und \u201aflicken\u2018 neue Funktionalit\u00e4ten lediglich hinzu. Mit der Zeit steigen unn\u00f6tige Kosten und der Aufwand, der f\u00fcr seine Bereinigung erforderlich ist. \u00c4hnlich ist es auch mit den Z\u00e4hnen Bakterien (in der IT-Welt Software-Bugs) lieben eine schmutzige, vernachl\u00e4ssigte Umgebung (des Programms).    <\/p>\n<p>Das Schreiben von sauberem Code ist l\u00e4ngst keine pers\u00f6nliche Vorliebe mehr, sondern es gibt eine Vielzahl von Empfehlungen und Tipps, die sich \u00fcber Jahre bew\u00e4hrt 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 <a href=\"https:\/\/msgprogramator.sk\/java\/\">Programmiersprache Java<\/a>.  Diese Grunds\u00e4tze helfen uns, Code zu erstellen, der nicht nur funktional, sondern auch elegant und f\u00fcr uns sowie f\u00fcr andere Entwickler leicht verst\u00e4ndlich ist.<\/p>\n<p>Lasst unseren Code ebenso sch\u00f6n bl\u00fchen wie die Natur im Fr\u00fchling. Los geht&#8217;s! <\/p>\n<h2>Was ist sauberer Code?<\/h2>\n<p>Sauberer Code kann als Code definiert werden, der relativ einfach zu lesen und zu verstehen ist und gleichzeitig leicht zu \u00e4ndern und zu pflegen ist. Er sollte gut organisiert, konsistent in den verwendeten Regeln und frei von Fehlern sein. <\/p>\n<h2>Eigenschaften von sauberen Code<\/h2>\n<p>Wenn wir Quellcode schreiben, versuchen wir, ihn mit den folgenden Eigenschaften auszustatten:<\/p>\n<ol>\n<li><strong>Einfachheit<\/strong> &#8211; der Code sollte so einfach wie m\u00f6glich sein, damit er leicht zu verstehen ist. Viele unn\u00f6tige Fehler in einem Programm entstehen, wenn der Programmierer nicht ganz versteht, was der Code tut. <\/li>\n<li><strong>Wartbarkeit<\/strong> &#8211; der Code sollte langfristig wartbar sein, damit er leicht ge\u00e4ndert und um neue Funktionen erweitert werden kann. M\u00f6glicherweise arbeiten viele verschiedene Entwickler an dem Code. Daher ist es wichtig, dass sie zusammenarbeiten und die vereinbarten Regeln einhalten. <\/li>\n<li><strong>Testbarkeit<\/strong> &#8211; der Code sollte relativ einfach zu testen sein, was ihn auch weniger fehleranf\u00e4llig macht. Ideal ist es, sich auf automatisierte Tests zu konzentrieren, um sicherzustellen, dass wir bei der Programmierung neuer Funktionen keine bestehenden Funktionen zerst\u00f6ren. <\/li>\n<\/ol>\n<p>Sauberer Code enth\u00e4lt keine Codeduplikationen, ist weniger fehleranf\u00e4llig und es ist auch einfacher, Probleme im Code zu isolieren und zu beheben. Au\u00dferdem m\u00fcssen Sie nicht so viele Kommentare schreiben, um komplexe Bereiche des Codes zu erkl\u00e4ren. <\/p>\n<h2>Eigenschaften von &#8222;schmutzigem&#8220; Code<\/h2>\n<p>Wenn Ihr Code hingegen eines der folgenden Elemente enth\u00e4lt, sollten Sie \u00fcberlegen, wie Sie es entfernen k\u00f6nnen. Der sogenannte \u201aschmutzige\u2018 Code kann voll funktionsf\u00e4hig sein, und dem Compiler ist es im Grunde egal, wie der Code geschrieben ist. In der Zukunft k\u00f6nnen jedoch Probleme auftreten, insbesondere wenn er bearbeitet wird. Zu den Merkmalen von unsauberem Code geh\u00f6ren: Chaos, Komplexit\u00e4t, schwer zu lesen und zu verstehen, Probleme mit der Erweiterbarkeit, schwieriges Auffinden und Beheben von Fehlern, Duplizierung, zeitaufw\u00e4ndig.<\/p>\n<h2>Clean code Java<\/h2>\n<h3>Struktur des Projekts<\/h3>\n<p>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\u00fcrzt.<\/p>\n<p>Obwohl Java uns nicht dazu zwingt, eine bestimmte Projektstruktur zu verwenden, ist es immer eine gute Idee, den besten Gemeinschaftsstandards zu folgen. <strong>Maven<\/strong>, ein Tool f\u00fcr die automatische Erstellung von Projekten, empfiehlt ein standardisiertes Layout von Ordnern in einem Projekt gem\u00e4\u00df der <a href=\"https:\/\/maven.apache.org\/guides\/introduction\/introduction-to-the-standard-directory-layout.html\" target=\"_blank\" rel=\"nofollow noopener\">folgenden Struktur<\/a>:<\/p>\n<table width=\"395\">\n<tbody>\n<tr>\n<td>src\/main\/java<\/td>\n<td>Ressourcendateien und Bibliotheken<\/td>\n<\/tr>\n<tr>\n<td>src\/main\/resources<\/td>\n<td>Andere Quellen wie. Modelle, &#8230; <\/td>\n<\/tr>\n<tr>\n<td>src\/test\/java<\/td>\n<td>Test-Quelldateien<\/td>\n<\/tr>\n<tr>\n<td>src\/test\/resources<\/td>\n<td>Andere Ressourcen zum Testen<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>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 in<strong>Paketen<\/strong> organisiert.  <\/p>\n<h3>Korrekte Benennung<\/h3>\n<p>Einer der wichtigsten Grunds\u00e4tze f\u00fcr sauberen Code ist die Verwendung klarer und sinnvoller Namen f\u00fcr Variablen, Funktionen, Klassen und andere Bezeichner. Daher sollten wir ihnen immer einen Namen geben, der mit ihrer Funktionalit\u00e4t zusammenh\u00e4ngt.  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\u00fcssen 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\u00fcrzen (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\u00e4ndlichkeit des Codes tr\u00e4gt dazu bei, dass der Code auf Dauer erhalten bleibt.<\/p>\n<h3>Struktur der Quelldatei<\/h3>\n<p>Die Quellcodedatei enth\u00e4lt viele verschiedene Elemente. Der Java-Compiler l\u00e4sst dem Programmierer ziemlich viel Freiheit bei der Wahl der Reihenfolge der Elemente und verlangt nur, dass er sich an die Grundstruktur der Quellcodedatei h\u00e4lt. Wie bei der Projektstruktur gibt es eine Reihe von Empfehlungen, aber eine typische Anordnung der Elemente im Quellcode sieht wie folgt aus:  <\/p>\n<ul>\n<li>Package<\/li>\n<li>Importe\n<ul>\n<li>alle statischen Importe,<\/li>\n<li>alle nicht-statischen Importe,<\/li>\n<\/ul>\n<\/li>\n<li>Klasse\n<ul>\n<li>Variablen,<\/li>\n<li>Instanzen,<\/li>\n<li>Konstrukteure,<\/li>\n<li>Methoden.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<figure id=\"attachment_2884\" aria-describedby=\"caption-attachment-2884\" style=\"width: 1200px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2882 size-full\" src=\"https:\/\/msgprogramator.sk\/wp-content\/uploads\/2024\/03\/struktura-zdrojoveho-kodu-1200-800.webp\" alt=\"Der erste Schritt zu sauberem Code ist eine geeignete Projektstruktur\" width=\"1200\" height=\"800\" srcset=\"https:\/\/msgprogramator.sk\/wp-content\/uploads\/2024\/03\/struktura-zdrojoveho-kodu-1200-800.webp 1200w, https:\/\/msgprogramator.sk\/wp-content\/uploads\/2024\/03\/struktura-zdrojoveho-kodu-1200-800-300x200.webp 300w, https:\/\/msgprogramator.sk\/wp-content\/uploads\/2024\/03\/struktura-zdrojoveho-kodu-1200-800-1024x683.webp 1024w, https:\/\/msgprogramator.sk\/wp-content\/uploads\/2024\/03\/struktura-zdrojoveho-kodu-1200-800-768x512.webp 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><figcaption id=\"caption-attachment-2884\" class=\"wp-caption-text\">Der erste Schritt zu sauberem Code ist eine geeignete Projektstruktur.<\/figcaption><\/figure>\n<h3>Parameter der Methode<\/h3>\n<p>Obwohl Methodenparameter in den meisten F\u00e4llen notwendig sind, kann die Menge der Parameter in einer Methode den Code weniger verst\u00e4ndlich 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\u00e4nger und komplizierter. In einem solchen Fall k\u00f6nnen zusammenh\u00e4ngende Parameter in einem gemeinsamen Datenobjekt zusammengefasst und als Parameter der Methode verwendet werden. Zum Beispiel. Objekttyp Adresse kann anstelle von Parametern (Vorname, Nachname, Stra\u00dfe, Stadt, Land, Telefonnummer) verwendet werden.<\/p>\n<p>In jedem Fall muss dies von Fall zu Fall gepr\u00fcft werden, und es sollte nicht versucht werden, unn\u00f6tig neue Datentypen zu erstellen, um miteinander nicht zusammenh\u00e4ngende Parameter miteinander zu verkn\u00fcpfen. Wir versuchen, die Lesbarkeit des Codes zu verbessern, nicht ihn zu verkomplizieren. <\/p>\n<h3>Unflexibler Code<\/h3>\n<p><strong>Fest kodierte<\/strong> Werte im Programm machen es ziemlich schwierig, solche Werte zu \u00e4ndern, vor allem wenn dieselben Werte \u00fcber das ganze Programm verstreut sind.<br \/>\nDas f\u00fchrt oft zu Fehlern, wenn wir vergessen, sie irgendwann auf einen neuen Wert zu \u00e4ndern. Deshalb versuchen wir, den Code dynamisch auf \u00c4nderungen reagieren zu lassen, indem wir hartkodierte Werte hartkodieren, z.B.:  <\/p>\n<ul>\n<li>durch eine Konstante oder eine Aufz\u00e4hlungsklasse ersetzen,<\/li>\n<li>den aus der Konfigurationsdatei oder der Umgebung gelesenen Wert ersetzen.<\/li>\n<\/ul>\n<h3>Kommentare im Code<\/h3>\n<p>Was Kommentare betrifft, so m\u00fcssen Sie vorsichtig sein und sie sparsam einsetzen. Aussagekr\u00e4ftige Kommentare im Code k\u00f6nnen hilfreich sein, um nicht-triviale Aspekte des Programms zu verstehen, aber gleichzeitig sollten sie keine offensichtlichen Teile des Codes beschreiben, da aufgebl\u00e4hte Kommentare den Code weniger lesbar machen k\u00f6nnen. Im Prinzip versuchen wir, die folgenden Empfehlungen zu befolgen:  <\/p>\n<ul>\n<li>Kommentare sind ein Zusatz zum Code. Sie dienen nicht dazu, schlecht geschriebenen, schwer verst\u00e4ndlichen Code zu erkl\u00e4ren.<\/li>\n<li>Kommentare m\u00fcssen richtig formatiert sein, um lesbar zu sein.<\/li>\n<li>Es wird empfohlen, JavaDoc-Kommentare zu verwenden, vor allem, wenn unser Code von jemand anderem verwendet werden soll.<\/li>\n<li>Wir verwenden haupts\u00e4chlich einzeilige Kommentare. Blockkommentare nur f\u00fcr L\u00f6sungsbegr\u00fcndungen im Falle einer unkonventionellen Entscheidung. <\/li>\n<\/ul>\n<h3>Code protokollieren<\/h3>\n<p>Wie bei den Kommentaren kann die Bedeutung der Codeprotokollierung nicht bestritten werden. Wenn wir es jedoch mit dem Logging \u00fcbertreiben, kann dies zu einer Verschlechterung der Programmleistung und zur Un\u00fcbersichtlichkeit des Codes f\u00fchren. Zum Loggen von Nachrichten in Java k\u00f6nnen wir verschiedene Bibliotheken und Frameworks verwenden. Ich erw\u00e4hne zum Beispiel <a href=\"https:\/\/logging.apache.org\/log4j\/2.x\/\" target=\"_blank\" rel=\"nofollow noopener\">Apache Log4J.<\/a> Bei der Protokollierung von Nachrichten versuchen wir, die folgenden Ratschl\u00e4ge zu befolgen:<\/p>\n<ul>\n<li>Wir m\u00fcssen die Protokollnachricht sehr klar und anschaulich gestalten.<\/li>\n<li>Wenn der Code in der Produktion eingesetzt werden soll, m\u00fcssen wir die richtige Protokollierungsstufe w\u00e4hlen.<\/li>\n<li>Wir m\u00fcssen vermeiden, alles zu protokollieren, und stattdessen \u00fcberlegen, welche Informationen uns wirklich helfen k\u00f6nnen.<\/li>\n<\/ul>\n<h3>Werkzeuge<\/h3>\n<p>V ekosyst\u00e9me Java je k dispoz\u00edcii nieko\u013eko n\u00e1strojov, ktor\u00e9 pom\u00e1haj\u00fa pri p\u00edsan\u00ed \u010dist\u00e9ho k\u00f3du. M\u00f4\u017eeme pou\u017ei\u0165 n\u00e1stroje na form\u00e1tovanie k\u00f3du a anal\u00fdzu k\u00f3du, ako s\u00fa <a href=\"https:\/\/www.sonarsource.com\/products\/sonarqube\/\" target=\"_blank\" rel=\"nofollow noopener\">SonarQube<\/a>, <a href=\"https:\/\/spotbugs.github.io\/\" target=\"_blank\" rel=\"nofollow noopener\">SpotBugs<\/a>, <a href=\"https:\/\/www.veracode.com\/\" target=\"_blank\" rel=\"nofollow noopener\">Veracode<\/a>, <a href=\"https:\/\/checkstyle.sourceforge.io\/\" target=\"_blank\" rel=\"nofollow noopener\">Checkstyle<\/a>, <a href=\"https:\/\/www.codacy.com\/\" target=\"_blank\" rel=\"nofollow noopener\">Codacy<\/a>, <a href=\"https:\/\/findbugs.sourceforge.net\/\" target=\"_blank\" rel=\"nofollow noopener\">FindBugs<\/a>, <a href=\"https:\/\/scan.coverity.com\/\" target=\"_blank\" rel=\"nofollow noopener\">Coverity<\/a>, <a href=\"https:\/\/pmd.github.io\/\" target=\"_blank\" rel=\"nofollow noopener\">PMD<\/a> at\u010f. <\/p>\n<p>Die meisten beliebten Java-Code-Editoren, wie z. B. <a href=\"https:\/\/msgprogramator.sk\/de\/java-ide-eclipse\/\">Eclipse<\/a> und <a href=\"https:\/\/msgprogramator.sk\/de\/java-intellij-idea\/\">IntelliJ<\/a>, erm\u00f6glichen die automatische Formatierung von Code. Die voreingestellten Formatierungsregeln lassen sich leicht anpassen oder durch eigene Formatierungsregeln ersetzen. <\/p>\n<h2>Fazit<\/h2>\n<p>In diesem Artikel haben wir grundlegende Empfehlungen und Vorgehensweisen vorgestellt, die Ihnen beim Schreiben von sauberem Java-Code helfen k\u00f6nnen. Denken Sie daran, dass das Schreiben von sauberem Java-Code der Schl\u00fcssel zur Entwicklung hochwertiger Software ist. <\/p>\n<p>Wenn Sie auf der Suche nach einem Job sind und ein <a href=\"https:\/\/msg-life.sk\/de\/stellenangebote\/java-entwickler-senior\/\">Java-Programmierer<\/a> sind, informieren Sie sich \u00fcber unsere <a href=\"https:\/\/msg-life.sk\/de\/mitarbeiter-benefits\/\">Mitarbeitervorteile<\/a> und reagieren Sie auf unsere <a href=\"https:\/\/msg-life.sk\/de\/stellenangebote\/\">aktuellen Stellenausschreibungen<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im Artikel erf\u00e4hrst du, welche Eigenschaften der Code haben muss und welche Kriterien er erf\u00fcllen sollte, um als sauberer Code zu gelten, insbesondere in der Programmiersprache Java.<\/p>\n","protected":false},"author":14,"featured_media":2887,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[62],"tags":[],"class_list":["post-4453","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/msgprogramator.sk\/de\/wp-json\/wp\/v2\/posts\/4453","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/msgprogramator.sk\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/msgprogramator.sk\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/msgprogramator.sk\/de\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/msgprogramator.sk\/de\/wp-json\/wp\/v2\/comments?post=4453"}],"version-history":[{"count":6,"href":"https:\/\/msgprogramator.sk\/de\/wp-json\/wp\/v2\/posts\/4453\/revisions"}],"predecessor-version":[{"id":9680,"href":"https:\/\/msgprogramator.sk\/de\/wp-json\/wp\/v2\/posts\/4453\/revisions\/9680"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/msgprogramator.sk\/de\/wp-json\/wp\/v2\/media\/2887"}],"wp:attachment":[{"href":"https:\/\/msgprogramator.sk\/de\/wp-json\/wp\/v2\/media?parent=4453"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/msgprogramator.sk\/de\/wp-json\/wp\/v2\/categories?post=4453"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/msgprogramator.sk\/de\/wp-json\/wp\/v2\/tags?post=4453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}