Ist es in Ordnung, einen anderen Entwicklercode neu zu formatieren, während ein Modul geändert oder hinzugefügt wird?


13

Während der Entwicklung in einer Gruppenatmosphäre und Hinzufügen oder Ändern von Funktionen in einer Codebasis. Wird es als anstößig oder unhöflich empfunden, den Code früherer Entwickler neu zu formatieren, um ihn auf den aktuellen Kodierungsstandard zu bringen? Ich verstehe, dass sich die Standards geändert haben und sich wahrscheinlich auch weiterhin ändern werden, aber würde sich jemand von Ihnen darüber ärgern, wenn jemand Ihre Code-Formatierung ändern würde?

Um es klar auszudrücken, ich spreche nicht davon, irgendeine Logik zu ändern, nur mit Tabulatoren und Leerzeichen herumzuspielen und so weiter.

BEARBEITEN: Ich mache das nicht nur, um Codierungsstandards zu verwenden, sondern um deren Code zu lesen und auf den neuesten Stand zu bringen, damit ich die implementierte Logik vollständig verstehen kann, bevor ich anfange, kritische Anwendungen zu ändern.


6
Aktivieren Sie das automatische "Formatieren beim Speichern" für alle. Jeder verwendet die gleichen vereinbarten Einstellungen. Nach einer Weile ist der gesamte Code normalisiert.

1
Es kann einen Punkt geben, an dem dies zu weit geht. Ich hatte einen Kollegen, der alles neu formatierte und Zeilenumbrüche hinzufügte, die für mich nicht nötig oder sogar relevant waren. Persönlich, es sei denn, es ist unlesbar oder der Code wurde zu meiner Hauptverantwortung. Ich lasse die Formatierung in Ruhe, sofern ich keine anderen Änderungen vornehme.
SoylentGray

1
Wenn Sie in c # codieren, bleiben Sie bei StyleCop. Wenn in anderen Sprachen, dann versuchen Sie, ein gutes, unvoreingenommenes Werkzeug zu wählen.
Job

5
Ist das "Ich ändere die Formatierung ... weil ich denke es sollte anders aussehen" ... oder ist das "Ich
ändere

1
@Thorbjorn Ich würde keinen Zweig in Betracht ziehen, der die Formatierung in jeder Datei behebt, 1 Datei pro Festschreibung, und den Verlauf beendet. Es ist jedoch nur schlecht, das Problem während des gleichen Commits zu beheben. (Ich schätze, sie könnten so etwas verwenden git add, um Teile selektiv festzulegen, aber ich schätze, dass die meisten Leute das Äquivalent von svn commitoder verwenden git commit -a)
Alternative

Antworten:


19

Ich denke, das ist in Ordnung, solange die Standards vereinbart sind. Ein Hinweis zur Vorsicht jedoch; Beachten Sie, ob das Potenzial besteht, dass die Datei gleichzeitig von anderen geändert wird. Wenn Sie die Zusammenführung erschweren, nur weil Sie die Formatierung geändert haben, werden Sie nicht sehr beliebt sein.


10
Der erste Satz hier ist wichtig. Stellen Sie sicher, dass Sie die vereinbarten Standards tatsächlich einhalten und nicht nur Änderungen vornehmen, weil Sie sie mögen.
Thomas Owens

5

Ja, der Code sollte zum Projekt gehören. Wenn Sie den Code auf den neuesten Stand bringen, können Sie das technische Defizit des Projekts verringern. Wenn Sie es ändern, sind Sie derzeit dafür verantwortlich. Bei älterem Code ist der ursprüngliche Entwickler möglicherweise nicht mehr am Projekt beteiligt oder hat neue Aufgaben.

Wenn Sie diese Art von Änderung vornehmen, sollten Sie die Überprüfungstests nach der Neuformatierung ausführen. Wenn sie erfolgreich sind, checken Sie den Code ein, bevor Sie Ihre Funktionsänderungen vornehmen.

EDIT: Im Zusammenhang mit dieser Frage ist eine Neuformatierung auf Standard angemessen. In Ermangelung von Standards würde ich empfehlen, sich für Standards einzusetzen und nicht neu zu formatieren, bis es Standards für das Format gibt. Eine Neuformatierung nach persönlichem Geschmack / Standard sollte nicht mit Code erfolgen, der zum Projekt gehört.


2
+1 für "Code einchecken, bevor Änderungen vorgenommen werden"
bdoughan

1
Geben Sie erneut +1 für "Änderungen an der Formatierung einchecken, bevor Sie Änderungen an den Funktionen vornehmen" und "Es empfiehlt sich, die Überprüfungstests nach der Neuformatierung auszuführen". Idealerweise sollten wir vor jedem Einchecken Überprüfungstests durchführen.
leed25d

Eigentlich spielt es keine Rolle, ob Sie vor oder nach den Änderungen neu formatieren. Was zählt, ist, dass ästhetische Patches von funktionalen Patches getrennt gehalten werden sollten -> wenn ein ästhetischer Patch die Funktionalität verändert hat, war er nicht beabsichtigt und kann als Fehler angesehen werden; Dadurch können funktionale Patches leichter überprüft werden (weil sie kleiner sind).
Matthieu M.

@Matthiew M: Richtig, aber in den meisten Fällen werden sie zuerst durchgeführt, um die Wartbarkeit vor der Wartung zu verbessern. Nur wenige Entwickler haben Zeit, dies nachträglich zu tun. Wenn der Code aktualisiert werden muss, um automatisierte Check-in-Tests zu bestehen, muss er zuerst neu formatiert werden, um die Trennung von ästhetischen und funktionalen Patches zu gewährleisten.
BillThor

3

