Kurze Antwort
Soll ich den Code selbst reparieren?
Nein.
Sollte ich ihnen Feedback zum Überprüfungsprozess geben und sie die Korrekturen gemäß meinen Anweisungen durchführen lassen?
Ja. Nach Ihren Vorschlägen keine Anweisungen . Anweisungen klingen zu maßgeblich.
Und wenn ja, wie gebe ich dieses Feedback, fülle ich ein bestimmtes Vorlagendokument aus und sende es an sie, oder gibt es eine Software, mit der ich Probleme mit Problemen in den Codedateien markieren kann, die später überprüft werden können? (Ich benutze Visual Studio).
Verwenden Sie ein Tool, um das Feedback zu geben. Sie können Visual Studio verwenden.
Lange Antwort
Früher habe ich Visual Studio verwendet, aber ich musste ständig andere Entwickler fragen: "Hey, können Sie mir Ihre Arbeit schicken, damit ich sie überprüfen kann?" Das hat mir nicht gefallen und es hat nie wirklich gut geklappt. Jetzt verwende ich den Überprüfungsassistenten, da ich eine Überprüfung starten kann, indem ich mir die Checkins ansehe. Ich muss mich nicht darauf verlassen, dass ein anderer Entwickler mir Arbeiten zur Überprüfung sendet. Es hilft mir auch, Elemente als Fehler zu markieren oder einfach Elemente zu markieren, die vom Autor betrachtet werden sollen. Dies funktioniert für unser Team, da es nach dem Start einer Überprüfung direkt im Überprüfungsgremium verbleibt und nicht in der Übersetzung verloren geht. Dies ist in Visual Studio integriert. Wie bereits erwähnt, hat Visual Studio auch einen nativen Überprüfungsprozess, aber ich finde, dass er Einschränkungen aufweist und der Prozess nicht natürlich ist. Daher verwende ich den Überprüfungsassistenten.
Dieses Tool hilft auch beim Hin- und Her-Prozess, bei Diskussionen usw.
Der Prozess ist mehr oder weniger wie folgt:
Ich überprüfe etwas und sende es dann an den Autor (in Ihrem Fall Junior Dev). Sie nehmen Änderungen vor und senden sie dann zurück. Ich schaue mir die Änderungen an und gebe Feedback. Wenn ich mit den Änderungen gut bin, schließe ich die Überprüfung. Ansonsten geht es hin und her. Manchmal, wenn es zu viel hin und her gibt, gehe ich einfach zu ihrem Schreibtisch und benutze ein Whiteboard - das beschleunigt den Prozess wirklich.
Codeüberprüfungen sind ein sensibler Bereich. Seien Sie daher bei der Wahl des Wortlauts sehr vorsichtig. Ich erzähle es niemandem
Schlechte Wortwahl
Ich habe Ihren Code überprüft und es gibt einige Elemente, die Sie ändern müssen.
Ich sage stattdessen Folgendes:
Bessere Wortwahl
Ich habe mir Ihren Code angesehen und brauche Hilfe. Können Sie bitte die Artikel überprüfen, die ich Ihnen gesendet habe, und prüfen, ob Sie einige meiner Fragen klären können?
Dies lässt den Autor denken:
- Ich brauche Hilfe, damit sie nicht in einen defensiven Modus wechseln.
- Es hört sich so an, als wären sie der Rezensent, nicht ich. Technisch gesehen sind sie, da ich sie auffordere, einen anderen Blick darauf zu werfen und einige Dinge zu ändern, wie der Rezensent.
Diese einfachen Wortwahlen haben mir enorm geholfen.
Ich unterschätze nie Junior-Entwickler. Ich habe mit einigen erfahrenen Entwicklern zusammengearbeitet (über 10 Jahre Erfahrung) und dort war der Code schlechter als bei einem Junior-Koop-Studenten. Nur weil sie älter oder jünger sind, ist das gar nicht so wichtig. Ihre Arbeit spricht wirklich mehr als jahrelange Erfahrung.
Um Junior-Entwickler zu ermutigen und sie dazu zu bringen, an Reviews teilzunehmen, schicke ich ihnen oft etwas, das sie für mich rezensieren können: etwas, das sie herausfinden können, etwas, das sie herausfordernd finden, aber nicht völlig darüber hinaus. Ich kann es wie folgt ausdrücken:
Können Sie bitte einen Code für mich überprüfen, da ich ihn nicht herausfinden kann?
Das hilft mir wieder sehr. Dies hilft, weil es deutlich zeigt, dass ich nicht der einzige bin, der Bewertungen abgibt, aber sie führen auch Bewertungen durch und sie sind auch Teil des Prozesses. Es zeigt, dass die ganze Idee darin besteht, guten, sauberen Code zu erstellen und bei Bedarf um Hilfe zu bitten. Der Überprüfungsprozess ist eine Kultur, daher müssen wir wirklich daran arbeiten.
Jetzt können einige Leute befürchten, dass die Junior-Entwickler den Respekt verlieren, wenn sie das oben Genannte tun, weil sie einfach etwas getan haben, was Sie nicht tun konnten. Aber das ist weit von der Wahrheit entfernt: Um Hilfe zu bitten, zeigt Demut. Außerdem gibt es viele Situationen, in denen Sie glänzen können. Wenn das Ihre Angst ist, haben Sie Probleme mit dem Selbstwertgefühl. Schließlich weiß ich es vielleicht wirklich nicht: Ich meine, einige dieser Entwickler haben Algorithmen im Kopf, weil sie sie erst vor einem Monat studiert haben.
Wie auch immer, zurück zu Junioren und Bewertungen. Sie sollten den Ausdruck auf ihren Gesichtern sehen, wenn sie es herausfinden und mir eine Antwort senden. Ich kann ihnen dann sagen: "OK, lassen Sie mich die Änderungen vornehmen, und wenn Sie damit zufrieden sind, schließen Sie das Problem."
Sie fühlen sich großartig, wenn sie die Möglichkeit haben, sich meine Arbeit anzusehen und zu sagen: "Ja, Ihre Änderungen sind gut. Ich habe das Problem geschlossen."
Ich habe den Code jedoch nie selbst repariert, weil:
- Der Autor wird daraus nicht lernen.
- Es ist, als würde ich sagen: "Gehen Sie zur Seite, lassen Sie mich Ihnen zeigen, wie es gemacht wird. Mein Code ist besser als Ihrer."
- Warum sollte ich? Das ist mehr Arbeit für mich.
Aber ich werde in meinen Kommentaren Ideen und Code-Schnipsel vorschlagen, um dem Autor zu helfen. Bitte beachten Sie, dass meine Bewertungen manchmal einfach den Autor fragen, dass ich ihren Code nicht verstehe. Möglicherweise ist an ihrem Code nichts auszusetzen. Möglicherweise müssen sie Variablennamen ändern, Kommentare hinzufügen usw. Daher weiß ich nicht einmal, was ich in diesem Fall ändern soll. nur sie werden.
Wenn Sie weiterhin Überprüfungen durchführen, haben Sie früher oder später eine wirklich gute Vorstellung vom Wissensstand jedes Entwicklers im Team. Das zu wissen ist wirklich nützlich und Sie müssen es nutzen und entfesseln. So geht's: Wenn ich Code überprüfe und offensichtliche Verbesserungsmöglichkeiten sehe und weiß, dass ein anderer Entwickler sie möglicherweise auch abfängt, werde ich sie stattdessen dazu bringen, ihn zu überprüfen. Etwas wie "Hey, ich sehe einige Bereiche, die verbessert werden können. Können Sie es bitte genauer überprüfen und Ihre Kommentare an den Autor senden?" Das funktioniert auch super, weil ich jetzt 2 andere Entwickler habe, die miteinander arbeiten.
Wenn ich einige Arbeiten überprüfe und etwas bemerke, von dem das gesamte Team profitieren kann, erstelle ich ein hypothetisches Szenario und erkläre das Problem in einer Besprechung. Ich werde zunächst das Szenario erläutern und alle fragen, ob sie das Problem finden oder sehen können, und sie einbeziehen. Lassen Sie alle Fragen stellen. Dann endlich einen besseren Ansatz präsentieren. Wenn jemand anderes einen besseren Ansatz hat, danke ich ihm und bestätige vor dem Team, dass sein Ansatz besser ist. Dies zeigt, dass ich keine Persönlichkeit vom Typ "Mein Weg oder die Autobahn" bin. Außerdem öffne ich NIEMALS jemandes Arbeit und beginne, in einer Besprechung auf die Probleme hinzuweisen. Der Autor wird es nicht zu schätzen wissen - unabhängig davon, wie nett und harmlos ich denke, dass ich bin.
Wenn ich Überprüfungen durchführe, suche ich nicht nur nach gutem, sauberem Code, sondern auch nach dem, was der Code tut. Wenn die Geschäftsanforderung lautet: Wenn ein Mitarbeiter länger als 10 Jahre im Unternehmen ist, erhöhen Sie ihn um 5%. Ansonsten 2,5% . Das erste, was ich überprüfe, ist, ob es das tatsächlich tut. Dann überprüfe ich, ob es sauber, konsistent und performant ist.
Wenn ich eine Überprüfung durchführe, stelle ich sicher, dass ich sie weiterverfolge, da sonst niemand die Bewertungen ernst nimmt.
Ich habe vor Jahren mit jemandem zusammengearbeitet, der eine Überprüfung durchführte und den Entwickler-Manager und den QS-Manager leitete, aber beide Manager hatten einen geschäftlichen Hintergrund oder hatten wenig Entwicklungserfahrung. Er tat dies nur, um sie zu beeindrucken. Niemand mochte es und dann sagte ich mir, ich würde diesen Fehler niemals machen.
Das andere, was er früher gemacht hat, ist die Auswahl des Programmierstils und er war überzeugt, dass sein Stil der beste ist ("Mein Kung Fu ist viel besser als dein Affenstil ..."). Das war eine weitere Lektion für mich: Es gibt immer mehr als einen Weg, ein Problem zu lösen.
Beantworten Sie einige Ihrer nummerierten Fragen
1- sollte ich den Code selbst reparieren?
Nein, siehe Gründe, die ich oben angegeben habe.
2- Soll ich ihnen Feedback zum Überprüfungsprozess geben und sie die Korrekturen gemäß meinen Anweisungen durchführen lassen?
Ja, versuchen Sie, Sätze und einen Ton zu verwenden, der freundlich ist, aber dennoch Aufmerksamkeit erfordert. Sei so klar wie du kannst. Geben Sie an, was das Problem mit dem Code ist und wie Sie ihn verbessern können. Bitten Sie nicht einfach darum, es zu ändern. Aber Gründe angeben.
Wie gebe ich dieses Feedback, fülle ich ein bestimmtes Vorlagendokument aus und sende es an sie, oder gibt es eine Software, mit der ich Probleme mit Problemen in den Codedateien markieren kann, die sie später überprüfen können? (Ich benutze Visual Studio).
Wie gesagt, Sie können das von mir verwendete Tool oder ein anderes Tool verwenden. Verwenden Sie keine E-Mail- oder Word-Dokumente, da diese verloren gehen und es schwierig ist, den Überblick zu behalten.
Nachdem ich den Code überprüft und die Korrekturen durchgeführt habe, ist irgendwann vergangen und einige Teile des Codes, den ich in der Vergangenheit überprüft habe, haben sich geändert. Wie führe ich den Überprüfungsprozess durch? sollte ich den gesamten Code noch einmal überprüfen?
Meistens überprüfe ich das Delta (nur Änderungen). Sie müssen jedoch das Gesamtbild im Auge behalten, um sicherzustellen, dass nichts kaputt geht und der Architektur folgt.
Abschließende Gedanken
Ich persönlich halte das Wort "Code Review" für eine schlechte Wahl und weiß nicht, wie es angefangen hat. Sie hätten ein viel besseres und weniger maßgebliches Wort wählen können.