Ist es eine gute Idee, den Code in Eclipse im Auto-Format zu formatieren?


20

Ich benutze Eclipse für die Codierung, und die Sprache, die wir verwenden, ist Java. Einmal wurde von jemandem vorgeschlagen, den Code mit dem Auto-Formatierer (STRG + UMSCHALT + F) richtig zu formatieren. Dieser Befehl formatiert zwar den Code, aber manchmal habe ich das Gefühl, dass das gesamte Erscheinungsbild merkwürdig und nicht sehr lesbar ist.

Ist dies also eine empfohlene Vorgehensweise? Wenn nicht, was ist besser, um unseren Code in Eclipse zu formatieren?


Ich nutze die automatische Formatierungskapazität von Emacs die ganze Zeit - es besteht die Möglichkeit von Kollisionen (z. B. beim Zusammenführen von SCs). Insgesamt ist es jedoch äußerst hilfreich, Ihr Format zu standardisieren
warren

Antworten:


34

Strenge Regeln für die Codeformatierung sind hilfreich, wenn mehrere Entwickler mit einem Versionskontrollsystem an demselben Code arbeiten. Das Zusammenführen kann schmerzhaft sein, wenn verschiedene Entwickler unterschiedliche Formatierungsregeln haben, da derselbe Code für das Zusammenführungswerkzeug unterschiedlich aussehen würde.

Eclipse (oder eine gute IDE für diesen Fall) verfügt über Code-Formatierungsregeln, die im Abschnitt Einstellungen angepasst werden können (Java> Codestil> Formatierer). Wählen Sie, was Ihnen am besten gefällt, und beachten Sie auch die Java-Standardcode-Konventionen . Viele Open Source-Projekte haben auch eigene Code-Konventionen, die mit dem Eclipse-Formatierer erzwungen werden können.

Darüber hinaus gibt es Standardtools wie CodeStyle, PMD und Findbugs, die zusätzliche Regeln durchsetzen und dabei helfen, häufige (einfache) Anti-Patterns und Fehler zu vermeiden.


4
Sobald Sie Ihren Formatierer so eingerichtet haben, wie Sie es möchten. Es gibt eine Schaltfläche "Exportieren", mit der Sie es in einer XML-Datei speichern können. Wir legen dies in unserem SVN-Repository ab, sodass jeder Zugriff darauf hat, wenn er das Projekt auscheckt.
Chris

Ich bin damit einverstanden und benutze PMD und FindBugs und alles. Dies ist jedoch nur dann eine gute Idee, wenn jeder im Team die Regeln für die Code-Formatierung befolgt und anwendet. Andernfalls kommt es zu Commits, die von einigen Entwicklern und nicht von anderen geändert und formatiert werden, und es ist schwierig, die "echten" Änderungen zu erkennen. Mit anderen Worten, wenn der alte Code nicht bereits mit dem Auto-Formatierer formatiert ist, formatieren Sie ihn nicht mit zusätzlichen Änderungen in einem Commit.
Mufasa

2
Wenn Sie die Code-Formatierungseinstellungen anpassen, übertragen Sie diese Einstellungen entweder in die Quellcodeverwaltung, damit alle Entwickler sie erhalten, oder veröffentlichen Sie sie in einem Wiki oder in einer Entwicklerdokumentation, damit sich alle auf den Stil einigen können.
Mufasa

24

Ich fand den Autoformatierer sehr nützlich. Anstatt ständig Entscheidungen darüber zu treffen, wie der Code formatiert werden soll - was fehleranfällig ist und "kognitive Reibung" verursacht - können Sie Formatierungsregeln einrichten und den Code von Eclipse formatieren lassen (im Idealfall automatisch mit "Aktionen speichern"). ). Dies setzt natürlich voraus, dass Sie über eine Codebasis mit konsistenter Formatierung verfügen oder das Mandat haben, den Code gemäß den von Ihnen festgelegten Regeln neu zu formatieren.

Die Aktivierung von "Autoformat-on-Save" entspricht in etwa einer inkrementellen Kompilierung. Dadurch kann sich Ihr Gehirn auf den Code selbst konzentrieren, anstatt sich mit trivialen Problemen wie der Codeformatierung oder der Syntax zu befassen.

Aber ja, manchmal bringt der Autoformatierer eine schön formatierte Tabelle durcheinander. In solchen Fällen verwende ich "Ein / Aus-Tags". Diese werden im Code-Formatierungsprofil auf der Registerkarte "Ein / Aus-Tags" konfiguriert. Mit ihnen können Sie Regionen in Ihrem Code von der automatischen Formatierung ausschließen:

// @formatter:off

... my nicely formatted table here ...

// @formatter:on

5
+1: Ich habe nie von den Ein / Aus-Tags gewusst (oder genauer gesagt, ich habe mich nie darum gekümmert, sie herauszufinden).
Paul Cager

