|
Re: Der "mich kotzt etwas verdammt an"- Thread
[Re: Damocles]
#404361
07/07/12 18:09
07/07/12 18:09
|
Joined: Jul 2001
Posts: 6,904
HeelX
Senior Expert
|
Senior Expert
Joined: Jul 2001
Posts: 6,904
|
Bitte lass es ein Scherz sein. Die Mathematiker bei uns an der Uni schreiben in Ihrem Pseudocode immer sowas, mach einer sogar "fi" um die Einrückung des if-Blockes zu markieren.
so!
void blabla()
{
if(lala==1)
{
....
}
}
Persönlicher Stil hin oder her, aber ich komm noch weniger drauf klar wenn da Leerzeichen fehlen:
so!
void blabla ()
{
if ((lala * 3) == 3)
{
...
}
}
|
|
|
Re: Der "mich kotzt etwas verdammt an"- Thread
[Re: HeelX]
#404363
07/07/12 18:48
07/07/12 18:48
|
Joined: Feb 2005
Posts: 3,687 Hessen, Germany
Tempelbauer
Expert
|
Expert
Joined: Feb 2005
Posts: 3,687
Hessen, Germany
|
Die Mathematiker bei uns an der Uni schreiben in Ihrem Pseudocode immer sowas, mach einer sogar "fi" um die Einrückung des if-Blockes zu markieren. so welche haben wir auch bei uns:
Procedure TransHTO1
for i = 1 to n do
for j = 1 to n do
for k = 1 to n do
if (k,j) € E and (j,i) € E then
E <- E U {(i,j)}
fi
od
od
od
so sieht gut lesbarer code aus:
so!
void blabla()
{
if((lala * 3) == 3)
{
...
}
}
|
|
|
Re: Der "mich kotzt etwas verdammt an"- Thread
[Re: Tempelbauer]
#404365
07/07/12 19:28
07/07/12 19:28
|
Joined: Jul 2001
Posts: 6,904
HeelX
Senior Expert
|
Senior Expert
Joined: Jul 2001
Posts: 6,904
|
Aber warum machst du zwischen if und der ersten Klammer kein Leerzeichen? Weil du sagst ja "wenn x dann y" und nicht "wennxdanny". Mein Problem daran ist, dass wenn zwischen zwei Syntaxelementen ein geringer Abstand ist - oder gar keiner, wie bei Dir - dass die Sachen als zusammengehörig wahrgenommen werden. Stell dir vor, du hast einen Rumpf mit zwei Argumenten, dann sieht ja irgendwie sehr gedrungen aus, bei ist klar zu lesen "Das ist eine Funktion f mit keiner Rückgabe, und zwei Parametern, x als int, und dann y als int". Natürlich liest man das beim ersten auch heraus, aber ich gehe stark davon aus, dass durch den fehlenden Platz die Augen/die Sinneswahrnehmung länger braucht, um das auseinanderzupflücken. Anders bei Aufrufen, die nicht den deklarativen Character wie ein Funktionsrumpf haben; da empfinde ich es sehr störend, wenn ein Leerzeichen zwischen Funktionsname und der Klammer und den folgenden Argumenten kommt, weil wenn der Funktionsname (im ersten Blick) alleine da steht, die Assoziation geweckt wird, dass es sich um einen Funktionszeiger handelt; wobei man ja aber mit "blabla(1, 2)" sich eher darauf besinnt, dass hier ein durch eine Funktion berechneter Wert eingesetzt wird. Auch bei if's graust es mir, wenn dann da steht weil das "(((!(" als Teil des boolschen Ausdrucks ja nicht zum if als Syntaxelement gehört, sondern abgesondert zu betrachten ist - da es ja gesondert berechnet wird und dann in ein true/false zerfällt. Letztenendes finde ich, dass sich guter Code sich neben dem technischen Aspekt auch immer sehr durch Lesbarkeit, Layout und Schönheit kennzeichnet, die sich auch in Strukturen und Ordnungsprinzipien wiederfindet. Deshalb frage ich, warum Du das gerade so findest und nicht weil es nur ja/nein gibt ![smile smile](/ubb7/images/graemlins/default_dark/smile.gif)
Last edited by HeelX; 07/07/12 19:31.
|
|
|
Re: Der "mich kotzt etwas verdammt an"- Thread
[Re: HeelX]
#404368
07/07/12 21:35
07/07/12 21:35
|
Joined: Feb 2005
Posts: 3,687 Hessen, Germany
Tempelbauer
Expert
|
Expert
Joined: Feb 2005
Posts: 3,687
Hessen, Germany
|
Deshalb frage ich, warum Du das gerade so findest und nicht weil es nur ja/nein gibt find ich nicht, ist nur ne persönliche meinung (hätt ich vielleicht deutlicher machen sollen). andere bevorzugen diesen für mich unübersichtlichen stil die öffnende geschweifte klammer nicht in eine separate zeile zu setzen. durch f() sehe ich schneller, dass es ein funktionsaufruf ist (bezeichner und parameterliste gehören zusammen). du benutzt hingegen auch hier leerzeichen, dadurch wirkt der code auf mich "zerpflückt". besonders wenn man ein komplexeres konstrukt hat:
var a = b (c + d (e) - 4 * (f (g) + h (4)),5 );
var a = b(c + d(e) - 4 * (f(g) + h(4)) , 5);
ist zumindest meine meinung ![tongue tongue](/ubb7/images/graemlins/default_dark/tongue1.gif)
|
|
|
Re: Der "mich kotzt etwas verdammt an"- Thread
[Re: lemming]
#404381
07/08/12 10:52
07/08/12 10:52
|
Joined: Jul 2001
Posts: 6,904
HeelX
Senior Expert
|
Senior Expert
Joined: Jul 2001
Posts: 6,904
|
Nein, also ne Leerzeichenstreumaschine will ich ja auch nicht, würde das auch so machen:
if (a == 7)
var a = b(c + d(e) - 4 * (f(g) + h(4)), 5);
Aber ich sehe schon, dass das echt ne subjektive Kiste ist, wo jeder seine eigene Meinung hat ![smile smile](/ubb7/images/graemlins/default_dark/smile.gif)
Last edited by HeelX; 07/08/12 10:52.
|
|
|
Re: Der "mich kotzt etwas verdammt an"- Thread
[Re: HeelX]
#404390
07/08/12 13:10
07/08/12 13:10
|
Joined: Dec 2002
Posts: 3,363 Vindobona (Ostarichi)
Harry Potter
Expert
|
Expert
Joined: Dec 2002
Posts: 3,363
Vindobona (Ostarichi)
|
Mir stellt es alle Haare auf, wenn ich einstellige Variablennamen sehe (z.B. a = b). Einstellige Variablen (z.B: "i") verwende ich höchstens für einen Array-Index. Das mit den Leerzeichen stört mich da eher weniger. Wobei ich selbst eher dazu neige, möglichst wenige Leerzeichen zu machen. Allerdings verwende ich beruflich einige Programmiersprachen (z.B. ABAP) wo es genau vorgeschrieben ist, wann und wo man Leerzeichen machen muss, und wo man es nicht darf (ein falsches Setzen von Leerzeichen löst meist einen Syntaxfehler aus). Und, HeelX, das mit dem "ENDIF" war wirklich ernst gemeint. ![grin grin](/ubb7/images/graemlins/default_dark/grin.gif) Ich finde es total unübersichtlich, wenn ein und dasselbe Zeichen (geschwungene Klammer) für viele verschiedene Dinge verwendet wird. Bei komplexeren Codings braucht man dann unbedingt einen speziellen Editor, der die Einrückungen übersichtlicher darstellen kann, damit man nicht den Überblick verliert. Wenn man das Coding aber z.B. in NOTEPAD hineinkopiert, kennt sich kein Mensch mehr aus, wohin eine bestimmte Klammer nun gehört. Da würde ich folgendes Coding weit übersichtlicher finden. Man sieht sofort, wo eine bestimmte Schleife oder Bedingung zu Ende ist:
VOID blabla()
IF(a = b)
WHILE(1)
Tu_das(1);
Tu_das(2);
IF(c = d)
Tu_das(3);
ENDIF
ENDWHILE
ENDIF
ENDVOID
Anstatt so:
VOID blabla()
{
if(a == b)
{
while(1)
{
Tu_das(1);
Tu_das(2);
if(c == d)
{
Tu_das(3);
}
}
} //<--- Diese Klammernansammlung ist der totale Wahnsinn
}
Abgesehen davon hasse ich diese geschwungenen Klammern, weil man sich jedesmal fast die Finger bricht, wenn man diese Zeichen auf der Tastatur eintippen muss. Dieses "==" beim IF hasse ich übrigens auch. Warum nicht, so wie bei vielen allen anderen Programmiersprachen, einfach "IF a=b"?
|
|
|
Re: Der "mich kotzt etwas verdammt an"- Thread
[Re: Rei_Ayanami]
#404396
07/08/12 14:36
07/08/12 14:36
|
Joined: Jan 2002
Posts: 4,225 Germany / Essen
Uhrwerk
Expert
|
Expert
Joined: Jan 2002
Posts: 4,225
Germany / Essen
|
Harry, das würde man ja auch so schreiben:
void blabla()
{
if(a == b)
while(1)
{
Tu_das(1);
Tu_das(2);
if(c == d)
Tu_das(3);
}
}
Warum nicht, so wie bei vielen allen anderen Programmiersprachen, einfach "IF a=b"? WEil a=b eine Zuweisung und kein Vergleich ist. "a=b" evaluiert zu dem Wert von b. "a==b" evaluiert zu einem Wert ungleich 0 oder gleich 0. Zudem kann "a==b" typisiert werden, in Java ist das nämlich ein Audruck vom Typ boolean.
Always learn from history, to be sure you make the same mistakes again...
|
|
|
|