Zuerst glaube ich fest an den Codeüberprüfungsprozess und möchte immer, dass jemand anderes meinen Code überprüft. Meine Frage dreht sich wirklich darum, wie ich eine Codeüberprüfung für eine andere Person besser durchführen kann.
Ich weiß, dass Sie zur Durchführung einer Codeüberprüfung Kenntnisse über die Funktionsweise des vorhandenen Codes und über den lokalen Standard benötigen, die ich meiner Meinung nach sehr gut kenne. Trotzdem habe ich das Gefühl, dass ich niemals eine ausreichend gute Codeüberprüfung für andere Leute durchführe. Ich weiß auch, dass bestimmte Leute einen besseren Code für die Jobüberprüfung zu haben scheinen als andere, also frage ich mich für diejenigen, die großartige Codeüberprüfer sind, welche Techniken verwenden Sie?
quelle
Antworten:
Es gibt keine Möglichkeit, eine bessere Codeüberprüfung durchzuführen. Das Einzige, was Sie tun können, ist, sich durch Lernen und Erfahrung zu verbessern.
Normalerweise folge ich Dingen
Ich denke, da kann man noch viel hinzufügen.
quelle
Fragen Sie sich, was andere zu einem guten Rezensenten für Sie macht.
auch, wenn Sie den Code durchgehen;
quelle
Ich ziele nur auf
Abgesehen davon ist "wissen, wonach zu suchen ist" nur mit Erfahrung, Übung und Lesen verbunden.
quelle
Nach meiner Erfahrung ist es am besten, das gesamte Team den Code überprüfen zu lassen. Wir verwenden in jedem Projekt eine Commit-Mailingliste, in der Sie alle Codeänderungen am Versionskontrollsystem verfolgen können. Die meisten unserer Entwickler haben ihre projektspezifische Mailingliste abonniert, weil sie an Codeänderungen interessiert sind.
Wenn jemand im neuen Quellcode einen schlechten Weg bemerkt, erklärt er dem Committer entweder, wie er es besser machen kann, wenn der Committer ein Auszubildender ist, oder er beginnt eine Diskussion darüber, wenn es sich um einen erfahreneren Committer handelt.
Natürlich garantiert diese Methode nicht, dass der gesamte neue Code überprüft wird, insbesondere in stressigen Zeiten, in denen niemand im Team die Möglichkeit hat, jede Codeänderung zu verfolgen. Auch ist nicht jeder Entwickler dafür verantwortlich, dass jeder Entwickler seine Arbeit gut macht, allein davon können Sie nicht garantieren, dass sie überprüft wird. Aber zumindest in unseren Teams gibt es immer einen technischen Manager, der für die technische Qualität verantwortlich ist.
Ich bin ein echter Fan von Code-Bewertungen, wenn sie den folgenden Bewertungen entsprechen:
Was ich gelernt habe ist, dass wenn Sie jemand sind, der jede Codezeile überprüft und der Meinung ist, dass Sie solche Dinge wie die Codequalität in Bezug auf Codeformatierung oder Codeeffizienz kontrollieren müssen, Sie selbst sehr ineffizient sind, weil Sie Dinge tun, für die Maschinen etwas tun können Sie. Ihr Ziel sollte es sein, ein kontinuierliches Integrationssystem zu verwenden, das die Build- und Codequalität jedes Codebeitrags steuert. Wenn dieses System Berichte generiert und an die Mitwirkenden sendet, ist alles perfekt.
Ich muss zugeben, dass meine Vorschläge keinen Sinn ergeben, wenn Sie den Code überprüfen müssen, weil Sie die Qualität eines Programmierers kontrollieren oder bewerten müssen. In diesem Fall würde ich den Quellcode auch nicht zeilenweise überprüfen. Ich würde Dinge wie überprüfen:
Wenn Sie ein erfahrener Entwickler sind, werden Sie auf jeden Fall immer Dinge wie Schleifen finden, die Sie mit besserer Leistung machen könnten. Natürlich ist es nützlich, anderen dieses Wissen zu erklären, aber dies sollte nicht Teil der Überprüfungssitzung sein. Wenn es signifikante Leistungsprobleme gibt, dann nicht, weil er (oder sie) eine weniger effiziente Variante eines Listentyps verwendet hat.
Da die anfängliche Frage lautete, warum einige Personen eine bessere Bewertung abgeben als andere, würde ich antworten, dass diese Personen möglicherweise eine Vorschau erstellen, bevor die eigentliche Überprüfung beginnt. Dies bedeutet, dass sie wahrscheinlich selbst darauf vorbereitet sind, genau zu wissen, was sie überprüfen möchten .
quelle
Stellen Sie ihnen viele Fragen
Nein, Sie müssen den Code nicht vorher kennen, um ein guter Rezensent zu sein.
Vor ein paar Jobs forderte mein Arbeitgeber, dass alle Code-Check-Ins von einem Prüfer abgemeldet werden müssen. Ich habe hauptsächlich GUI-Arbeiten in C ausgeführt, und einer der besten Rezensenten für mich war mein Kumpel Bill. Er beherrschte C, hatte aber nie viel GUI-Arbeit geleistet, und als er in die Reviews ging, hatte er keine Ahnung, wie mein Code funktionieren sollte.
Aber er stellte viele Fragen dazu und musste erklären, damit er verstehen konnte, was mein Code tat und warum ich viel zum Nachdenken anregte. Es hat mich dazu gebracht, viele seltsame kleine Fehler mit Randfällen zu finden und auch andere Ansätze in Betracht zu ziehen, die ich möglicherweise gewählt habe. Obwohl ich zu diesem Zeitpunkt 22 Jahre lang C geschrieben hatte und dachte, ich sei ziemlich kompetent, verbesserte sich meine Codequalität schnell.
Obwohl ich dort nicht mehr arbeite, überprüfe ich vor dem Einchecken immer noch die Unterschiede und frage mich: "Welche Fragen hätte Bill dazu?" Und ziemlich oft ändere ich dadurch etwas.
quelle