Frage

Ich habe in zwei Unternehmen gearbeitet, die jeweils eine andere Methodik hatten, wenn es um Code -Bewertungen ging:

In der ersten Firma wurde von den Teamleitern eine Codeüberprüfung durchgeführt und war nach Abschluss jedes Moduls erforderlich.

In der zweiten Firma mussten die Teamleiter jedoch keine Codeüberprüfungen durchführen und nur auf Funktionen und Designprobleme geprüft.

Also bin ich verwirrt. Ist der Code -Überprüfungsprozess wirklich benötigt? Wenn ja, warum? Und wenn es nicht ist, warum nicht?

War es hilfreich?

Lösung 10

Code-Review: Der Code -Überprüfungsprozess muss a sein vital Ich werde erklären, wer alle Vorteile erhalten, da sie die Codeüberprüfung durchführen und welche Vorteile sie erhalten.

1. Leistungen des Unternehmens aufgrund der Durchführung der Codeüberprüfung:Wenn eine häufige Code -Überprüfung durchgeführt wird, kann das Unternehmen die endgültigen Produkte auf viel besser optimierte Weise erhalten, was ihnen hilft CMMI eben.

2. Vorteile für den Teamleiter aufgrund der Durchführung der Codeüberprüfung:Da wir alle wissen, kann ein Lehrer die Fehler leicht identifizieren, da er die Antworten seiner Schüler häufiger überprüft, damit sie eine Idee bekommen, in welchen Bereichen es für falsche Dinge möglich sein kann. Ebenso weiß der Teamleiter auch, was in diesen Bereichen schief gehen. Wie können wir diese korrigieren und dem Teamleiter auch helfen, die Nachrichtenideen auch vom Junior -Entwickler zu nutzen?

3. Vorteile des Junior -Entwicklers aufgrund der Durchführung der Codeüberprüfung:Junior Developer kann leicht die Ideen zum Code -Überprüfungsprozess erfassen. Sie können beispielsweise den Codierungsstandard erhalten: Um API auf ordnungsgemäße Weise zu erstellen, lernen sie die Standardisierung der Codierung, die ihnen in Zukunft besonders helfen kann Wenn sie in höherem Niveau werden.

Meine Schlussfolgerung ist also, dass die Code -Überprüfung ein sehr sehr wichtiger Prozess für alle [auch für Teammitglied] ist, da Code -Überprüfung uns hilft, unsere unachtsamen Fehler in unserem Code zu korrigieren Nachlässige Fehler im Code machen.

Andere Tipps

Ich persönlich denke, dass jeder Code eine Codeüberprüfung durchlaufen sollte. Es spielt keine Rolle, ob Sie Junior- oder Senior -Entwickler sind.

Wieso den? Für den Anfang gibt Ihr Titel nichts darüber an, wie Sie sich entwickeln, und ein leitender Entwickler könnte etwas vom Junior lernen. In unserem Unternehmen wechseln wir herum, damit eines der anderen Mitglieder des Teams Ihren Code überprüfen ... meisten in einer Nachfolger gefangen. Wenn der Senior den Junior -Code nicht mag, sollte er sich anhören, warum der Junior es getan hat, was er getan hat Wer du bist.

Eine wichtige Sache bei der Codeüberprüfung ist, dass Sie nicht zu nett sind. Wenn Sie ein netter Kerl sind, erlauben Sie einfach immer unordentlichere Code, sich im System zu entwickeln. Gerade als ich gestern begann, eine vollständige Bewerbung zu überarbeiten, die ein ehemaliger Juniordeveloper schrieb, und mein Gott, diesen Code hätte eine Bewertung benötigen können, bevor er ging.

