Umfrage: Welchen Indent style verwendet ihr
-
Es gibt in der Dokumentation des Linux-Kernels (/usr/src/linux/Documentation) eine Datei CodingStyle. Interessant zu lesen, was da so alles steht. Gleich in Chapter 1: Indentation
Tabs are 8 characters, and thus indentations are also 8 characters. There are heretic movements that try to make indentations 4 (or even 2!) characters deep, and that is akin to trying to define the value of PI to be 3.
Und dann noch so was:
Now, some people will claim that having 8-character indentations makes the code move too far to the right, and makes it hard to read on a 80-character terminal screen. The answer to that is that if you need more than 3 levels of indentation, you're screwed anyway, and should fix your program.
Interessante Einstellung...
-
abc.w schrieb:
Now, some people will claim that having 8-character indentations makes the code move too far to the right, and makes it hard to read on a 80-character terminal screen. The answer to that is that if you need more than 3 levels of indentation, you're screwed anyway, and should fix your program.
Interessante Einstellung...
Der Grundgedanke ist natürlich vollkommen richtig. Man sollte darauf achten, nicht zu tief zu verschachteln und seine Funktionen klein und übersichtlich zu halten. Aber ich bin kein Freund von solchen generellen Regeln (max. 3 mal). Manchmal muss man eben in die vierte oder fünfte Ebene verschachteln, das lässt sich nicht immer verhindern. Und wenn man solche Grundsätze bis zum Äußersten treibt, hat man irgendwann eine Anweisung pro Funktion und kommt aus dem Hin- und Herspringen gar nicht mehr 'raus...
-
_matze schrieb:
Manchmal muss man eben in die vierte oder fünfte Ebene verschachteln, das lässt sich nicht immer verhindern.
Wenn bei mir die Verschachtelung zu tief ist lagere ich lieber Teile der Funktion aus. Die Richtlinie mit den 3 Ebenen finde ich persönlich ganz okay. Nichts desto trotz würde ich es dennoch, nur als Richtlinie ansehen.
-
asc schrieb:
_matze schrieb:
Manchmal muss man eben in die vierte oder fünfte Ebene verschachteln, das lässt sich nicht immer verhindern.
Wenn bei mir die Verschachtelung zu tief ist lagere ich lieber Teile der Funktion aus. Die Richtlinie mit den 3 Ebenen finde ich persönlich ganz okay. Nichts desto trotz würde ich es dennoch, nur als Richtlinie ansehen.
Ja gut, aber wenn du z.B. 5 ineinander verschachtelte Schleifen und Verzweigungen hast, die alle inhaltlich stark zusammengehören (wenn du von mir aus über einen Bildspeicher gehst), rupfst du das dann wirklich auseinander? Als Richtlinie geht das in Ordnung, wie du gesagt hast. Aber Ausnahmen sind genauso in Ordnung (weil manchmal einfach sinnvoll), egal was irgendeine Linux-Kernel-Doku sagt...
-
Nimm python.
-
naja 3 ebenen hat man schnell, grade mit klassen.
class Foo { public void Bar() { someFoobar(); if(bla) { //andThereWeAreOnLevelThree
was tiefer geht sollte wirklich raus
naja verschachtelte klassen mag ich eh nicht..
-
nicht C coder schrieb:
naja 3 ebenen hat man schnell, grade mit klassen.
class Foo { public void Bar() { someFoobar(); if(bla) { //andThereWeAreOnLevelThree
was tiefer geht sollte wirklich raus
naja verschachtelte klassen mag ich eh nicht..Ich glaube, es war nich von Deklarationen die Rede...
-
nicht C coder schrieb:
naja 3 ebenen hat man schnell, grade mit klassen.
class Foo { public void Bar() { someFoobar(); if(bla) { //andThereWeAreOnLevelThree
was tiefer geht sollte wirklich raus
naja verschachtelte klassen mag ich eh nicht..RÜckt man in java immer mit 335 leerzeichen pro Identblock ein?
**
was tiefer geht sollte wirklich raus
**Echt? Du verzichtest also explizit auf alle möglichen anweisungen, die einen indent block mitbringen wie zB if. oder ersetzt du alle ifanweisungen durch funktionen?
bool if(a,b){return a > b;}
So kann manweitere Identblöcke natürlichj auch vermeiden. :xmas2:
-
nicht C coder schrieb:
naja 3 ebenen hat man schnell, grade mit klassen.
Nur in Sprachen, in denen Deklaration & Definition nicht getrennt sind. Zudem geht man eigentlich immer von der Funktionsebene aus.
In C++:
// Header: class Foo { public: void Bar(); }; // Source void Bar() {// 1. Ebene // 2. Ebene // 3. Ebene someFoobar(); if(bla) { someFoobar(); if(bla) { someFoobar(); } } }
nicht C coder schrieb:
was tiefer geht sollte wirklich raus
naja verschachtelte klassen mag ich eh nicht..Wobei ich persönlich die Trennung Header/Source übersichtlicher finde, weil in Sprachen wie Java oder C# wirklich schnell der Code zur Seite hin wächst (Und da ich auch mal Code ausdrucke und mich daher an eine Grenze von ca. 80 Zeichen halte, wird dann der Code häufig umgebrochen).
cu André
-
hast was vergessen
Die Diskussion wird aber irgendwie OT?
-
$b={qw; # j u s t a n o t h e r p e r l h a c k e r # qw;};sub l{print uc shift;};l();$q=qq$b$;$qw={qw{q w}};$$qq{$$qw{qq{q}}}=qq{$q}; $${$$qq{$$qw{q}}}{$$qq{qq{w}}}=$$qq{$${$${$$qq{$$qw{q{q}}}}{q{#}}}{q}};&{$${$$qq {w}}{$${$$qq{$$qw{q{q}}}}{$${$$qq{$${$$b{q{#}}}{q}}}{q{p}}}}}($${$$qq{$${$${$$qq {w}}{qq{#}}}{q}}}{u});&{$${$$qq{q{w}}}{$${$$qq{$$qw{qq{q}}}}{$${$$qq{$${$${$$qq{ $$qw{q}}}{q{#}}}{q}}}{q{p}}}}}($${$$b{b}}{c});&{$${$$qq{q{w}}}{$${$$qq{$$qw{q{q} }}}{$${$$qq{$${$${$$qq{$$qw{q}}}{q{#}}}{q}}}{qq{p}}}}}($${$$b{b}}{n});&{$${$$qq{ $${$${$$qq{$${$${$$qq{$$qw{q{q}}}}{q{#}}}{q{q}}}}{q{#}}}{qq{q}}}}{$${$$qq{$${$${ $$qq{$${$${$$qq{$$qw{q{q}}}}{qq{#}}}{q{q}}}}{q{#}}}{qq{q}}}}{$${$$qq{$${$${$$qq{ $${$${$$qq{$$qw{q{q}}}}{q{#}}}{q{q}}}}{q{#}}}{q{q}}}}{qq{p}}}}}($$qq{$${$${$$qq{ $${$${$$qq{$$qw{q{q}}}}{q{#}}}{q{q}}}}{q{#}}}{q{q}}});
wer braucht schon einrückung
-
Blue-Tiger schrieb:
same for me
-
asc schrieb:
_matze schrieb:
Manchmal muss man eben in die vierte oder fünfte Ebene verschachteln, das lässt sich nicht immer verhindern.
Wenn bei mir die Verschachtelung zu tief ist lagere ich lieber Teile der Funktion aus. Die Richtlinie mit den 3 Ebenen finde ich persönlich ganz okay. Nichts desto trotz würde ich es dennoch, nur als Richtlinie ansehen.
Und brauchst extra nen Funktionsaufruf in einer einfachen IF Abfrage Vertiefung mit z.b. 6 Ebenen die performant in einer einzigen Schleife arbeiten soll.
do
{
if ...
if ..
if ..
if ..
usw.
} while (bla == x)Und nein, solche Sachen sind nicht immer mit Switch Anweisungen lösbar.
-
asc schrieb:
Wobei ich persönlich die Trennung Header/Source übersichtlicher finde, weil in Sprachen wie Java oder C# wirklich schnell der Code zur Seite hin wächst (Und da ich auch mal Code ausdrucke und mich daher an eine Grenze von ca. 80 Zeichen halte, wird dann der Code häufig umgebrochen).
cu André
Du könntest natürlich auch in einer kleineren Schrift die Ausdrucke machen.