{"id":4517,"date":"2024-04-22T16:05:30","date_gmt":"2024-04-22T16:05:30","guid":{"rendered":"https:\/\/msgprogramator.sk\/?p=4517"},"modified":"2025-07-07T11:36:23","modified_gmt":"2025-07-07T11:36:23","slug":"code-reviews-tipps-tricks","status":"publish","type":"post","link":"https:\/\/msgprogramator.sk\/de\/code-reviews-tipps-tricks\/","title":{"rendered":"Effektive Code Reviews: Tipps und Tricks"},"content":{"rendered":"<p>Schlecht eingestellte Prozesse bei der Softwareentwicklung k\u00f6nnen einem Unternehmen anstelle der erwarteten Vorteile betr\u00e4chtliche Sch\u00e4den zuf\u00fcgen. Wenn du unseren vorherigen Artikel &#8222;<a href=\"https:\/\/msgprogramator.sk\/de\/code-reviews\/\">Code Reviews: N\u00fctzlich oder Zeitverschwendung?<\/a>&#8220; gelesen hast, wei\u00dft du bereits, dass auch das Code Review dazu geh\u00f6rt \u2013 also die Qualit\u00e4tskontrolle des Codes nach festgelegten Regeln. Ein Code Review findet vor dem Speichern des Quellcodes im Repository statt und wird von einem Entwickler durchgef\u00fchrt, der nicht an der Programmierung dieses Codes beteiligt war. Es kann ein breites Spektrum an Aktivit\u00e4ten umfassen, vom einfachen Lesen des Codes zusammen mit dem Autor an einem Computer bis hin zu Teammeetings, bei denen jede Codezeile besprochen wird. Beide Teilnehmer, die am Code Review beteiligt sind, sollten in der Lage sein, zusammenzuarbeiten. <strong>Die f\u00fcr die Codekontrolle festgelegten Prozesse und Kriterien sollten im Voraus bekannt sein,<\/strong> andernfalls besteht die Gefahr, dass sich die Prozesse unn\u00f6tig in die L\u00e4nge ziehen und Spannungen zwischen den beiden Seiten entstehen. In diesem Artikel konzentrieren wir uns darauf, die Prozesse der Codekontrolle zu optimieren, sowie auf Tipps und Tricks f\u00fcr beide Seiten, den Autor und den Reviewer. <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3180 size-full\" src=\"https:\/\/msgprogramator.sk\/wp-content\/uploads\/2024\/04\/team-repository-750-810.webp\" alt=\"Die \u00dcberpr\u00fcfung des Codes erfolgt, bevor der Quellcode in das Repository eingestellt wird, und wird vom Entwickler durchgef\u00fchrt.\" width=\"750\" height=\"810\" srcset=\"https:\/\/msgprogramator.sk\/wp-content\/uploads\/2024\/04\/team-repository-750-810.webp 750w, https:\/\/msgprogramator.sk\/wp-content\/uploads\/2024\/04\/team-repository-750-810-278x300.webp 278w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/p>\n<h2>Allgemeine bew\u00e4hrte Praktiken<\/h2>\n<ul>\n<li>Wenn ein Softwareunternehmen die Code\u00fcberpr\u00fcfung als Teil der <em>Definition of Done<\/em> (d.h. der Bedingungen, die erf\u00fcllt sein m\u00fcssen, damit eine Aufgabe als erledigt gilt) definiert, muss es unbedingt die n\u00f6tige Zeit im Planungsprozess vorsehen. Es gibt nichts Schlimmeres, als wenn eine \u00dcberpr\u00fcfung unter dem Zeitdruck einer bevorstehenden Frist f\u00fcr die Entwicklung der aktuellen Version nicht gr\u00fcndlich durchgef\u00fchrt wird. <\/li>\n<li>Die Effektivit\u00e4t der Code\u00fcberpr\u00fcfung liegt in der Minimierung der Interaktionen zwischen den beiden Parteien sowie in der Reduzierung der f\u00fcr die \u00dcberpr\u00fcfung ben\u00f6tigten Zeit. Wenn ein Autor etwas \u00fcberarbeitet bekommt, ist es ideal, wenn er oder sie dann alle notwendigen Informationen dar\u00fcber hat, was ge\u00e4ndert werden muss, damit die n\u00e4chste \u00dcberpr\u00fcfung ein Erfolg wird. <\/li>\n<li>Die Kommunikation zwischen dem Pr\u00fcfer und dem Autor sollte von Verst\u00e4ndnis und Einf\u00fchlungsverm\u00f6gen gepr\u00e4gt sein. Das Ziel ist es, zusammenzuarbeiten und gemeinsam Schwachstellen im Code zu identifizieren. Es geht nicht darum, dar\u00fcber zu streiten, wessen L\u00f6sung besser ist, oder Assoziationen wie &#8222;Er hat gesagt, dass mein Code schlecht ist, also sagt er eigentlich, dass ich schlecht bin&#8220; aufzustellen. <\/li>\n<li>Bei der Code\u00fcberpr\u00fcfung wird nicht gepr\u00fcft, ob der Code funktioniert. Nur getesteter Code wird gepr\u00fcft. <\/li>\n<li>Der Code-Check sollte nicht l\u00e4nger als eine Stunde dauern. Wenn wir eine T\u00e4tigkeit aus\u00fcben, bei der wir uns \u00fcber einen l\u00e4ngeren Zeitraum konzentrieren m\u00fcssen, wird unsere Leistung nachlassen. <\/li>\n<\/ul>\n<h2>Autor des Codes \u2013 Best Practices<\/h2>\n<ul>\n<li>Indem du jemanden bittest, sich deinen Code anzusehen, bel\u00e4stigst du niemanden.<\/li>\n<li>Es ist ratsam, dein L\u00f6sung vor der Code\u00fcberpr\u00fcfung durchzugehen und Stellen anzupassen, die der Reviewer bem\u00e4ngeln k\u00f6nnte. Nach mehreren qualitativen Code Reviews bekommst du ein Gef\u00fchl daf\u00fcr und wirst wissen, worauf du deine Aufmerksamkeit richten solltest. <\/li>\n<li>Nimm Feedback niemals pers\u00f6nlich, es wird der Code bewertet, nicht deine Pers\u00f6nlichkeit.<\/li>\n<li>Der Autor sollte umfangreiche Pull Requests vermeiden. Es ist ratsam, kleinere, separat funktionierende Einheiten zur \u00dcberpr\u00fcfung zu schicken. Das beschleunigt nicht nur den \u00dcberpr\u00fcfungsprozess, sondern macht es auch einfacher, den Code anschlie\u00dfend zu korrigieren.  <\/li>\n<li>Wenn dem Reviewer einige Teile des Codes nicht gefallen, versuche statt hartem Argumentieren (oder im schlimmsten Fall Streiten), mehr Informationen von ihm zu bekommen. Mit einer Frage wie \u201eWie w\u00fcrdest du diesen Teil programmieren?\u201c kannst du erfahren, wie du den betreffenden Codeabschnitt verbessern kannst.<\/li>\n<li>Als Autor des Codes solltest du dir detaillierte Notizen machen \u2013 erwarte nicht, dass du diese vom Reviewer erh\u00e4ltst.<\/li>\n<\/ul>\n<h2>Reviewer \u2013 Best Practices<\/h2>\n<ul>\n<li>Er sollte die Code\u00fcberpr\u00fcfung nicht aufschieben, da jemand darauf wartet, dass er sich den Code ansieht. Daher ist es ratsam, der Code\u00fcberpr\u00fcfung Priorit\u00e4t einzur\u00e4umen. Das beschleunigt den Prozess und nimmt die Frustration des Wartens. <\/li>\n<li>Zu Beginn einer Code\u00fcberpr\u00fcfung ist es eine gute Idee sicherzustellen, dass der Autor versteht, dass es kein pers\u00f6nlicher Angriff ist, wenn er etwas \u00fcberarbeitet, denn es gibt gute Gr\u00fcnde, dies zu tun. Zum Beispiel. Das Zusammenfassen von zwei Schleifen in eine zur Optimierung.<\/li>\n<li>Der Rezensent gibt ein Feedback und sollte es in einem optionalen Stil formulieren, d.h. dass es gut w\u00e4re, wenn der Autor dies oder jenes \u00fcberarbeitet h\u00e4tte. Nicht in dem Stil, dass der Autor dies noch korrigieren muss. <\/li>\n<li>Der Pr\u00fcfer sollte sich mehr auf die Struktur des Codes als auf einzelne Zeilen konzentrieren. Codezeilen, auch wenn sie in einem eigent\u00fcmlichen Stil geschrieben sind, sind relativ in Ordnung, solange sie funktionieren, schlimmer ist es bei umst\u00e4ndlichem und fehleranf\u00e4lligem Code. Wir empfehlen daher, deine Energie auf die wichtigen Teile des Codes zu konzentrieren.  <\/li>\n<li>Es ist besser, den zu \u00fcberpr\u00fcfenden Code zuerst allein anzusehen, sich eine Meinung zu bilden und gegebenenfalls Fragen an den Autor vorzubereiten. Wenn wir den Code zum ersten Mal in einem gemeinsamen Meeting mit dem Autor sehen, besteht die Gefahr, uns von seiner Verteidigung beeinflussen zu lassen. <\/li>\n<li>Beschuldige den Autor niemals, etwas falsch gemacht zu haben. Du kannst fragen, ob es einen bestimmten Grund gibt, warum er sich f\u00fcr diese Variante entschieden hat. Wenn wir etwas sehen, das uns nicht gef\u00e4llt, ist es hilfreich, es so zu formulieren: \u201eWenn ich das gemacht h\u00e4tte, dann &#8230;\u201c und dies mit einem konkreten Beispiel zu untermauern.  <\/li>\n<li>Der Reviewer sollte sich nicht damit br\u00fcsten, dass er den Code in weniger Zeilen und schneller geschrieben h\u00e4tte.<\/li>\n<li>Es muss konkret sein. Ein Feedback wie &#8222;Das k\u00f6nnte man besser machen&#8220; ist nicht konstruktiv und der Autor wird nicht wissen, wie er es in besseren Code umsetzen soll. Es ist besser, wenn der Autor Notizen mitnimmt, wie er die Dinge konkret verbessern kann.  <\/li>\n<li>Wenn ein gr\u00f6\u00dferer Teil des Codes ge\u00e4ndert werden muss, ist es ratsam, ausreichend Zeit einzuplanen, um dies pers\u00f6nlich mit dem Autor durchzugehen und alle gestellten Fragen zu beantworten.<\/li>\n<li>Er sollte auch alles loben, was nicht negativ ist, beziehungsweise was so programmiert ist, wie wir es erwarten. <\/li>\n<\/ul>\n<p>Wenn du ein <a href=\"https:\/\/msg-life.sk\/de\/stellenangebote\/java-entwickler-senior\/\">Java Programmierer<\/a> bist und nach Arbeit suchst, schau dir unsere <a href=\"https:\/\/msg-life.sk\/de\/mitarbeiter-benefits\/\">Mitareiterbenefits <\/a> an und reagiere auf die <a href=\"https:\/\/msg-life.sk\/de\/stellenangebote\/\">neuesten Stellenangebote<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Artikel erf\u00e4hrst du, wie man Code Reviews effektiv durchf\u00fchrt. Wir stellen bew\u00e4hrte Praktiken und Tipps f\u00fcr beide Seiten \u2013 den Autor des Codes und den Reviewer \u2013 vor. <\/p>\n","protected":false},"author":14,"featured_media":3185,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[64],"tags":[],"class_list":["post-4517","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programmierung"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/msgprogramator.sk\/de\/wp-json\/wp\/v2\/posts\/4517","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=4517"}],"version-history":[{"count":3,"href":"https:\/\/msgprogramator.sk\/de\/wp-json\/wp\/v2\/posts\/4517\/revisions"}],"predecessor-version":[{"id":8011,"href":"https:\/\/msgprogramator.sk\/de\/wp-json\/wp\/v2\/posts\/4517\/revisions\/8011"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/msgprogramator.sk\/de\/wp-json\/wp\/v2\/media\/3185"}],"wp:attachment":[{"href":"https:\/\/msgprogramator.sk\/de\/wp-json\/wp\/v2\/media?parent=4517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/msgprogramator.sk\/de\/wp-json\/wp\/v2\/categories?post=4517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/msgprogramator.sk\/de\/wp-json\/wp\/v2\/tags?post=4517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}