Ich verstehe nicht, warum es sich nur um die Teamleaderin handelt, die nur Bewertungen durchführt, aber es erfordert eine Person, die keine Angst hat, einen "Kampf" über ein Stück schlecht entwickeltes Code zu wählen, und es muss eine Person sein, die sich darum kümmert, wie der Code sollte sein. Nicht alle Unternehmen stellen Leute ein, die sich tatsächlich darum kümmern, was sie tun, und diese schlechten Eier sollten nicht Code -Bewertungen durchführen dürfen, da sie wahrscheinlich nur mit den Schultern zucken und "OK" zu schlechten Code sagen.

Grundsätzlich ist für alle Programmierer unabhängig von der Erfahrung eine Codeüberprüfung erforderlich. Es ist die Qualitätskontrolle der Softwareentwicklung und einer der Gründe, warum Open Source von sehr hoher Qualität sein kann.

Bearbeiten: Der Grund dafür ist, dass ein Code -Rezensent heute in genau der gleichen Rolle wie ein Betreuer ist. Wenn der Code für ihn heute keinen Sinn ergibt, wird er später auch keinen Sinn ergeben und Fehler teurer zu beheben. Machen Sie es heute verständlich, während der Entwickler sich noch an den Code erinnert. Außerdem kann der Rezensent Fehler oder Auslassungen sehen, die der Entwickler verpasst hat.

Leider wollen nur sehr wenige es tun, aber aus geschäftlicher Sicht sollte es obligatorisch sein.

Ich arbeite an einem Ort, an dem die Code -Überprüfung jetzt eine Voraussetzung ist, aber vor 3 Jahren war es nicht nur vor 3 Jahren. Es hat sich in unserem Code und in der Fähigkeit anderer, den Code später aufrechtzuerhalten, eine enorme Verbesserung vorgenommen. Sogar hochrangige, sehr erfahrene Entwickler machen Fehler, die in der Codeüberprüfung einfach und leise behoben werden können, bevor die QA sie findet oder schlechter, bevor der Kunde sie findet. Mindestens eine andere Person als der Orginalentwickler ist mit dem Code vertraut.

Wenn eine Organisation wie bei der Code -Überprüfung etwas Neues versucht, gibt es oft viel Widerstand gegen Veränderungen. Ich habe fast nichts davon (wir waren estatisch gesehen, um auch eine formelle QS -Abteilung zu erhalten) mit Code -Überprüfung. Es braucht so ziemlich nur ein oder zwei Bewertungen, um den Wert zu sehen.

Ich habe neue Techniken gefunden, die ich bei einer Code -Überprüfung der Arbeit eines anderen oder bei der Überprüfung meines Codes nicht in Betracht gezogen hatte. Wir haben relativ schnell Kompetenzprobleme mit neuen Mitarbeitern gefunden, indem wir Code -Bewertungen und vor allem dadurch darauf reagierten, wie sie auf die Code -Überprüfung reagiert haben. Wir haben gelernt, was Dinge, die im Moment mitten in der Programmierung vollkommen klar erscheinen, in diesem Abschnitt, der in der Wartung nicht klar ist. Das ist von unschätzbarem Wert. Es kann sein, dass das einzige, was benötigt wird, ein Kommentar darüber ist, warum etwas getan wurde. Wir haben einige grundlegende Missverständnisse über unser Datenbankdesign gefunden, die für einen Bericht korrigiert werden mussten, um tatsächlich die richtigen Informationen zu haben.

Oft ist das, was ich in einer Code -Überprüfung gesehen habe, dass der Entwickler durch die Erklärung von etwas anderem eine Glühbirne im Kopf hat und feststellt, dass es einen Fehler gibt, den der Rezensent nicht gesehen hat.

Und Boy kann die Cowboy -Programmierer identifizieren, die keine Standard -Tools verwenden und von niemand anderem auf nicht wachsame Code eingehen. Und es kann sie zwingen, mit dem Programm zu kommen oder auch rauszukommen.

Die Personen, die gegen die Code -Überprüfung am häufigsten resistent sind, sind häufig die Personen, die die Organisation am meisten beseitigen muss, weil sie in ihren Herzen wissen, dass ihr Code keine Codeüberprüfung bestehen kann.