Ich glaube, es ist immer eine gute Praxis, den Code umzugestalten, wenn Sie eine bestimmte Datei ändern / hinzufügen. Dazu gehört das Aktualisieren des Codestils, um die richtigen Namenskonventionen für Variablen / Methoden und Codierungsstile widerzuspiegeln.


Das OP fragte nach Neuformatierung, nicht nach Refactoring.
quant_dev

Ich kenne; Ich habe gesagt, ich halte das auch für eine Neuformatierung :)
Wayne Molina

2

Ich mache das die ganze Zeit. Alter Code sollte den gleichen Standards wie neuer Code entsprechen, und wenn Sie ihn nicht reparieren, während Sie daran arbeiten, wird dies niemand tun. Ich denke, das gilt nach der Pfadfinder-Regel.


2

Ich denke, dies ist eine gute Praxis und ein notwendiger Bestandteil der Codewartung.

Ich würde empfehlen, die Formatierungsänderungen in einem Commit für das Versionskontrollsystem und die funktionalen Änderungen in einem separaten Commit zu überprüfen, damit Sie und andere verstehen, was stattgefunden hat.


1
+1 für separate Commits. Der Versuch herauszufinden, welche Codeänderungen in einem Commit vorgenommen wurden, als der Code gleichzeitig neu formatiert wurde, ist ein PITA. Ihre Diff-Tools sind nutzlos, wenn sich jede Zeile in der Datei geändert hat.
Dave Kirby

2

Ich hätte kein Problem damit und würde es wahrscheinlich zu schätzen wissen ... solange die Veränderungen nicht "religiös" sind. Bitte gehen Sie nicht alle meine Klassen durch und verschieben Sie die geschweiften Klammern in die erste Zeile der Methode. Wenn es sich bei der Formatierung um eine legitime Sache vom Typ "Unterschiedliche Striche für unterschiedliche Personen" handelt, ist es etwas ärgerlich, wenn jemand den Code, den Sie am häufigsten bearbeiten, formatiert. Wenn Sie jedoch der Haupteditor dieses bestimmten Moduls werden, nehmen Sie die Formatierungsänderungen vor, die Sie für angebracht halten.


1

Ja. Bitte "reparieren" Sie den Code, wie Sie es für richtig halten. Genau wie die Pragmatischen Programmierer in ihrem Buch The Pragmatic Programmer sagen , keine zerbrochenen Fenster. Wenn der Code nicht den Anforderungen entspricht, halte ich ihn für ein zerbrochenes Fenster.


1

Es gibt verschiedene Repositorys, die beim Einchecken automatisch eine Neuformatierung durchführen, sowie kleine Dinge wie das Ändern der CR / LF-Paarung, je nachdem, auf welcher Plattform die Quelle abgerufen wird.

Es ist ein großer Nachteil, eigene Re-Formatierungen vorzunehmen, da Ihre Check-in-Deltas durch Tonnen von Re-Formatierungen verschleiert werden und es schwieriger wird, die fehlerhaften Codeblöcke zu finden, wenn es ein Regressionsproblem gibt.

Sie könnten Ihrem Lead vorschlagen, dass die Codebasis, da sie alt ist, aus der Kälte importiert und auf die aktuellen Standards umformatiert werden sollte, was überall zu einer glänzenden neuen Zukunft für Code führt.


1

Da es sich um ein rein "Formatierungs" -Problem handelt (das heißt, wir beheben keine Fehler, sondern lassen es nach Ihrem eigenen Standard aussehen), hängt es meiner Meinung nach davon ab, ob die ursprüngliche Person den Code noch verwaltet oder nicht.

Wenn der Urheber noch an dem Projekt arbeitet, ist es unhöflich. Was für Sie "richtig" aussieht, ist für sie nicht das, was "richtig" aussieht, und das Ändern des Codes zum Zwecke der Formatierung ist nicht höflich. Es kann auch viel Zeit verschwenden.

Ich habe einmal mit einem SEHR besitzergreifenden Entwickler an einem Projekt gearbeitet. Im Laufe der Jahre habe ich eine sehr methodische Methode zur Formatierung meines Codes entwickelt, die meiner Meinung nach einfach zu lesen, weniger anfällig für implizite Fehler und selbstdokumentierend ist. Dagegen bevorzugte dieser Typ die Verwendung aller impliziten Funktionen mit langen Zeilen, die 300 Zeichen breit waren, sodass ein 30-Zoll-Monitor zum Lesen erforderlich war, da er der Ansicht war, dass die Zeilenzahl wichtiger war als die Lesbarkeit. Er verbrachte einen halben Tag Ich habe meinen Code durchgeblasen, indem ich ihn auf seinen "bevorzugten Standard" geändert habe ... während ich mich noch parallel weiterentwickelte! Am nächsten Morgen stellte ich fest, dass zwei Tage Arbeit für sein Durcheinander formatiert waren. Es war unhöflich und Zeitverschwendung.

Nun, wenn der Entwickler weg ist und Sie einen "besseren Stil" haben, dann machen Sie es.


0

Formatieren Sie den Code immer automatisch , wenn Ihre IDE dies kann.

  • Verhindert, dass manuelle Formatierungsänderungen auf lange Sicht den Versionsverlauf überfrachten
  • Formatierungsprofil muss zwischen allen Entwicklern vereinbart werden (Standard auswählen? -)
  • Machen Sie es sich zur Gewohnheit, Code zu formatieren und Importe zu organisieren, wenn Sie eine Datei speichern

Beispielsweise können Sie in Eclipse zuerst den Formatierer ausführen und Importe für die gesamte Codebasis organisieren. Denken Sie dann daran, vor dem Speichern die Tastenkombination Strg + Alt + F zu drücken.

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.