2009-09-01 10 views
18

Suns "Code Conventions for the Java Programming Language" wurde zuletzt im April 1999 aktualisiert. Zehn Jahre später hat sich viel in der Sprache sowie in den allgemeinen Nutzungsmustern geändert. Gibt es aktuellere, weit verbreitete Standards?Gibt es weit verbreitete, moderne Java-Kodierungskonventionen?

In den meisten Richtlinien wird die Angabe der Dateicodierung und der Zeilenenden nicht angegeben. Sun empfiehlt gemischte Tabstopps und Leerzeichen. Die Eclipse-IDE verwendet standardmäßig den Eclipse-Standard, bei dem es sich nur um Registerkarten handelt. Die Maven style guide ist nur Leerzeichen. Viele Style-Guides wie JBoss folgen den Sun-Richtlinien, bevorzugen aber K & R-Klammern anstelle von OTBS. Jedes Apache-Projekt hat seinen eigenen Style Guide, mit kleinen Unterschieden zwischen den einzelnen.

+0

ich Joels nimmt gerne Konventionen über Codierung und was sie für gemeint sind, aber allzu oft sie am Ende als Religion ohne kritische Gedanken über die Gründe: http: //www.joelonsoftware.com/articles/Wrong.html – SteveD

+0

Tabs: Wenn Sie einen * kompetenten * Editor verwenden, kann und wird einfach Tabs in was auch immer Augen-erfreuliche # von Räumen, die Sie wünschen, konvertieren. Verwenden Sie Leerzeichen zur Feinabstimmung der Ausrichtung des Codes. – Populus

+0

Ich habe eine Liste der besten Java-Kodierungspraktiken und Konventionen erstellt, die ich regelmäßig in meiner täglichen Entwicklung verwende. Die Codierungskonventionen bestehen normalerweise aus 5 Themen: Namenskonventionen, Verpackung, Dokumentation und Protokollierung, Codeformatierung PLUS die Codierungstechniken. Schauen Sie sich den Artikel unter http://programmergate.com/coding-conventions/ –

Antwort

3

Die Frage stellt sich nicht nach Ihrem Codierungsstil, sondern nach vorhandenen Codierungsstandards.

Ich fand die European Space Agency Java Coding Standards (pdf) (alt link), die auf dem neuesten Stand und umfassende scheint auf, obwohl ich nicht sicher bin, wie weit verbreitet die Annahme ist.

+0

"Regel 1: Verwenden Sie das Apache Ant-Tool, um Ihr Projekt automatisch zu erstellen." Ich denke, das bedeutet, dass es jetzt ziemlich viele Open-Source-Projekte gibt. ;-) –

+0

Ja, aber das ist besser als Suns Empfehlung von 'GNUmakefile - Der bevorzugte Name für Makefiles'. Was die Standards angeht, ist es ein Problem, ein Projekt zu übernehmen, bei dem der letzte Entwickler Groovy/Ruby/Maven usw. verwendet hat, um ihr Projekt zu erstellen. Sie können Ihr Projekt mit awk kompilieren, so lange es mir egal ist, solange Sie eine Ant-Datei bereitstellen oder exportieren. – brianegge

15

Vier Räume - das ist es, was Gott benutzt.

+0

Es ist, was Sun verwendet (zumindest für das JDK). –

+1

Komisch, das ist was ich auch benutze;). Ernsthaft, aber mach dir keine Sorgen über Dateikodierungen und Zeilenenden - ich habe nie gehört, dass das in einer Diskussion über Kodierungsstandards auftaucht. – Corehpf

+5

Das sind zwei Leerzeichen zu viel. – Apocalisp

6

Obwohl es vom aussehen, nicht viel wurde in den Kern Sprache selbst hinzugefügt (die Bibliotheken obwohl viele viele Ergänzungen gehabt haben)