Agile Guy würde sagen: "Sie brauchen keine Code -Bewertung, machen Sie einfach Paarprogrammierung und schreiben gute Tests" :) :) :) :) :) :)

Die Code -Überprüfung ist eine gute Möglichkeit, Knowlege und gute Praxis durch ein Team zu verbreiten. Nach meiner Erfahrung ist es eine gute Idee, sicherzustellen, dass der gesamte Code überprüft wird, und versuchen, zu variieren, wer welchen Code überprüft.

In meinem aktuellen Team wird jeder Code von jedem Jedesones gleichermaßen überprüft, und sowohl Programmierer als auch Rezensent müssen mit dem Code zufrieden sein, bevor er veröffentlicht werden kann. Dies gilt ebenso für hochrangige Entwickler, die von mehr Juniorentwicklern, einem Juniorentwickler überprüft werden, der einen anderen überprüft, oder andere hochrangige Entwickler, die sich gegenseitig überprüfen. Wenn der Rezensent unerfahren ist oder sich nicht wohl fühlt, wenn er ein bestimmtes Stück Code überprüft, schließt er sich mit einem anderen Entwickler (und möglicherweise auch dem ursprünglichen Entwickler) zusammen, um die Überprüfung als Gruppe durchzuführen.

Ich bin seit mehr als 20 Jahren im Geschäft, arbeite für Softwareunternehmen und für verschiedene Unternehmen und keiner dieser Orte hatte einen Code -Überprüfungsprozess. Ich kann jedoch die Vorteile eines eines verstehen und schätzen. Wie ich sie verstehe, sollten sie im Wesentlichen verwendet werden, um die Einhaltung von Standards zu gewährleisten, die befolgt werden sollten, damit andere den Code in Zukunft leichter aufrechterhalten können. Die Code -Lesbarkeit kann auch in einem Überprüfungsprozess überprüft werden, da auch dies sicherstellt, dass die Wartung effektiv mit dem Code funktionieren kann.

Derzeit arbeite ich in einem kleinen Laden, in dem ich der alleinstehende Entwickler bin. Gelegentlich haben wir Auftragnehmer mitgebracht, um beim Rückstand zu helfen. Mindestens ein oder zwei dieser Auftragnehmer haben Code geschrieben, die nicht unbedingt meine oder die Unternehmensstandards entsprach, aber es hat gut funktioniert und war zumindest etwas verständlich. Als ich dieses Problem auf das Management hinwies, war es ihnen egal, dass sie nur wissen wollten, ob es das tat, wofür wir sie bezahlt haben. Ich denke, es hängt also nur von der Firma ab und ob sie, ob sie sauber sind, einfach zu pflegen, das gewünschte Produkt ist oder ob sie nur etwas wollen, das gut für das Geld funktioniert.

Offensichtlich möchte ich als Entwickler und einer, der Code unterhalten muss Auch wenn es bedeutet, manchmal einen Code in meinem eigenen Standard neu zu schreiben.

Code -Überprüfungen können Defekte früher im Software -Lebenszyklus identifizieren, wenn Probleme einfacher (und billiger) sind, um zu beheben. Bei Smartbear Wir haben a entwickelt Peer -Code -Überprüfungstool und haben auch viel nachgeforscht, wie Code -Bewertungen wirksam werden können. Basierend auf Daten unserer Kunden sind Fehler in der Codeüberprüfung 8-12X billiger, um zu finden und zu beheben als in der QA zu findenen Fehler. Allein die Kosteneinsparungen machen die Code -Überprüfung wert, aber es gibt mehr Wert als nur. Code Review ist eine hervorragende Möglichkeit für alle im Team, sich als Softwareentwickler zu lernen und zu verbessern.