1
Autoformat-on-Save ist gut, wenn jeder im Projekt es verwendet. Wenn dies nur von einigen Entwicklern verwendet wird, ist es zu einfach, Änderungen mit gleichzeitigen Codeformatierungsänderungen festzuschreiben, was es schwierig macht, die "echten" Änderungen in einem Festschreiben zu finden.
Mufasa

@ Mufasa Ja, du hast recht.
JesperE

1
Wenn du keinen Formatkommentar willst, kannst du schreiben / * - mein super Format * / Eclipse formatiert keinen solchen Kommentar :)
Dawid Drozd

5

Ob es empfohlen wird oder nicht, hängt davon ab, wen Sie fragen.

Ich kann mir vorstellen, dass Sie es vorziehen würden, Code selbst zu formatieren, schließlich wissen Sie, was für Sie am besten und am einfachsten zu lesen ist. Auf der positiven Seite, wenn Sie eine rücksichtsvolle Person sind, können Sie es auch für andere Menschen lesbarer machen.

Maschinen haben nicht diese Art von Voraussicht und können (wie Sie sagten) Ihren Code wie ein Chaos aussehen lassen, selbst wenn sie ihn nach strengen Regeln formatieren.

Eine gute IDE oder ein gutes Tool kann häufig eine halbwegs anständige Aufgabe bei der Formatierung des Codes für Sie erledigen, macht ihn jedoch nicht immer so lesbar, wie Sie könnten.

Also, mein Rat: Verwenden Sie es nur, wenn Sie Code von jemand anderem erhalten, und es ist so ein Durcheinander, dass Sie es sonst nicht lesen können.


5

Sie sollten es die ganze Zeit verwenden, um sicherzustellen, dass Sie in all Ihren Quelldateien ein einheitliches Styling verwenden. Dies spart Ihnen auch viel Zeit, die Sie normalerweise für die manuelle Anpassung der Formatierung aufwenden würden.

Der Java-Formatierer in Eclipse leistet gute Arbeit und ist vollständig anpassbar. Wenn Sie mit den Standardeinstellungen (die ich vollständig verstehen kann) nicht einverstanden sind, sollten Sie den Formatierer an Ihre persönlichen Stilvorlieben anpassen oder was auch immer der Standard ist, den Sie verwenden. Sie können dies in den Einstellungen unter Java / Code Style / Formatter tun.

Formatierer sind noch nützlicher, wenn Sie nicht alleine arbeiten. Es ist sehr wahrscheinlich, dass Sie und Ihre Teammitglieder sich nicht einig sind, was Ihrer Meinung nach der perfekte Code Style ™ ist. In diesem Fall sollten Sie einer gemeinsamen Basis zustimmen und ein für allemal Formatierungsregeln für dieses spezielle Code-Styling definieren. Dann kann jeder einfach die Formatverknüpfung drücken und alles passt zum vereinbarten Styling. Auf diese Weise wird Ihre persönliche Präferenz (beim Schreiben) nicht im Wege stehen. Beachten Sie, dass das Formatierungsformat in den Projektdateien von Eclipse gespeichert werden kann, sodass auch unterschiedliche Formatierungen für jedes Projekt möglich sind.


0

Obwohl ich es mag, wenn der Code beim Speichern automatisch formatiert wird (tatsächlich habe ich ihn für meine persönlichen Projekte aktiviert). Ich habe festgestellt, dass ich diese Vorgehensweise in Projektteams, die Eclipse-basierte Produkte verwenden, nicht vollständig empfehlen kann, da der Eclipse-Formatierer einige kritische Fehler aufweist, die mich davon abhalten, sie zu empfehlen.

Speziell wenn Sie "Code Cleanup" + "Formatierer" aktiviert haben, werden die Einrückungen bei jedem Speichern behoben / aufgehoben.

Jede neue Version von Eclipse kann das Formatierungsprogramm (zum Besseren) ändern, würde jedoch erhebliche Änderungen wie JavaDocs einführen, die den zusätzlichen Speicherplatz nach dem endgültigen Entfernen des Speicherplatzes entfernen, der *jedoch erst nach der Einführung von Helios und vielen Unternehmen mit der älteren Rational Software-Version von Eclipse eingeführt wurde das nutzt Helios als Basis.

Der von Eclipse bereitgestellte Code-Formatierer ist nicht per API erweiterbar, da er CodeFormatter javadoc explizit angibt

Diese Klasse ist nicht dafür vorgesehen, von Clients in Unterklassen unterteilt zu werden.

Zugegeben, ich habe noch keine praktikable nichtkommerzielle Alternative gefunden. Jalopy wurde seit Jahren nicht mehr aktualisiert und die Gabeln in Github sind noch nicht so organisiert, dass ich sie nur empfehlen kann. Es gibt auch keine Update-Site für die Integration von Eclipse. Eigentlich hatte ich vor, die Code-Formatierung als Teil des Builds vorzunehmen, ähnlich wie ich es mit dem Cleanpom-Maven-Plugin mit Jalopy gemacht habe, aber diese Idee blieb auf der Strecke, da es für Jalopy keine Updates gab.

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.