Was sollten Sie tun, wenn ein Mitarbeiter Ihren Code bearbeitet?
Ohne den Zweck, Funktionen hinzuzufügen oder Fehler zu beheben, nur um zu ändern, wie es aussieht ...
Was sollten Sie tun, wenn ein Mitarbeiter Ihren Code bearbeitet?
Ohne den Zweck, Funktionen hinzuzufügen oder Fehler zu beheben, nur um zu ändern, wie es aussieht ...
Antworten:
Sprich mit ihnen darüber. Gehen Sie ins Gespräch mit der Einstellung "Sie tun dies nicht, um mich zu ärgern, oder weil sie irgendeine Form von Zwangsstörung haben; sie versuchen, meinen Code besser zu machen."
Weil du dich irren könntest. Das könnte eine subtile Fehlerbehebung sein und du hast es einfach nicht bemerkt.
Oder es könnte sein, dass es einen Kodierungsstandard gibt, von dem Sie nicht wissen, dass er verletzt wird, und der nur korrigiert wird.
Oder es könnte sein, dass sie versuchen, Sie zu ärgern, oder sie haben irgendeine Form von Zwangsstörung. Wenn dies der Fall ist, bitten Sie sie freundlich, aufzuhören, und wenn dies nicht funktioniert, sprechen Sie mit Ihrem Chef.
Aber du wirst es nie erfahren, wenn du nicht fragst.
Ich bin nicht so verheiratet damit, wie mein Code aussieht, um mich zu stören. :) Ich versuche aus den Veränderungen zu lernen. Hat mein Kollege Variablennamen angepasst? Eine effizientere Schleife schreiben? Den Code lesbarer machen?
Wenn ich nicht sehen kann, wie die Änderungen das verbessert haben, was bereits vorhanden war, frage ich normalerweise den Mitarbeiter, der die Änderungen vorgenommen hat, was die Motivation dahinter war. Es ist möglich, dass der Vorteil für mich nicht offensichtlich ist. Und wenn ich Recht habe und sie falsch liegen, kann ich vielleicht erklären, warum ich es so geschrieben habe, wie ich es getan habe.
Wenn alles andere fehlschlägt, kehren Sie zum Check-in zurück. ;)
Bearbeiten: Alle Wetten sind deaktiviert, wenn der Wunsch, kosmetische Änderungen vorzunehmen, einen Fehler verursacht hat.
IMO sollten Sie und Ihr Team sowieso einen Kodierungsstandard verwenden. Wenn dies der Fall ist, werden die Fragen zu "Entsprach Ihr ursprünglicher Code dem Standard?" Wenn 'Ja', sollte Ihr Kollege Ihren Code nur berühren, wenn Sie ihn funktional ändern. Wenn 'nein', hat Ihr Kollege leider das Recht, Ihren Code aufzuräumen. Als Projektleiter mache ich das die ganze Zeit.
Wenn Sie keinen Codierungsstandard verwenden, wird das gesamte Argument, was „guten Code“ ausmacht, viel zu subjektiv. Deshalb sollten Sie einen Kodierungsstandard verwenden :)
Als eine dieser Personen (Personen, die gelegentlich den Code anderer Personen neu formatieren) ist der Hauptgrund, warum ich das tue, die Lesbarkeit. Einige Leute sind nur extrem schlampig mit ihrem Einzug oder mit dem Mischen von Tabulatoren und Leerzeichen.
Die Hauptsache, die ich zu ändern pflege, ist, lange Zeilen zu reduzieren, damit ich das Ganze ohne horizontales Scrollen lesen kann. Ich werde komplexe Anweisungen in separate Anweisungen aufteilen oder Methodenaufrufe / -deklarationen neu formatieren, um einen Parameter pro Zeile aufzulisten, wenn nicht alles bequem in eine einzelne Zeile passt. Ich bearbeite auch Kommentare, entweder um englische Fehler zu beheben oder um die Dinge klarer zu machen.
Ja, ich könnte es in Ruhe lassen, aber ich würde lieber den mentalen Aufwand reduzieren, der zum Lesen des Codes erforderlich ist.
Was solltest du dagegen tun? Bedenken Sie zunächst, dass diese Person möglicherweise Ihren Code verbessert. Außerdem sollten Sie sicherstellen, dass Sie in Ihrem Team einen gewissen Konsens darüber haben, wie Code formatiert werden soll. Wenn jeder Mensch andere Gewohnheiten hat, verlangsamt dies jeden. Wenn sie Ihren Code nicht verbessern und gegen den Strich gehen, müssen Sie sie damit konfrontieren. Wenn das nicht funktioniert, müssen Sie möglicherweise andere einbeziehen.
Fragen Sie sie, warum sie es tun. Eine gültige Erklärung kann Ihre Frustration lindern, aber Sie sollten sie wissen lassen, wie sehr es Sie stört. Wer weiß, vielleicht dachten sie, sie tun dir einen Gefallen und hören auf, wenn sie erfahren, dass es dich beleidigt. Oder Sie haben es mit jemandem zu tun, der wirklich an einer Krankheit leidet.
Darf er / sie? Verbessern die Änderungen den Code? Wenn ja, schlucken Sie Ihren Stolz. Wenn Sie der Meinung sind, dass sich die Codequalität verschlechtert, wenden Sie sich an den Kollegen, und fragen Sie ihn, warum er den Code ohne offensichtlichen Nutzen ändern musste. Wenn es aus Trotz gemacht wird oder weil die Person fälschlicherweise das Gefühl hat, dass sie besser ist als Sie, und Sie es nicht mit ihnen klären können, nehmen Sie es mit Ihrem Chef auf.
IDEs wie Visual Studio verfügen über eine Option Format Document
, die den Code gemäß den vom Benutzer in der IDE festgelegten Regeln formatiert. Es könnte sein, dass Ihr Mitarbeiter dies verwendet (entweder automatisch ohne es zu wissen oder durch absichtliche Anwendung). Vielleicht verwendet ihre IDE Leerzeichen anstelle von Tabulatoren oder umgekehrt, und diese werden automatisch angewendet, ohne es zu wissen? Aber Sie müssen mit ihnen sprechen, um es herauszufinden.
Im Übrigen formatiere ich häufig den Code von Mitarbeitern neu, wenn er offensichtlich keinem Formatierungsschema folgt (dh, es ist alles verkehrt herum). Es ist eine hoffentlich subtile Art, sie auf sich aufmerksam zu machen. (Allerdings würde ich es nicht neu formatieren, wenn es ordentlich wäre, aber nicht nach meinem Geschmack).
Wenn er es so ändert, dass es den Kodierungsstandards Ihres Teams entspricht, sollten Sie die Standards beim nächsten Mal befolgen.
Wenn er es so ändert, dass es nicht mehr den Kodierungsstandards Ihres Teams entspricht, informieren Sie ihn, was er falsch macht, und lassen Sie ihn es zurückändern.
... Ihr Team verfügt über eine Reihe von Code-Formatierungsstandards, die von allen verwendet werden, oder?
Ich ordne gelegentlich Code neu, der von unordentlichen Mitarbeitern geschrieben wurde (oder behebe Tippfehler in Kommentaren). Sie wissen, dass ich von der Formatierung und Reihenfolge des Codes besessen bin, und lassen mich das tun, ohne mich zu sehr zu beschweren. Manchmal geben sie mir auch ein kostenloses Soda oder einen Keks.
Dies ist natürlich eine Gelegenheitsarbeit , da sie die "Schuld" -Funktionalität in SVN aufgehoben hat.
Dies ist auch eine sehr einfache Möglichkeit, eine Art Codeüberprüfung durchzuführen (ich lese normalerweise den größten Teil des Codes, den meine Kollegen in den Modulen geschrieben haben, an denen ich arbeite).
Code-Konventionen sind die Antwort. Sie sollten einen bei der Arbeit haben. Wenn nicht, starten Sie jetzt (ein guter Ausgangspunkt ist der Google Style Guide ). Wenn es geschriebene (oder zumindest allgemein bekannte) Regeln gibt, ist die Antwort auf Ihre Frage trivial.
Ich denke, Sie denken, dass es beleidigend ist, dies zu tun ...? Zum Beispiel würde ich diesen Code sofort selbst korrigieren
int myFunction( ) {
int i ;
return 0;
}
werden
int myFunction() {
int i;
return 0;
}
also ... soll ich wegen meiner aktion bestraft werden? Im wirklichen Leben habe ich tatsächlich Tonnen von SVN-Protokollen gelesen "Formatierung". ;-)
Beginnen Sie mit der Verwendung von StyleCop oder ähnlichem, und erzwingen Sie Regeln für Codestile. Machen Sie es außerdem zu einer Verpflichtung für alle Entwickler, diese Regeln zu verwenden. Der gesamte Code sieht ausnahmslos gleich aus. Treffen Sie sich mit wiseheads , um die am besten geeigneten Regeln für Ihr Unternehmen zu besprechen. Auch wenn Standardregeln dem .net-Framework-Code selbst bereits sehr ähnlich sind.
Es ist der einfachste Weg, es zu tun. Ich stellte fest, dass ich bei einem meiner früheren Arbeitgeber den Code eines anderen Mitarbeiters korrigierte, weil dieser andere Mitarbeiter Code mit übermäßig vielen Leerzeilen und keinerlei Einrückungsregeln schrieb. Code war für einen durchschnittlichen Entwickler eigentlich nicht lesbar. Wenn StyleCop damals existieren würde, würde es viele von uns wirklich glücklich machen.
Dies ist ein Gedanke, den ich im Internet gesehen habe und der sich mit Refactoring befasst und vielleicht erklärt, warum jemand Ihren Code berühren würde, um ihn zu verbessern:
Warum?
Es gibt zwei Hauptgründe für die Umgestaltung:
Um den Code / das Design zu verbessern, bevor Sie darauf aufbauen: Es ist wirklich schwierig, beim ersten Versuch einen guten Code zu finden. Der erste Versuch, ein erstes Design zu implementieren, wird uns zeigen, dass wir eine Logik falsch interpretiert oder vergessen haben.
Anpassung an veränderte Anforderungen. Änderung geschieht in der Softwareentwicklung; auf Veränderungen zu reagieren ist besser, eine gute Codebasis zu haben. Wir haben zwei Möglichkeiten für beide Szenarien, den Code zu pfaden oder ihn umzugestalten. Das Patchen des Codes führt uns zu nicht zu wartendem Code und erhöht unsere technische Verschuldung. Es ist immer besser, eine Umgestaltung vorzunehmen.
Wann?
Je früher desto besser, desto einfacher.
schneller und weniger riskant, einen kürzlich überarbeiteten Code umzugestalten, anstatt darauf zu warten, dass der Code fast vollständig ist.
Was?
Der gesamte Code und das gesamte Design sind Kandidaten für das Refactoring.
Eine Ausnahme für das Nicht-Umgestalten von etwas könnte ein funktionierender Code sein, der von geringer Qualität ist. Aufgrund der kurzen Frist ziehen wir es jedoch vor, unsere technische Verschuldung beizubehalten, anstatt die Planung zu riskieren.
Sie müssen ihn nur sein Bestes geben lassen, wenn es für beide großartig wäre und Sie in Zukunft Zeit sparen!
Prost