Euer bevorzugter Einrückstiel

Welcher Stil sagt dir am meisten zu

  • 1TBS

    Stimmen: 24 44,4%
  • Allman

    Stimmen: 28 51,9%
  • Horstmann

    Stimmen: 0 0,0%
  • Whitesmith

    Stimmen: 1 1,9%
  • GNU-Stil

    Stimmen: 1 1,9%

  • Umfrageteilnehmer
    54

Zespire

Lieutenant
Registriert
März 2007
Beiträge
857
Ich bin Heute über eine Seite über verschiedenen Einrückstilen beim Programmieren gestoßen.

Dabei habe ich nach etwas rum probieren festgestellt, das ich dn Allman-Stil am übersichtlichsten finde.

Jetzt würde ich gerne wissen welchen Stil ihr bevorzugt.

Es geht hier nicht darum welchen Stil ihr nutzen müsst, sondern nutzt wen ihr Wählen könnt.


In der Annahme es sind die populärsten habe ich die 5 Stile von Wikipedia genommen.

http://de.m.wikipedia.org/wiki/Einr%C3%BCckungsstil
 
Zuletzt bearbeitet:
Ich verwende grundsätzlich Allman, allerdings ist für einige Elemente (Anonyme Klassen, Lambda/Closures) K&R oft praktischer, von daher wechsele ich in diesen Fällen den Stil. Wobei ich das nicht händisch mache. Gibt ja genug Tools dafür.
 
Kann ich auch für GNU-Stil Minuspunkte vergeben?

€: Ich finde, es gibt kaum etwas nebensächlicheres, über das Glaubenskriege geführt werden, als das Thema Einrückungsstil. So lange er innerhalb des gesamten Projektes einheitlich ist, ist es meiner Meinung nach absolut Jacke wie Hose und eine reine Geschmacksfrage.

Außer beim GNU-Stil. Der ist einfach nur beknackt.
 
Zuletzt bearbeitet:
ich verwendet den stil den ich gut finde .. vielleicht heißt der mein stil, das kann ich leider nicht anklicken, schade?!
 
Das interessiert mich jetzt. Gib mal so ein Beispiel wie "dein Stil" aussieht. Am besten Analog zu den Wiki Beispielen.
Ich habe für den 1TBS gestimmt. Aber im Endeffekt auch egal, solange das gesamte Projekt einheitlich ist, wie asdfman schon sagte.
 
Wollte gerne noch etwas ergänzen. Ich glaube, es ist oft der Fall, dass man sich seinen Lieblingsstil so sehr angewöhnt hat, dass ein abweichender Stil irritierend wirkt und man sich daraus Argumente für die eigene Vorliebe konstruiert. Wenn man die offene Klammer ans Ende der einleitenden Zeile setzt, würde man argumentieren, dass eine eigene Zeile nur für eine Klammer vertikale Platzverschwendung ist. Umgekehrt könnte man auf Unklarheit, wo der Block beginnt plädieren. Der Punkt ist, dass die vermeintlichen Vorteile am Ende beliebig sind und die Argumentation verdreht wird, weil man ohne es zu bemerken von einem gewünschten Ergebnis die Vorteile ableitet, statt andersherum, wie es eigentlich sein sollte.

Außer beim GNU-Stil. Wer für den argumentiert, will euch einfach nur auf den Arm nehmen.
 
@asdfmann: Volle Zustimmung in allen Punkten :)

Würde auch sagen, dass das primär Gewohnheitssache ist und ne repräsentative Umfrage wirst du hier sowieso nicht bekommen. Ich halte mich aber generell auch nicht sklavisch an einen Stil, wenn ich den Eindruck habe, dass er in einer bestimmten Situation die Lesbarkeit eher erschwert.

Wo ich mich aber immer noch nicht so ganz entscheiden kann ist die Frage nach Tabstopps oder Leerzeichen.

Edit: Ich nutze übrigens 1TB bzw. die "Stroustrup-Variante"
 
Ich bevorzuge den Allman-Stil und finde generell alle Stile mit hohem 'Zeilenverschleiß' gut. Damit komme ich mir sehr viel produktiver vor und bin motivierter :D.
 
Zuletzt bearbeitet:
Miuwa schrieb:
Wo ich mich aber immer noch nicht so ganz entscheiden kann ist die Frage nach Tabstopps oder Leerzeichen.

Ich benutze Tabs, weil man die größe der Tabstops in einem Editor beliebig wählen kann. Wenn jemand anders tatsächlich mal meinen Code lesen würde, könnte er das also so einstellen, wie er es gern hat, statt es von mir aufgezwungen zu bekommen. Finde aber, auch das ist persönliche Vorliebe. Leerzeichen zu verwenden hat natürlich den Vorteil, dass der Code für jeden, der ihn liest gleich eingerückt ist. Hier ist aber im Gegensatz zur Platzierung der Klammern Einheitlichkeit im gesamten Quellcode dringend erforderlich. Denn wenn jemand andere Tabstops als der Autor eingestellt hat und zwischendrin Spaces statt Tabs sind, sieht es aus wie Kraut und Rüben. Habe das Problem vor Allem, wenn ich ein Projekt gleichzeitig für Windows und POSIX entwickle, weil Visual Studio als Standardeinstellung Spaces benutzt. (Das kann man sicher auch umstellen, aber es hat mich bisher nicht ausreichend genervt, um mich auf die Suche nach der Option zu begeben).

