Sollte ich darauf bestehen, dass wir Codeüberprüfungen durchführen, bevor wir wieder zum Trunk zurückkehren?


10

Angeforderte erneute Veröffentlichung von StackOverflow:

Ich arbeite in einer kleinen Entwicklungszeit mit sehr begrenzter Entwicklungszeit. Wir entwickeln ein Werkzeug, das für das Ergebnis unserer Arbeit wichtig ist, aber nicht täglich verwendet wird. Ich bin die einzige Person im Team, die einen Hintergrund als Programmierer hat.

Mein Problem ist, dass ich seit über einem Jahr auf Codeüberprüfungen dränge, bevor ich wieder zu Trunk zusammenfahre. Alle waren sich einig, aber es wurde immer noch nur mein Code überprüft. Nach einem langen Urlaub kehre ich zu einem Kofferraum mit Codekommentaren wie "Dies ist eine hässliche Lösung - so schnell wie möglich entfernen" und "Schnellkorrektur" zurück. Neu ist auch, dass ein Mann mit der Verantwortung für das Werkzeug beauftragt wurde. (Eine Rolle, die mir zuerst angeboten wurde, die ich jedoch aus einem nicht arbeitsbedingten Grund abgelehnt habe.) Und er ist der Meinung, dass dies eine gute Arbeitsweise ist: Da wir nur so wenig Zeit für die Entwicklung haben, sollten wir solche Abstriche machen.

Ich mache mir Sorgen, dass die anderen Entwickler hässlichen Code schreiben: häufig die Kapselung unterbrechen, große Klassen schreiben, interne Klassen an seltsamen Orten hinzufügen, wenige oder keine Komponententests durchführen und so weiter. Es wird schließlich unmöglich sein, das Tool weiterzuentwickeln.

Sollte ich darauf bestehen, dass wir Codeüberprüfungen durchführen, bevor wir wieder zum Trunk zurückkehren, oder bin ich nur eine Hündin in Codequalität?


3
"Da wir so wenig Zeit haben, uns zu entwickeln, sollten wir solche Ecken abschneiden." -> "Sie können mich jetzt oder später bezahlen." Ich habe zweieinhalb Jahre lang nach Code-Reviews und Unit-Tests gesucht und immer die gleiche Antwort erhalten. Jetzt, wo wir mehrere tausend Codezeilen haben, kommt natürlich alles "Eckenschneiden" zurück, um uns zu verfolgen.
MetalMikester

Die Situation wird sich verbessern, wenn der Typ erfahrener wird.
Rwong

Antworten:


2

Ich war schon in ähnlichen Situationen und imho hängt es davon ab, ob ich den Code pflegen muss.

Wenn ich den Code pflegen muss, als ich qualitativ hochwertigen Code möchte, benötige ich persönlich keine Codeüberprüfungen für jedes Commit (dh Programmierer können selbst entscheiden, ob ein bestimmter Code überprüft werden muss oder nicht), sondern wenn die Lesbarkeit / Wartbarkeit darunter leidet es könnte in Ordnung sein.

Beim Lesen:

Ich mache mir Sorgen, dass die anderen Entwickler hässlichen Code schreiben: häufig die Kapselung unterbrechen, große Klassen schreiben, interne Klassen an seltsamen Orten hinzufügen, wenige oder keine Komponententests durchführen und so weiter. Es wird schließlich unmöglich sein, das Tool weiterzuentwickeln.

Ich denke, dass Ihr Problem größer ist als nur Codeüberprüfungen. Sie scheinen einige Richtlinien zu vermissen und / oder sie sind nicht implementiert. Es mag eine schlechte Idee sein, keine oder nur wenige Unit-Tests durchzuführen, dies hängt jedoch vom jeweiligen Fall ab. breaking encapsulation, writing huge classes, ...Machen Sie jedoch wirklich fehleranfälligen Code, damit dieser definitiv behoben werden sollte.


6

Ich denke, dass Codeüberprüfungen und die Einhaltung einiger Codierungsrichtlinien eine gute Idee sind, aber ich denke, dass es Zeitverschwendung ist , dies bei jedem Einchecken zu tun . Es ist eine gute Idee, ein Team aufzubauen und mit jungen Programmierern zusammenzuarbeiten, aber erfahrene Programmierer können für sich selbst denken und irgendwann müssen Sie ihnen vertrauen. Das heißt - Sie können die regelmäßigen Codeüberprüfungen durchführen, um neue Informationen zu erhalten, aber wenn Sie sich jede einzelne Codezeile ansehen, die in Ihr VCS eingeht, übertreiben Sie dies wirklich.

Und ein kleiner Kommentar zu den Korrekturen Ihres Kollegen - manchmal ist eine hässliche Korrektur die richtige Lösung . Es kann sein, dass dieser bestimmte Code nicht wichtig genug ist, um viel Zeit zu investieren. Es kann sein, dass die einfache Lösung gut genug ist und es besser ist, Zeit in andere Dinge zu investieren. Ihren Code "hübsch" zu machen, ist nicht Ihr Hauptziel als Programmierer. Ihr Hauptziel ist es, zu liefern und von jeder Codezeile besessen zu sein, bringt Sie einfach nicht dorthin.

Ich versuche zu sagen, dass Sie Ihre Schlachten auswählen müssen. Es ist in Ordnung, den Kampf um eine unbedeutende Versorgungsklasse zu verlieren, um den Lieferkrieg zu gewinnen (oder diesen WIRKLICH WICHTIGEN Subsystemkrieg).


3

Wenn es sich bei dem fraglichen Programm nicht um einen einmaligen Wegwerfprototyp handelt, sollten Codeüberprüfungen bei jedem Check-in obligatorisch sein.

Ältere Entwickler könnten das Privileg haben, nicht überprüfte Check-ins zu erhalten, sobald bekannt ist, dass sie gewissenhaft genug sind, um gegebenenfalls eine Überprüfung anzufordern.


1

Ich bin mir nicht sicher, ob die Codeüberprüfung die Antwort ist, bis jemand anfängt, bessere Codierungsstandards durchzusetzen. Jemand schreibt beschissenen Code, kommentiert / gibt ihn zu und checkt ihn trotzdem ein. Was nützt eine Überprüfung, wenn jemand den Code ablehnen möchte, Sie aber in Verzug geraten?

Sie müssen: Standards setzen, die Hauptschuldigen genauer überwachen und ihnen in den Kopf schlagen, dass guter Code nicht immer mehr Zeit zum Schreiben benötigt. Sie müssen aufhören, Zeitpläne als Entschuldigung dafür zu verwenden, dass sie sich weigern, schlechte Gewohnheiten zu ändern.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.