Es gibt einige Fallen, die dazu führen können, dass Code -Bewertungen weniger effektiv werden, und es scheint, als ob Ihre Organisation in einem von ihnen gefangen ist. Lassen Sie den Code über den Code und nicht über die Personen überprüfen. Titel bedeuten nichts in einer Codeüberprüfung. Appelle an die Autorität (Sie müssen es auf meine Weise tun, weil ich das Team -Lead bin), schaden mehr als nützlich. Stattdessen lehren. Senior -Ingenieure sollten erklären, warum es auf ihre Weise erledigt werden sollte, nicht nur verlangen, dass dies der Fall ist. Wenn es Ihnen schwer fällt, ein Konzept zu erklären, ist es auch eine Lernerfahrung für Sie. Sie beide werden bessere Entwickler für die Anstrengung sein, die Sie unternommen haben.

Ich denke, Code, der alle Code überprüfen, ist Overkill. Die Zeit, die für die Überprüfung aller Code benötigt wird, könnte besser an anderer Stelle ausgegeben werden. Alterntivley Ich denke, kritischer Code und oder besonders komplexe Teile benötigen eine Codeüberprüfung, aber sicherlich nicht jede Codezeile.

Meiner Meinung nach sollte der Code, der von einem Unternehmen verwendet wird, sei es von einem Junior- oder Senior -Entwickler, immer überprüft werden. Wieso den? Denn was wäre, wenn der Code mehrere Fehler hätte? Und was ist, wenn das Programm während der Zeit, in der dieser Code verwendet wurde, abgestürzt ist? Um diese Dinge zu verhindern, sollte der gesamte Code vor der Verwendung überprüft werden.

Aber was ist mit den Unternehmen, die den Code nicht überprüfen? Sie sind wahrscheinlich die Unternehmen, die viele technische Probleme und viele haben, wie sie den Verbrauchern "Crashs" sagen ;-).

Lassen Sie mich alle Ihre Fragen beantworten:

  • Ja, der Überprüfungsprozess ist erforderlich.
  • Wieso den? Aus den Gründen, die ich oben angegeben habe.

Was ist der Unterschied, wenn Sie Ihre Ideen beeinträchtigen, bevor Sie Ihren Code einchecken (Überprüfung) oder danach aufgrund eines Fehlers, zu klug/schwierig zu verstehen oder nicht akzeptierte Standardpraktiken zu befolgen? Ist es dein Ego?

Sie können die Vorzüge der Code -Überprüfung oder irgendetwas anderem nicht außerordentlich abbauen, nur weil sie von einem weniger qualifizierten Teammitglied, das Sie nicht respektieren, schlecht umgesetzt wird. Die Code -Überprüfung ist kein hochkomplexer Prozess, dass nur wenige Superprogrammierer in der Lage sind, zu erfassen. Ich bin mir nicht sicher, ob es viele Programmierer oder professionelle Schriftsteller gibt, die fähig sind oder die Zeit haben, sich selbst zu bearbeiten.

Sind Sie schon ein paar Monate später in eine Codezeile zurückgekehrt und haben sich gefragt, was ich dachte? Es würde eine bessere Chance geben, es mit einer Codeüberprüfung zu fangen. Du hast es gerade gefangen und du bist nur etwas besser als der Programmierer, den du vor einiger Zeit warst - ich hoffe.

IMO Eine Code -Überprüfung sollte für alle Entwickler von wesentlicher Bedeutung sein. aber Nur wenn die Menschen die Bewertung selbst kompetent sind. In der Vergangenheit habe ich Code in einer Bewertung abgelehnt SOLID, hat eine Abhängigkeitsinjektion geführt und den Code gemäß dem logischen Design in Namespaces und Ordner organisiert und eine kleine Reihe von Unit -Tests enthielt, um den Code zu überprüfen. Der Code wurde als "zu kompliziert" abgelehnt, und mir wurde gesagt, ich solle eine Klasse verwenden, die alles zusammenfasste und die Tests entfernen, weil das Unternehmen nicht so geschrieben wurde.

