Wie können Sie konstruktive Kritik an Ihrem Code bekommen?

8

Mein Team führt selten Codeüberprüfungen durch, hauptsächlich weil wir nicht genug Zeit haben und den Leuten die Energie und der Wille dazu fehlen. Aber ich würde wirklich gerne wissen, was die Leute über meinen Code denken, wenn sie ihn lesen. Auf diese Weise habe ich ein besseres Verständnis dafür, wie andere Leute denken, und passe meinen Code entsprechend an, damit er leichter zu lesen ist.

Meine Frage ist also, wie kann ich konstruktive Kritik an meinem Code bekommen? Meine Absicht ist es zu verstehen, wie die Leute denken, damit ich besser lesbaren Code schreiben kann.

verbrannt1ce
quelle
5
Führen Sie Codeüberprüfungen durch. Laden Sie Personen ein, Ihren Code zu überprüfen.
Oded
4
Code Review Stack Exchange . Bitte lesen Sie die FAQ der Website sorgfältig durch, bevor Sie Ihre Fragen stellen.
Yannis
2
Wenn nichts anderes funktioniert, lesen Sie den Code, den Sie vor einiger Zeit geschrieben haben. Ihr alter Code sieht so aus, als hätte ihn jemand anderes geschrieben, was Sie objektiv macht.
SuperM
1
Meinst du positiv oder konstruktiv ?
Blrfl

Antworten:

8

Nachdem ich an Orten mit und ohne Code-Reviews gearbeitet habe, ist dies zu einem meiner Probleme bei der Suche nach neuen Arbeitsplätzen geworden. Die Zeit, die Sie sparen, um Notfälle zu vermeiden, da die Probleme erst auftraten, als Sie zum Stoßen kamen, ist viel höher als die Zeit, die Sie für die Codeüberprüfung aufwenden. Und das erwähnt nicht, wie viel weniger stressig es ist, ein Problem bei der Codeüberprüfung zu finden.

Sie könnten jedoch klein anfangen, wenn das Team überzeugen muss. Beginnen Sie dort, da Sie möchten, dass Ihr Code überprüft wird. Bitten Sie einen oder mehrere Ihrer Kollegen, sich etwa eine Stunde lang mit Ihnen zu treffen, und gehen Sie einige Codeteile durch, zu denen Sie Ihrer Meinung nach Feedback wünschen. Wenn das Feedback weitgehend negativ ist, werden Sie nicht defensiv. Machen Sie sich wirklich Notizen und überlegen Sie, die vorgeschlagenen Änderungen vorzunehmen. Aber machen Sie es mit etwas, das Sie noch nicht an prod gesendet haben (oder ehrlich gesagt, Sie werden die Änderungen nicht vornehmen). Sie können es sogar informell an Ihrem Schreibtisch tun. Rufen Sie einfach jemanden an und sagen Sie: "Hey, ich bin mir nicht sicher, ob ich hier die beste Lösung habe. Was denken Sie?"

Eine andere Möglichkeit, die Leute schrittweise dazu zu bringen, den Wert der Codeüberprüfung zu erkennen, besteht darin, einmal pro Woche eine Sitzung abzuhalten, in der jeder einen Code zur Überprüfung vorlegen muss (oder Sie wechseln je nach Person, jedoch nur einen pro Woche die Komplexität der Art von Code, die überprüft werden muss). Bringen Sie zum ersten Mal Donuts oder Bagels mit! Wenn es den Leuten unangenehm ist, jemandem persönlich davon zu erzählen, oder wenn Sie der Meinung sind, dass die Leute zu defensiv sind, lassen Sie sie den Chef per E-Mail kontaktieren und die Kommentare konsolidieren, damit die überprüfte Person nicht weiß, wer was über den Code gesagt hat. Ehrlich gesagt möchte ich lieber persönlich wissen, wer was gesagt hat, da meine eigene Einschätzung der eigenen Codierungsfähigkeiten mir bei der Entscheidung hilft, wie ernst ich die Kritik nehmen soll.

