Was ist der Sinn der Codeüberprüfung?

Mar 01 2023
Wenn Sie die Antwort ohne Lektüre wünschen, finden Sie sie hier. Es gibt viele Zwecke, aber das Wichtigste ist, dass Sie und Ihre Prüfer genau angeben, welche davon für Sie wichtig sind.

Wenn Sie die Antwort ohne Lektüre wünschen, finden Sie sie hier. Es gibt viele Zwecke, aber das Wichtigste ist, dass Sie und Ihre Prüfer genau angeben, welche davon für Sie wichtig sind. Ich hoffe, dass Sie trotzdem weiterlesen.

Codeüberprüfung ist eine akzeptierte Praxis der modernen Softwareentwicklung. In meiner Karriere wurde es immer als Evangelium gepredigt, aber ich habe zunehmend festgestellt, dass das „Warum“ immer unklar war. Es gibt viele gute Gründe, aber jedes Mal, wenn ich eine neue Person frage (vor allem, wenn sie einen Hintergrund in anderen Unternehmen und Teams hat), bekomme ich eine etwas andere Antwort. Lass uns eintauchen.

Was ist Codeüberprüfung?

Beim Code-Review handelt es sich um die Praxis, dass mehrere Personen einen Codeabschnitt betrachten. Normalerweise schreibt eine Person den Code und eine andere überprüft ihn später. Manchmal unterzeichnet die zweite Person den Code, bevor er in der Codebasis landen kann. Manchmal schaut es sich die zweite Person später an. Manchmal programmieren zwei oder mehr Personen paarweise.

Oft ist der Rezensent erfahrener als der Autor, aber nicht immer. Manchmal bewerten auch weniger erfahrene Personen.

Warum eine Codeüberprüfung durchführen?

Letztlich laufen alle diese Gründe auf die These „Zwei Augen sind besser als eines“ hinaus. Oder „Vier Augen sind besser als zwei“, nehme ich an ... es sei denn, Sie sind ein Zyklop, der Code schreibt, aber Sie verstehen, worauf es ankommt. Aber es ist mit Kosten verbunden. Vier Augen sind teurer als zwei (Zeit/Geld/usw.). Lassen Sie uns genau erklären, warum vier Augen besser sind als zwei. Diese stammen aus meiner informellen Umfrage unter Leuten, die ich in diesem Bereich kenne.

  • Hilft, Wissen in einem Team zu verbreiten
  • Hilft, Single Points of Failure zu vermeiden
  • Hilft bei der Suche nach Low-Level-Bugs in riskanten Codeteilen
  • Hilft bei der Validierung von Architekturentscheidungen auf hoher Ebene im Code
  • Menschen schreiben Code natürlich besser, wenn sie wissen, dass sich jemand anderes den Code ansieht und ihn dafür beurteilt.
  • Gibt neuen Ingenieuren die Möglichkeit zu sehen, wie erfahrene Ingenieure Code schreiben.
  • Vermeiden Sie, dass neuere Ingenieure versehentlich Probleme verursachen
  • Gibt leitenden Ingenieuren die Möglichkeit, Code zu überwachen/zu blockieren
  • Das Auditing bestehen. Viele Compliance-Standards verlangen, dass mehrere Personen die einzelnen Teile der bereitgestellten Software genehmigen.

Ich glaube, dass der wichtigste Teil der Codeüberprüfung darin besteht, explizit anzugeben, was das Ziel ist. Wenn es eines zum Mitnehmen gibt, dann dieses.

Es gibt nichts Frustrierenderes, als eine Rückmeldung auf der falschen Höhe zu erhalten. Es ist scheiße, eine Rezension voller Kleinigkeiten zu bekommen, wenn die Gesamtidee schlecht ist. Umgekehrt erhalten Sie eine Bewertung, die Ihnen sagt, dass Ihre Gesamtarchitektur schlecht ist, obwohl Sie das bereits wissen und sich bewusst aus einem anderen Grund dafür entscheiden (z. B. um Zeit zu sparen).