Diejenigen ich jetzt erinnern kann, sind enum und Generika, der Rest war bereits da, als das Dokument zum ersten Mal geschrieben wurde.

  • Verwenden Sie immer 4 Leerzeichen.

  • Verwenden K & R oder Allman nicht: Während es durchaus akzeptabel für C, C++ und C# ist es nicht immer der Fall für Java (es sei denn, das Projekt ausdrücklich entschieden hat, es zu benutzen). Die Verwendung von K & R oder Allman in Java ist visuell unangenehm, da es in C nicht verwendet werden würde. Verwenden Sie immer geschweifte Klammern, einschließlich einzelner Zeilenanweisungen.

Im Allgemeinen versuchen Sie nicht, Stile zwischen Programmiersprachen zu mischen. Es ist wie die Akzentaussprache in einer natürlichen Sprache, man kann verstanden werden, man kann darin lesen und schreiben und hat ein praktikables Niveau in der Sprache, aber eine mangelhafte Aussprache wird die Muttersprachler nur nerven.

+0

Ich habe mich sehr verändert. Sowohl hinsichtlich der Funktionen als auch der Art und Weise, wie Menschen die Sprache verwenden. Evolution ist, warum wir HashMap nicht Hashmap haben. Die Sprache hat jetzt Anmerkungen, statische Importe, Autoboxing, foreach, etc .. Ich finde es sogar schwer, Java 1.0-1.2 Code zu lesen. Unicode ist üblich genug, dass Sie jetzt Programme mit Unicode-Zeichen in Kommentaren und Strings finden. Elemente wie "GNUmakefile - Der bevorzugte Name für Makefiles." Könnten wahrscheinlich aus dem Sun-Codierungsstandard entfernt werden. – brianegge

+0

Was? Die offiziellen C# -Konventionen sagen, K & R nicht zu verwenden. Im Vergleich dazu erlauben es die offiziellen Java-Konventionen. –

+0

@brianegge Sie haben Recht, ist Allman Stil keine K & R – OscarRyz

7

Der einzige Kodierungsstandard, dem Sie wirklich folgen müssen, ist der von Ihrem Projektteam akzeptierte. Sie können Tabulatoren anstelle von Leerzeichen nicht zustimmen, aber wenn dies die Kodierungskonvention Ihres Teams ist, werden Sie es am besten befolgen.

+0

In dem Versuch, ein Team zum Konsens zu bringen, ist es oft recht nützlich, eine Liste gemeinsamer Standards zu haben, damit man sagen kann: "Ich denke wir sollten Standard X oder Standard Y annehmen wird von vielen anderen Projekten genutzt ". Daher die Frage. – brianegge

+0

Ich stimme zu. Wenn Sie versuchen, ein Team zu gründen oder einen Konsens aufzubauen, sind Sie absolut richtig. Leider weist Ihre "Liste gemeinsamer Standards" häufig Konflikte auf! – akf

-2

BSD/Allman ist der einzige anständige Einzugsstil. Es erfüllt die Grundregel der geschweiften Klammern - wenn sie auf verschiedenen Zeilen sitzen, sollten sie auf derselben Spalte sitzen. Selbst Horstmann ist im Vergleich zu K & R tolerierbar.

Setzen Sie immer geschweifte Klammern, wenn Sie in Notepad codieren. Ansonsten ist es aufgrund der Auto-Indenting-Funktionen Ihrer IDE nutzlos und ärgerlich.

0
+0

Dieses Buch ist fast so alt wie der Reiseführer von Sun. – brianegge

+0

+1 Dies ist ein herausragendes Buch, das trotz seines Alters immer noch gültig ist. – Mocky

1

Betrachten wir die eine standardmäßig die von Ihrem IDE Reformatierer Mechanismus verwendet werden. Sparen Sie auf lange Sicht viel Zeit.

Wir aktivieren speichern Aktionen in Eclipse und kreuzen Quelle formatieren, so dass die Quellen immer neu formatiert werden. Dies bedeutet, dass eine Neuformatierung nur Dinge ändert, die seit dem letzten Speichern der Datei aufgetreten sind. Ist in Quellcodeverwaltung Geschichte.

Sie können sich natürlich Zeit nehmen und Ihr eigenes Format definieren, aber es ist einfacher, wenn Sie nur den Eclipse-Standard verwenden - es ist in Ordnung für uns.

Verwandte Themen