Eine solche Codeüberprüfung ist wertlos, aber eine Code -Überprüfung mit einem zuständigen Team kann oft etwas über das Design beleuchten (z. aus falschen Gründen).

Natürlich ist die Bewertung der Code nicht erforderlich. Andererseits sind auch Tests, kontinuierliche Integration, Quellensteuerung, Kundenbeteiligung, Profilerstellung, statische Analyse, anständige Hardware, Ein-Klick-Builds, Fehlerverfolgung und die Liste weiter.

Zusammen mit Code -Bewertungen, die ich oben erwähne, sind Tools, mit denen die Softwarequalität gewährleistet ist. Mit einer Kombination aus Geschick, Glück, Zeit und Entschlossenheit; Sie kann Liefern Sie Qualitätssoftware ohne dieses Zeug, aber es ist wahrscheinlicher, dass Sie Gewohnheit.

In Ihrem Szenario gibt es nichts, worüber man verwirrt werden muss. Nicht jede Organisation gönnt sich in jeder besten Praxis. Sie können damit nicht einverstanden sein, es kann mit einer anderen bewährten Praxis in Konflikt stehen, oder sie können in Betracht ziehen, dass der Aufwand der Implementierung zu diesem Zeitpunkt zu groß für sie ist. Abhängig von ihren Umständen können sie dies zu Recht haben, oder sie machen möglicherweise eine falsche Wirtschaft. Für einige Tools (z. B. Quellensteuerung) ist das Payback-/Aufwandsverhältnis so gut, dass es ein Kinderspiel ist. Für andere ist es weniger klar.

Es besteht kein Zweifel, dass die Code -Überprüfung eine Praxis ist, die einen erheblichen Overhead einführt. Aus diesem Grund versuchen Organisationen, diesen Overhead zu minimieren, entweder durch überhaupt nicht oder nur in bestimmten Situationen (z. B. für ein Junior -Teammitglied oder eine besonders haarige Veränderung). Es ist nicht immer offensichtlich, dass es mehr zurückzeigt (wenn man Fehlern fängt, technische Schulden reduziert oder Kenntnisse teilen) als es kostet. Das meiste dieser Rückzahlung ist schwer zu quantifizieren, während es sehr einfach ist, die Anzahl der Mannstunden zu zählen, die Ihre Organisation über Bewertungen ausgibt. Das am einfachsten zu quantifizierende Bit (reduzierte Fehleranzahl) ist leicht zu einem anderen Faktoren (z. "Natürlich hat es weniger Fehler, es ist reifer").

Wir machen Online -Fußballspiel in der Türkei. Viele Benutzer und Game Masters helfen uns bei der Funktionalität. Außerdem geben sie Kommentare zu den erforderlichen Funktionen. Ich denke, wenn Sie viele Benutzer haben, können Funktionstests durchgeführt werden, um Abzeichen zu erhalten. Die Kollobration von Entwicklern, Spielemeister und Benutzern mit Foren, Supportteams und privaten Testumgebungen erzeugt ein soziales Projekt.

Sicher, dass Code -Bewertungen und Freigabe von Erfahrungen zwischen dem Entwicklungsteam benötigt werden, aber wenn es nicht kritisch ist, müssen Sie sich nicht erzwingen.

Ich denke, wie die inspezifische Inspektion der 2nd -Party ausführlich von Ihrem Lebenszyklus, egal ob Sie agiler oder mehr Wasserfall in Ihren Prozessen sind, hängt. Ich denke, es ist vernünftig, hochrangige Designs/Inspektionen sowie detailliertere Inspektionen von Design -Design -Inspektionen durchzuführen. Ich denke, es ist auch gut, mehrere Mitglieder eines Teams einzubeziehen, um zu inspizieren.

Sie sind absolut notwendig, da sie wenig Erfahrung haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
scroll top