Es liegt sowohl in der Verantwortung des Rezensenten als auch des Rezensenten, sicherzustellen, dass die Höhe eindeutig und vereinbart ist. Wenn Sie diesbezüglich nicht einer Meinung sind, werden Sie fast zwangsläufig mit den Ergebnissen nicht einverstanden sein und die Bewertung wird nicht gut ausfallen. Es gibt keine feste Regel, wer das tun sollte, aber einige gute Faustregeln

  • Der erfahrenere Ingenieur hat eine größere Verantwortung, die Höhe auszuwählen
  • Die Person mit mehr Kenntnissen über diesen Teil der Codebasis sollte die Höhe auswählen
  • Die Person mit der größeren Verantwortung für die Folgen sollte die Höhe wählen (der Besitzer)

Versuchen Sie als Prüfer des Codes deutlich anzugeben, auf welcher Höhenstufe Sie die Änderung vornehmen möchten. Beachten Sie, dass es schwierig sein kann, diese Frage zu beantworten, bis Sie die Rezension abgeschlossen haben. Es empfiehlt sich, eine Bewertung zu verfassen, dann die Höhe festzulegen und dann die verfasste Bewertung zu bearbeiten. Entfernen Sie zum Beispiel Ihre Nit-Kommentare, wenn der Ansatz falsch ist.

Wenn Sie die Rezension immer noch frustrierend finden, drehen Sie Ihren Stuhl um oder rufen Sie an und bringen Sie sich über die Höhe auf den gleichen Stand!

Durch Überprüfungen im Ingenieurwesen besser werden

In einer Senior-/Junior-Begutachtungsbeziehung (in beide Richtungen) kann dies eine wirklich wertvolle Möglichkeit sein, sich im Ingenieurwesen zu verbessern! Bei diesen Rezensionen geht es nicht nur um den vorliegenden Code, sondern auch um Lernfähigkeiten. Wenn Sie sich in solchen Fällen den Umweg leisten können, lohnt es sich oft, sich etwas mehr Zeit zum Lernen zu nehmen.

Ich habe auch zu Beginn meiner Karriere herausgefunden, dass es wirklich wertvoll war, mehr Aufwand als nötig in meine PR-Beschreibungen und meine Höheneinstellung zu stecken – selbst bei Rezensionen, bei denen es wahrscheinlich nicht nötig war, eine besonders gute Zusammenfassung zu erzielen. Ich war schlecht darauf eingestellt, welche Teile wichtig waren, und der zusätzliche Aufwand half meinen älteren Kollegen (die auch beschäftigt waren) wirklich und half mir, selbst besser zu werden.

Überprüfung überspringen

Wenn keiner der oben genannten Gründe wirklich überzeugend erscheint, ist es möglicherweise in Ordnung, die Überprüfung in Ihrer Organisation zu überspringen. Vielleicht sind alle gleichberechtigt, einzelne Fehlerquellen sind tolerierbar, oder es steht nur wenig auf dem Spiel und Geschwindigkeit ist von größter Bedeutung. Es gibt Fälle, in denen dies hilfreich ist, daher ist es definitiv eine Option, die auf dem Tisch liegt.

Ich habe es geliebt, in Organisationen mit optionaler Codeüberprüfung zu arbeiten, in denen derjenige, der den Code schreibt, für die Entscheidungsfindung verantwortlich ist. Wenn ich mich dazu entscheide, die Rezension zu überspringen, und dies zu einem ernsthaften Problem führt, habe ich das Gefühl, dass ich alle im Stich lasse, was ehrlich gesagt ein großer Ansporn ist, gute Arbeit zu leisten. Dadurch kann ich entscheiden, wie sicher ich in einer PR bin, was eine wichtige technische Fähigkeit ist.

Schleudern Sie weiter Code!