Was tun, wenn ein Mitarbeiter Ihren Code bearbeitet, um das Erscheinungsbild zu ändern?


16

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 ...


9
Ich nehme an, Sie haben ein Problem damit. Wenn ja warum? Ist es der Code machen schlimmer ?
Zaz

3
@Josh: Ja, in der Tat macht es den Code noch schlimmer, weil es schwieriger ist, ihn von einem anderen Programmierer als dem zu warten, der ihn geschrieben hat.
Robert Koritnik

4
geben Sie ihm mehr Arbeit zu tun
Oscar Cabrero

4
@ Robert - Ich denke, Sie vermissen @ Josh Punkt. Das Ändern des Erscheinungsbilds von Code kann die Wartung objektiv vereinfachen , insbesondere, wenn er anfangs schlecht formatiert war.
Stephen C

4
Ist es wirklich dein Code oder gehört er zum Team?
Eric King

Antworten:


28

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.


17
Es ist erwähnenswert, dass viele IDEs über automatische Formatierungsfunktionen verfügen. Ich benutze sie die ganze Zeit, ohne darüber nachzudenken. Einige formatieren sogar alle Dateien in Ihrem Projekt oder alle Dateien, die Sie geöffnet haben, je nach Konfiguration. Es kann leicht sein, versehentlich automatisch zu formatieren.
Matt Olenik

@Matt: Hervorragender Punkt.
BlairHippo

1
"Sie tun das nicht ... weil sie irgendeine Form von Zwangsstörung haben;" Hauptsächlich von mir selbst gesprochen, ist das nicht immer der Fall! Wenn es um Code geht, bin ich zwei Dinge: ein Perfektionist und ein ordentlicher Freak. Trotzdem bemühe ich mich generell, diese Mentalität nicht auf die Arbeit meiner Kollegen anzuwenden.
Nathan Taylor

5
Oh, ich sage nicht, dass Toms Kollege kein ordentlicher OCD-Freak mit einem schlechten Gefühl für Grenzen ist. Ich sage nur, dass in ein Gespräch mit einer Denkweise von "Was zur Hölle ist FALSCH mit dir ?!" ist kein guter Weg, um ein produktives Gespräch zu führen. :-)
BlairHippo

1
@Chris kein Grund zur Sorge, ich immer Strg + K + D!
Nathan Taylor

16

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.


9

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 :)


8

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.


Das ist Ihre Lesbarkeit. Ich finde, dass nicht eingerückter SQL-Code viel einfacher zu lesen ist, weil ich schnellen und eingerückten Code lese, der mich verlangsamt und es mir schwerer macht, mich zu konzentrieren.
HLGEM

6

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.


"Oder sie haben Zwangsstörungen und benötigen möglicherweise Medikamente." - am besten nicht zu erwähnen, dass Teil, wenn Sie freundlich bleiben möchten
Zaz

Ich werde einen Änderungsantrag stellen.
JeffO

5

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.


5

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).


1
"(Allerdings würde ich es nicht neu formatieren, wenn es ordentlich wäre, aber nicht nach meinem Geschmack)" - sehr wichtige Regel, +1
Zaz

Unsere Entwicklungsrichtlinien tendieren dazu, den Codestil eher in die "empfohlene" Ecke zu stellen. Ich formatiere den Code automatisch entsprechend den Empfehlungen auf Dateiebene, wenn ich Probleme beim Lesen habe.
Joeri Sebrechts,

3

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?


2

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).


2

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.


1

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". ;-)


0

Verwenden Sie ein Werkzeug zur Stilüberprüfung

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.


Ich muss das runterstimmen. StyleCop ist eine schreckliche Umsetzung einer anständigen Idee. 1) Läuft nach dem Build, was es zu einem großen Zeitkiller bei großen Projekten macht. 2) Die Standardregeln widersprechen in einigen Fällen sogar den VS-Standardregeln. 3) Einige der Regeln sind rein irrelevant. Es beschwert sich über "//" ohne nachfolgendes Leerzeichen und fordert Sie dann auf, "////" nach einem Build erneut zu verwenden. Das ist das Schlimmste. Es wäre nicht schlecht, aber der After-Build-Teil bringt Sie bei einem großen Projekt mit langer Bauzeit um den Verstand.
MIA

Ich würde Ihnen in vielen Punkten widersprechen, auf die Sie hingewiesen haben. Sie können die Funktionsweise der Stilprüfung konfigurieren. Ich habe sogar einige meiner eigenen Regeln implementiert, die die von mir gewünschte Formatierung bereitstellen. In Bezug auf die Geschwindigkeit kann ich nicht sagen, dass es großartig ist. aber auf einer anständigen Maschine sollte es gut funktionieren. Denken Sie nur an die Geschwindigkeit des C ++ - Kopierers zu Beginn der 90er Jahre, in der Sie in der Zwischenzeit tatsächlich eine Tasse Tee zubereiten konnten. Während dein Build fehlgeschlagen ist !!!!!! ;)
Robert Koritnik

Ich habe gerade angefangen, StyleCop zu verwenden, um zu sehen, wie es funktioniert, und obwohl es manchmal etwas nervig ist, hilft es auch dabei, viele Fehler zu finden, die sonst unbemerkt bleiben würden. Sie müssen es nicht als Teil des Builds ausführen und können es einfach auf Ihrem lokalen Computer ausführen, auch nur für einzelne Dateien. Sie können es also verwenden, ohne Ihre Mitentwickler zu ärgern. Wenn Ihnen die Regeln nicht gefallen, können Sie sie einfach deaktivieren, sodass kein wirklicher Schaden entsteht.
Anne Schuessler

+1 Hier geht es nicht explizit um StyleCop .. (StyleCop oder ähnliches ). Und das ist eine sehr gute Idee. Definieren Sie eine Reihe von Regeln, konfigurieren Sie das Tool Ihrer Wahl und machen Sie es für immer.
Bruno Schäpper

In diesen Tagen gibt es Grunt, Gulp usw., die diesen Schritt genauso ausführen können wie StyleCop es in der Vergangenheit getan hat.
Robert Koritnik

0

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:

  1. 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.

  2. 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?

  1. Je früher desto besser, desto einfacher.

  2. schneller und weniger riskant, einen kürzlich überarbeiteten Code umzugestalten, anstatt darauf zu warten, dass der Code fast vollständig ist.

Was?

  1. Der gesamte Code und das gesamte Design sind Kandidaten für das Refactoring.

  2. 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

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.