Wenn Sie niemanden finden, der Ihre Arbeit mit Code überprüft, setzen Sie sich zu sich selbst und versuchen Sie, den Code zu erklären und zu erklären, warum Sie das tun, was Sie tun, als ob jemand dort wäre. Ich bin erstaunt, wie oft die Person, die den Code erstellt hat, das Problem gefunden hat, als sie erklärt hat, wofür der Code gedacht ist. Es ist auch hilfreich, sich mit Ihrem Anforderungsdokument als eine Art Checkliste zusammenzusetzen und sicherzustellen, dass Ihnen nichts fehlt.

HLGEM
quelle
Ich muss wahrscheinlich klein anfangen, wie Sie sagten, weil viele wichtige Mitarbeiter, zu denen ich aufschaue, zu beschäftigt mit Terminen / Produktionsproblemen sind. Ihre letzte alternative Lösung, alleine zu sitzen und zu erklären, wie mein eigener Code als das Minimalste erscheint, was ich als nächstes tun kann. Es ist eine gute Idee und ich erinnere mich, dass ich sie einmal als Rubber Duck Debugging gelesen habe. en.wikipedia.org/wiki/Rubber_duck_debugging
burnt1ce
5

Meiner Meinung nach könnten keine ausgefallenen Tools das Sitzen mit einem leitenden Entwickler oder Architekten ersetzen und den Code (oder dessen Code durchgehen und sehen, was sie aus erster Hand getan haben). Ich habe jedoch festgestellt, dass Unit-Test-Code Sie dazu zwingt, wiederverwendbar zu denken. Außerdem müssen Sie Muster einfügen, die Ihren Code besser lesbar machen (mit dem zusätzlichen Vorteil eines besser getesteten Codes).

Abellina
quelle
1
IMHO-Unit-Tests zwingen Sie dazu, auf Unit-testbare Weise zu denken, nicht mehr und nicht weniger. Die Leute sagen oft, dass dies den Code wiederverwendbarer macht, aber meiner Meinung nach ist das eine Art urbane Legende.
Doc Brown
Hier sind meine zwei Cent und meine Argumentation hinter dem Aspekt der Wiederverwendbarkeit: Die meisten Unit-Tests, die ich durchgeführt habe, befassten sich irgendwann mit Scheinobjekten. Dies zwingt Sie dazu, später darüber nachzudenken, wie Sie Ihre Software testen können, hilft Ihnen aber auch dabei, über die Schnittstellen zwischen Ihren Objekten nachzudenken. Diese Schnittstellen wiederum, was ein Scheinobjekt fälschen würde, könnten Sie IMHO auf den Weg zu wiederverwendbarem Code führen (dies ist jedoch eine Art Kunst). Wenn Sie schlanke Schnittstellen klar entwerfen können, können Sie sich leicht lustig machen und wiederum besseren Code daraus ziehen.
Abellina
2

Haben Sie gute Tools für Codeüberprüfungen? Wir hatten ein ähnliches Problem in meiner Gruppe. Ich habe einige Zeit gebraucht , um einen Reviewboard- Server zu installieren , und die Teilnahme an Code-Überprüfungen hat zugenommen . Ich habe festgestellt, dass Leute gerne Code kommentieren, wenn es einfach ist.

Ben
quelle
2

Sie sollten sich wirklich Zeit nehmen, um Codeüberprüfungen durchzuführen, da sich meiner Erfahrung nach die Mühe hinsichtlich der Qualität Ihres Codes lohnt. Wenn die Codeüberprüfung in Ihrem Team keine Option ist und Sie verstehen möchten, wie die Leute denken, ist die Paarprogrammierung möglicherweise eine Option für Sie. Sie erhalten sofort Feedback zu Ihrer Eingabe - so etwas wie eine sofortige Überprüfung.

Benni
quelle