{"id":1054,"date":"2024-09-30T08:00:32","date_gmt":"2024-09-30T06:00:32","guid":{"rendered":"https:\/\/development-by.schwarzer.de\/blog\/?p=1054"},"modified":"2024-09-30T11:09:33","modified_gmt":"2024-09-30T09:09:33","slug":"code-dokumentation-codequalitaetsanalyse","status":"publish","type":"post","link":"https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/","title":{"rendered":"Code-Doku nur f\u00fcr Tools zur Codequalit\u00e4t-Analyse ist voll f\u00fcr die F\u00fc\u00dfe"},"content":{"rendered":"<p><!-- <ezTOC> -->In der Welt der Software-Entwicklung wird h\u00e4ufig gepredigt, wie wichtig ein gut dokumentierter Quellcode ist. Tools f\u00fcr statische Codequalit\u00e4tsanalysen unterst\u00fctzen diesen Ansatz, indem sie Regeln festlegen, die zum Beispiel vollst\u00e4ndig kommentierte Methodensignaturen und Attribute erwarten. Doch die Frage ist: Sind diese Kommentare wirklich hilfreich? Oder f\u00fchren sie uns in die Irre? In diesem Blogbeitrag schauen wir uns eine weit verbreitete Entwickler-Gewohnheit an, warum sie problematisch ist und wie man es besser machen kann.<br \/>\n<!--more--><\/p>\n<h2>Die fragw\u00fcrdige Gewohnheit: Dokumentation f\u00fcr die Tools<\/h2>\n<p>Eine weit verbreitete Praxis unter Entwicklern ist es, Code-Dokumentation lediglich zur Befriedigung der Anforderungen von Codequalit\u00e4ts-Tools zu erstellen. Diese Tools verlangen oft, dass jede Methode und jedes Attribut kommentiert wird. Das Ergebnis sind Kommentare wie:<\/p>\n<p><code><br \/>\n\/\/ the name<br \/>\nprivate String name;<br \/>\n<\/code><\/p>\n<p>Auf den ersten Blick mag das harmlos erscheinen. Schlie\u00dflich wird die Regel der vollst\u00e4ndigen Kommentierung eingehalten, und das Tool gibt gr\u00fcnes Licht. Doch was wird hier wirklich dokumentiert? Der Kommentar \u201ethe name\u201c wiederholt nur das Offensichtliche und tr\u00e4gt nichts zum Verst\u00e4ndnis des Codes bei.<\/p>\n<h2>Warum das schlecht ist<\/h2>\n<p>Die eigentliche Problematik dieser Gewohnheit liegt darin, dass solche nichtssagenden Kommentare keinen wirklichen Mehrwert bieten. Schlimmer noch, sie k\u00f6nnen sogar Schaden anrichten. Ein Code, der oberfl\u00e4chlich dokumentiert ist, vermittelt den Eindruck, als w\u00e4re er ausreichend beschrieben. Teammitglieder k\u00f6nnten auf die Dokumentation vertrauen, nur um dann festzustellen, dass sie keine zus\u00e4tzlichen Informationen bietet. Der Kommentar sagt ihnen nichts, was sie nicht ohnehin durch das Lesen der Attributnamen und Methodensignaturen verstehen k\u00f6nnten.<\/p>\n<p>Dar\u00fcber hinaus erh\u00f6ht diese Praxis die Komplexit\u00e4t des Codes unn\u00f6tig. Entwickler m\u00fcssen sich durch unn\u00fctze Kommentare k\u00e4mpfen, die lediglich dazu dienen, ein Tool zufriedenzustellen, anstatt das Verst\u00e4ndnis des Codes zu f\u00f6rdern. Dies f\u00fchrt zu einer falschen Sicherheit und kann den Entwicklungsprozess verlangsamen, weil wertvolle Zeit auf das Erstellen und Lesen von Kommentaren verschwendet wird, die keinen echten Mehrwert bieten.<\/p>\n<h2>Wie man es besser macht<\/h2>\n<p>Die L\u00f6sung f\u00fcr dieses Problem liegt darin, Code-Dokumentation als ein Werkzeug zu verstehen, das den Zweck hat, das Verst\u00e4ndnis des Codes zu f\u00f6rdern \u2013 und nicht nur ein Codequalit\u00e4ts-Tool zu befriedigen. Statt redundante oder offensichtliche Kommentare zu schreiben, sollte die Dokumentation darauf abzielen, tats\u00e4chlich hilfreiche Informationen zu vermitteln. Hier einige Tipps, wie das gelingen kann:<\/p>\n<ol>\n<li><strong>Substanzielle Kommentare:<\/strong> Schreiben Sie nur dann Kommentare, wenn sie tats\u00e4chlich zum Verst\u00e4ndnis des Codes beitragen. Erkl\u00e4ren Sie das \u201eWarum\u201c hinter einer Entscheidung, nicht das \u201eWas\u201c oder \u201eWie\u201c, das bereits aus dem Code hervorgeht.<\/li>\n<li><strong>Fokussierte Code Reviews:<\/strong> F\u00fchren Sie Code Reviews gezielt in Bereichen durch, in denen Sie selbst nicht so vertraut sind. So k\u00f6nnen Sie beurteilen, ob die Dokumentation ausreichend ist, um den Zweck des Codes zu verstehen, ohne in die Implementierungsdetails eintauchen zu m\u00fcssen.<\/li>\n<li><strong>Vermeidung von Selbstzweck-Dokumentation:<\/strong> Schreiben Sie keine Kommentare nur, weil ein Tool sie erwartet. Konzentrieren Sie sich stattdessen darauf, ob ein Kommentar einem zuk\u00fcnftigen Leser (inklusive Ihnen selbst) wirklich helfen wird.<\/li>\n<\/ol>\n<h2>Warum das besser ist<\/h2>\n<p>Diese Herangehensweise verbessert die Codequalit\u00e4t auf mehreren Ebenen. Erstens wird die Dokumentation effizienter und gezielter. Kommentare, die tats\u00e4chlich Informationen liefern, sind wertvoller als redundante Anmerkungen, die nur den Code aufbl\u00e4hen. Dadurch wird der Code leichter wartbar, da weniger Zeit darauf verwendet wird, unwesentliche Informationen zu durchforsten.<\/p>\n<p>Zweitens f\u00f6rdert es eine Kultur des tieferen Verst\u00e4ndnisses. Wenn Entwickler ihre Dokumentation so gestalten, dass sie echten Mehrwert bietet, wird die Teamarbeit verbessert. Teammitglieder k\u00f6nnen schneller nachvollziehen, warum bestimmte Entscheidungen getroffen wurden, und das Wissen wird im Team besser geteilt.<\/p>\n<p>Schlie\u00dflich bedeutet eine sinnvolle Dokumentation, dass die Codequalit\u00e4t nicht nur auf oberfl\u00e4chlichen Regeln basiert, sondern tats\u00e4chlich durchdacht und nachhaltig ist. Ein solider, gut dokumentierter Code ist langfristig leichter zu pflegen und weiterzuentwickeln, was letztlich Zeit und Ressourcen spart.<\/p>\n<h3>Fazit<\/h3>\n<p>Die Dokumentation von Code sollte niemals zum Selbstzweck erfolgen oder nur dazu dienen, die Anforderungen eines Tools zu erf\u00fcllen. Stattdessen sollte sie immer darauf abzielen, das Verst\u00e4ndnis des Codes zu f\u00f6rdern und die Zusammenarbeit im Team zu verbessern. Indem wir auf substanziellen Mehrwert setzen, schaffen wir eine bessere, nachhaltigere Codebasis, die nicht nur die Tools zufriedenstellt, sondern vor allem die Entwickler, die damit arbeiten.<\/p>\n<p>Wie handhaben Sie Dokumentation?<\/p>\n<p>Ihre Fragen dazu beantwortet unser Head of DevOps gerne:<br \/>\nKai Rumrich, <a href=\"mailto:kai.rumrich@schwarzer.de\">kai.rumrich@schwarzer.de<\/a>, Jetzt anrufen: +49 6131 \/ 30 292 34<!-- <\/ezTOC> --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In der Welt der Software-Entwicklung wird h\u00e4ufig gepredigt, wie wichtig ein gut dokumentierter Quellcode ist. Tools f\u00fcr statische Codequalit\u00e4tsanalysen unterst\u00fctzen [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1056,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"features_image":"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2024\/08\/code-dokumentation-codequalitaetsanalyse.jpg","rk_cat":null,"rk_date":"30.09.2024","yoast_head":"<title>Code-Doku nur f\u00fcr Tools zur Codequalit\u00e4t-Analyse ist voll f\u00fcr die F\u00fc\u00dfe - development-by.schwarzer.de<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Code-Doku nur f\u00fcr Tools zur Codequalit\u00e4t-Analyse ist voll f\u00fcr die F\u00fc\u00dfe - development-by.schwarzer.de\" \/>\n<meta property=\"og:description\" content=\"In der Welt der Software-Entwicklung wird h\u00e4ufig gepredigt, wie wichtig ein gut dokumentierter Quellcode ist. Tools f\u00fcr statische Codequalit\u00e4tsanalysen unterst\u00fctzen [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/\" \/>\n<meta property=\"og:site_name\" content=\"development-by.schwarzer.de\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-30T06:00:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-30T09:09:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2024\/08\/code-dokumentation-codequalitaetsanalyse.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1080\" \/>\n\t<meta property=\"og:image:height\" content=\"378\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Hans-J\u00fcrgen Schwarzer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/#website\",\"url\":\"https:\/\/development-by.schwarzer.de\/blog\/\",\"name\":\"development-by.schwarzer.de\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/development-by.schwarzer.de\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de-DE\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/#primaryimage\",\"inLanguage\":\"de-DE\",\"url\":\"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2024\/08\/code-dokumentation-codequalitaetsanalyse.jpg\",\"contentUrl\":\"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2024\/08\/code-dokumentation-codequalitaetsanalyse.jpg\",\"width\":1080,\"height\":378,\"caption\":\"Code-Dokumentation nur f\u00fcr die Tools zur Codequalit\u00e4t-Analyse ist voll f\u00fcr die F\u00fc\u00dfe (Foto: AdobeStock - gpointstudio 59924752)\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/#webpage\",\"url\":\"https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/\",\"name\":\"Code-Doku nur f\u00fcr Tools zur Codequalit\u00e4t-Analyse ist voll f\u00fcr die F\u00fc\u00dfe - development-by.schwarzer.de\",\"isPartOf\":{\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/#primaryimage\"},\"datePublished\":\"2024-09-30T06:00:32+00:00\",\"dateModified\":\"2024-09-30T09:09:33+00:00\",\"author\":{\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/#\/schema\/person\/31bc0011f4b960a9aa559e3f04da4a06\"},\"breadcrumb\":{\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/#breadcrumb\"},\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/development-by.schwarzer.de\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Code-Doku nur f\u00fcr Tools zur Codequalit\u00e4t-Analyse ist voll f\u00fcr die F\u00fc\u00dfe\"}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/#\/schema\/person\/31bc0011f4b960a9aa559e3f04da4a06\",\"name\":\"Hans-J\u00fcrgen Schwarzer\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/development-by.schwarzer.de\/blog\/#personlogo\",\"inLanguage\":\"de-DE\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2e9a54aaac87c32742c669aa0d5556c1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2e9a54aaac87c32742c669aa0d5556c1?s=96&d=mm&r=g\",\"caption\":\"Hans-J\u00fcrgen Schwarzer\"},\"description\":\"Hans-J\u00fcrgen Schwarzer leitet die Digital-Agentur schwarzer.de software + internet gmbh. Als Unternehmer und Verleger in Personalunion wie auch als leidenschaftlicher Blogger geh\u00f6rt er zu den Hauptautoren verschiedener Online-Magazine. Innerhalb seiner breiten Palette an Themen liegen dem Mainzer Lokalpatrioten dabei vermeintlich \u201eschr\u00e4ge\u201c Ideen und technische Novit\u00e4ten besonders am Herzen - Nerdstuff, wie es heute hei\u00dft.\",\"sameAs\":[\"http:\/\/www.schwarzer.de\"],\"url\":\"#\"}]}<\/script>","yoast_head_json":{"title":"Code-Doku nur f\u00fcr Tools zur Codequalit\u00e4t-Analyse ist voll f\u00fcr die F\u00fc\u00dfe - development-by.schwarzer.de","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/","og_locale":"de_DE","og_type":"article","og_title":"Code-Doku nur f\u00fcr Tools zur Codequalit\u00e4t-Analyse ist voll f\u00fcr die F\u00fc\u00dfe - development-by.schwarzer.de","og_description":"In der Welt der Software-Entwicklung wird h\u00e4ufig gepredigt, wie wichtig ein gut dokumentierter Quellcode ist. Tools f\u00fcr statische Codequalit\u00e4tsanalysen unterst\u00fctzen [&hellip;]","og_url":"https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/","og_site_name":"development-by.schwarzer.de","article_published_time":"2024-09-30T06:00:32+00:00","article_modified_time":"2024-09-30T09:09:33+00:00","og_image":[{"width":1080,"height":378,"url":"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2024\/08\/code-dokumentation-codequalitaetsanalyse.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Hans-J\u00fcrgen Schwarzer","Gesch\u00e4tzte Lesezeit":"4 Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/development-by.schwarzer.de\/blog\/#website","url":"https:\/\/development-by.schwarzer.de\/blog\/","name":"development-by.schwarzer.de","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/development-by.schwarzer.de\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de-DE"},{"@type":"ImageObject","@id":"https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/#primaryimage","inLanguage":"de-DE","url":"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2024\/08\/code-dokumentation-codequalitaetsanalyse.jpg","contentUrl":"https:\/\/development-by.schwarzer.de\/blog\/wp-content\/uploads\/2024\/08\/code-dokumentation-codequalitaetsanalyse.jpg","width":1080,"height":378,"caption":"Code-Dokumentation nur f\u00fcr die Tools zur Codequalit\u00e4t-Analyse ist voll f\u00fcr die F\u00fc\u00dfe (Foto: AdobeStock - gpointstudio 59924752)"},{"@type":"WebPage","@id":"https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/#webpage","url":"https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/","name":"Code-Doku nur f\u00fcr Tools zur Codequalit\u00e4t-Analyse ist voll f\u00fcr die F\u00fc\u00dfe - development-by.schwarzer.de","isPartOf":{"@id":"https:\/\/development-by.schwarzer.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/#primaryimage"},"datePublished":"2024-09-30T06:00:32+00:00","dateModified":"2024-09-30T09:09:33+00:00","author":{"@id":"https:\/\/development-by.schwarzer.de\/blog\/#\/schema\/person\/31bc0011f4b960a9aa559e3f04da4a06"},"breadcrumb":{"@id":"https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/#breadcrumb"},"inLanguage":"de-DE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/development-by.schwarzer.de\/blog\/code-dokumentation-codequalitaetsanalyse\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/development-by.schwarzer.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Code-Doku nur f\u00fcr Tools zur Codequalit\u00e4t-Analyse ist voll f\u00fcr die F\u00fc\u00dfe"}]},{"@type":"Person","@id":"https:\/\/development-by.schwarzer.de\/blog\/#\/schema\/person\/31bc0011f4b960a9aa559e3f04da4a06","name":"Hans-J\u00fcrgen Schwarzer","image":{"@type":"ImageObject","@id":"https:\/\/development-by.schwarzer.de\/blog\/#personlogo","inLanguage":"de-DE","url":"https:\/\/secure.gravatar.com\/avatar\/2e9a54aaac87c32742c669aa0d5556c1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2e9a54aaac87c32742c669aa0d5556c1?s=96&d=mm&r=g","caption":"Hans-J\u00fcrgen Schwarzer"},"description":"Hans-J\u00fcrgen Schwarzer leitet die Digital-Agentur schwarzer.de software + internet gmbh. Als Unternehmer und Verleger in Personalunion wie auch als leidenschaftlicher Blogger geh\u00f6rt er zu den Hauptautoren verschiedener Online-Magazine. Innerhalb seiner breiten Palette an Themen liegen dem Mainzer Lokalpatrioten dabei vermeintlich \u201eschr\u00e4ge\u201c Ideen und technische Novit\u00e4ten besonders am Herzen - Nerdstuff, wie es heute hei\u00dft.","sameAs":["http:\/\/www.schwarzer.de"],"url":"#"}]}},"_links":{"self":[{"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/posts\/1054"}],"collection":[{"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/comments?post=1054"}],"version-history":[{"count":5,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/posts\/1054\/revisions"}],"predecessor-version":[{"id":1091,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/posts\/1054\/revisions\/1091"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/media\/1056"}],"wp:attachment":[{"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/media?parent=1054"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/categories?post=1054"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/development-by.schwarzer.de\/blog\/wp-json\/wp\/v2\/tags?post=1054"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}