TL;DR: Die Wahl ist egal, so lange man bei einer bleibt.
Außer beim GNU-Stil. Der ist eher ein Schlag ins Gesicht für jeden Leser.
 
Gibt es Programme, die Code einem Stil anpassen?
Muss immer wieder Code lesen bei dem Einrückungen nicht passen, Groß- und Kleinschreibung Banane ist, Absätze rigoros gesetzt werden, ebenso wie Klammern, zweizeilige Ifs, etc..
Es regt mich jedes mal so auf, dass ich in der Regel erstmal den Code richtig einrücken muss, damit "mein Gespür" wieder stimmt.
 
Klar gibt es die. Das naheliegend benannte Programm Indent z.B.

Cave: Ist von GNU.
 
Wir benutzen 1TBS aber nicht in dieser Form.
Abstände halbieren und gut ist.
 
1TBS ist gruselig und verwende ich nur bei CSS. Bei SCSS Code werde ich in Zukunft wohl aber auch auf Allman umsteigen, denn die Komplexität und Verschachtelung steigt da auch immens an. Jeglicher anderer Code wird von mir immer in Allman geschrieben. Wozu hat man auch ein Scrollrad erfunden? Lieber versteh ich mit einem Blick die Ordnung und Abläufe anstatt irgendwelche zusammengeschachtelten Konstrukte anzublicken, nur damit man zwei Zeilen spart. Ähnlich sinnloses Argument auch bei den 16:10-Argumenten bei Monitoren. Die zwei, drei Zeilen, die ich mehr auf den Bildschirm bekomme, kann ich auch kurz scrollen. Und durch Indent Guides wird die Übersicht bei Allman zusätzlich auch noch erhöht.

Ähnlich kotz ich auch bei SQL-Code ab.
Code:
SELECT spalte, spalte, spalte, spalte, spalte, spalte, spalte, spalte, spalte, spalte, spalte, spalte, spalte, spalte, spalte, spalte, spalte, spalte
FROM tabelle t JOIN tabelle t ON t.spalte = t.spalte AND t.spalte = t.spalte JOIN tabelle t ON t.spalte = t.spalte JOIN tabelle t ON t.spalte = t.spalte AND t.spalte = t.spalte
WHERE spalte = spalte AND spalte = spalte AND spalte = spalte AND (spalte = spalte OR spalte = spalte) AND spalte = spalte AND spalte = spalte
Da rollen sich mir die Zehennägel hoch........ Einfach nur gruselig, damit man ein paar Zeilen spart. Wartbarkeit = 0, Durchblick = 0, Verständnis = 0
Code:
SELECT 
  spalte, 
  spalte, 
  spalte, 
  spalte, 
  spalte, 
  spalte, 
  spalte, 
  spalte, 
  spalte, 
  spalte, 
  spalte, 
  spalte, 
  spalte, 
  spalte, 
  spalte, 
  spalte, 
  spalte, 
  spalte 
FROM 
  tabelle t 
    JOIN tabelle t
      ON t.spalte = t.spalte
      AND t.spalte = t.spalte
    JOIN tabelle t
      ON t.spalte = t.spalte 
    JOIN tabelle t
      ON t.spalte = t.spalte
      AND t.spalte = t.spalte
WHERE 
  spalte = spalte 
  AND spalte = spalte 
  AND spalte = spalte 
  AND (
    spalte = spalte
    OR spalte = spalte
  )
  AND spalte = spalte 
  AND spalte = spalte
Aliasvergabe und evtl. Gruppierung der Spalten mal unberücksichtigt gelassen... So kann ich auch einfach mal fix ein Union draus machen, hab ne gute Übersicht über die Spalten im Query, sehe direkt auf den ersten Blick, wo was mit wem verknüpft wird etc.

Für mich steht der Vorteil der Wartbarkeit und Übersichtlichkeit einfach über allem. Dank dem Code Formatter in PhpStorm aber zum Glück schnell änderbar. Da hat Visual Studio leider mal nicht die Nase vorn, der integrierte Code Formatter ist leider ein wenig... bescheiden. ;)
 
Egal ob Java, JavaScript oder C#, ich verwende bei allen Allmann, weil ich es so einfach übersichtlicher finde, wenn die Klammern auf einer Horizontalen sind.
Das ist evtl. auch der Grund, warum ich i.d.R. keine Sprachen mag, die auf Klammern verzichten und bei denen man stattdessen einrücken muss (z.B. Python, etc.)

Bei uns in der Firma ist Allmann zum Glück Standard und falls doch jemand was anderes verwendet, gibt es immer noch Ctrl+Shift+F in eclipse oder entsprechende Shortcuts in anderen IDEs.
 
PSR2 = 1TBS
Somit "Standard" in PHP Entwicklung.
 
habe mich an diesen hier gewöhnt. denke der zählt auch zu allman.

Code:
MyConstructor( const typeA& parameterA, typeB* parameterB )
   : m_ParameterA( parameterA )
   , m_ParameterB( parameterB )
{
   if( m_ParameterA.size() )
   {
      fooA();
   }
   else if( m_ParameterB && m_ParameterB->size() )
   {
      fooB();
   }
   else
   {
      fooC();
   }
}
 
Ich benutze eine Variation des 1TBS-Stils, den Java-Sun Stil.

LG
 
Zurück
Oben