Seite 1 von 2

Coding-Styles

Verfasst: Fr Mär 20, 2015 2:41 pm
von Xin
Moin,

firmenintern sitzen wir gerade daran uns über Coding-Styles zu unterhalten. Ich weiß, dass ich einen etwas extravaganten Coding-Style pflege, doch ich kann diesen - denke ich - auch halbwegs begründen.

Auf Wunsch stelle ich ihn im Verlauf des Threads auch gerne vor.

Mit dem Thread möchte ich allerdings eine Diskussion anstoßen, ein kleiner provozierter Flamewar auf dem Niveau intelligenter Menschen.
Ein Coding-Style ist immer ein Diskutieren über die Position von Leerzeichen - das ist mühseelig, aber durchaus interessant zu sehen, warum manche Leerzeichen so wichtig sind, dass man darüber in Streit geraten kann.

Daher interessiert mich:

Welchen Coding-Style nutzt Du und weshalb?
Welche Dinge sind Dir in Deinem Coding-Style wichtig und weshalb, was davon ist eher egal.

Ich bin an den Gründen für Entscheidungen interessiert. Ich möchte meinen privaten Coding-Style weiterentwickeln und den der Firma. Und wenn jeder für sich Gelegenheit hat über seinen Stil nachzudenken, kann das wohl auch kaum schaden. :-)

Feuer frei! ;-)

Re: Coding-Styles

Verfasst: Sa Mär 21, 2015 8:34 am
von nouseforname
Hach ja, da mach ich mal den Anfang ;)

Ich persönlich strukturiere gerne in zusammenhängenden Blöcken. Wobei diese dann doch wieder mit Leerzeilen getrennt werden. Auch Leerzeichen sind mir durchaus wichtig, Außerdem nutze ich Einrückungen und neue Zeilen. Meist liegt der Grund in der, für mich, besseren Lesbarkeit. Unnötige if-else Zweige mag ich auch nicht.

Es kommt auch auf die IDE an welche in nutze. In VS2008 setze ich die {} anders als in Eclipse, weil VS einfach unfähig ist.^^

Hier ein paar Beispiele:

Code: Alles auswählen


// Leerzeichen
if (a == b) ....

for (i = 0; i < 10; i++) ....

callMethod(arg1, arg2, arg2); 


// geschweifte Klammern in Eclipse
for (i = 0; i < 10; i++) {
    // do something
}

// geschweifte Klammern in VS
for (i = 0; i < 10; i++) 
{
    // do something
}

// ohne {}
if (a == b)
    c = 0;

// oder wenn mehrere gleichartige Anweisungen/Aufrufe
if ( a == b)    c = 0;
....


// if-else Zweig 
if (a != 0) {
    a--;
}
else {
   return a;
}

// gefällt mir so besser
if (a == 0)
    return a;

a--;


Mehr fällt mir gerade nicht ein. ;)

Re: Coding-Styles

Verfasst: So Mär 22, 2015 3:33 pm
von Xin
Keiner traut sich? :-D

Re: Coding-Styles

Verfasst: So Mär 22, 2015 4:44 pm
von mfro
Ich finde es gar nicht soo wichtig, wie genau denn so eine Konvention auszusehen hat (da kann man sich stundenlang die Köpfe drüber heiß reden, ohne zu einem Ergebnis zu kommen) als daß sich jeder peinlich dran hält. Nichts ist schlimmer als ein Durcheinander und gewöhnen kann und muß man sich letztendlich an alles.

Bevor ich also was Eigenes erfinden würde, würde ich schlicht einen etablierten Standard verwenden. Da kann die Antwort drauf, wieso das denn genauso auszusehen hat, dann schlicht lauten: weil's halt so ist. Punkt.

Das hier find' ich gut und vernünftig: http://qt-project.org/wiki/Qt_Coding_Style. Und wenn's für die (ist ja schließlich nicht irgendjemand) funktioniert, sollte es für jeden anderen auch tun.

Re: Coding-Styles

Verfasst: So Mär 22, 2015 8:10 pm
von Nemo
Bei Projekten mit mehreren Beteiligten sollte man sich auf eine Konvention einigen, die auch in einer eigenen Datei festgehalten werden sollte. Obwohl ich grundsätzlich ein Fan von Standardisierung bin, finde ich es besser sich mit den anderen Beteiligten auf etwas zu einigen, als auf einen Standard zurückzugreifen, der vielleicht in einer Sache für alle ungewohnt ist und unlogisch wirkt.
Xin hat geschrieben:Ich weiß, dass ich einen etwas extravaganten Coding-Style pflege...
Dann stell ihn doch mal vor.

Ich habe noch nie an einem wirklich großen Projekt gearbeitet, daher sind manche Aspekte meines Stiles vielleicht noch nicht ausgereift, aber er sieht in etw so aus:

Code: Alles auswählen

// Leerzeichen
if( a == b )

for( i  = 0; i < 10; ++i )

callMethod( arg1, arg2, arg3 );

//besonders wichtig sind mir Leerzeichen bei mathematischen Operatoren
x = a + b - callMethod( a, b ) * ( a + b )

//geschwungene Klammern immer gleichweit eingerückt
if( a > b )
{
    while( i < 10 )
    {
        // do something
    }
}

Re: Coding-Styles

Verfasst: Mi Apr 01, 2015 11:03 am
von Xin
Nemo hat geschrieben:Bei Projekten mit mehreren Beteiligten sollte man sich auf eine Konvention einigen, die auch in einer eigenen Datei festgehalten werden sollte. Obwohl ich grundsätzlich ein Fan von Standardisierung bin, finde ich es besser sich mit den anderen Beteiligten auf etwas zu einigen, als auf einen Standard zurückzugreifen, der vielleicht in einer Sache für alle ungewohnt ist und unlogisch wirkt.
Grundsätzlich finde ich Beautifier sehr schön, leider funktionieren sie nur bedingt.
Aber das ist nur das optische. Wenn es um Konventionen geht, wie z.B. Variablennamen zu heißen haben, wird es schwierig.
Gerade hier möchte ich eigentlich gerne mehr Sprachunterstützung schaffen.
Nemo hat geschrieben:
Xin hat geschrieben:Ich weiß, dass ich einen etwas extravaganten Coding-Style pflege...
Dann stell ihn doch mal vor.
Werde ich machen, ich habe angefangen, daraus mal eine Wiki-Seite zu machen.
Nemo hat geschrieben:Ich habe noch nie an einem wirklich großen Projekt gearbeitet, daher sind manche Aspekte meines Stiles vielleicht noch nicht ausgereift, aber er sieht in etw so aus
Von dem, was ich da sah, stimmt bisher alles mit meinem überein.

Re: Coding-Styles

Verfasst: Mi Apr 01, 2015 12:22 pm
von cloidnerux
Ich lese mich hier durch und wundere mich, warum ich keinen so strengen Coding-Style habe. Auf der anderen Seite programmiere ich gerade auch in einer Sprache, die nicht Case-Sensetive ist:

Code: Alles auswählen

ELSIF ACTION_CMD = 8
THEN
	RESET_FAULT := FALSE;
	IF POSITION > DRIVE_HOME_POSITION THEN
		IF POSITION = ACTUAL_POSITION THEN
			SlopeDelay(T:=T#0ms);
			POSITION := POSITION - 20;
		ELSE
			SlopeDelay(T:=T#100ms);
		END_IF;
		START_TASK :=  SlopeDelay.Q;
	END_IF
	START_HOME := FALSE;
	HALT:=TRUE;
	HaltDelay(IN:=FALSE, PT:=T#0ms);
	TASK_FINISHED := FALSE;
END_IF
Für mich ist es wichtig, dass die Einrückungen stimmen, damit man die Block-level erkennen kann. Variablennamen sollten einigermaßen sinnvoll sein und der Code sollte nach Möglichkeit nicht die Tendenz haben irgendwas oder irgendwen zu beschädigen.

Re: Coding-Styles

Verfasst: Mi Apr 01, 2015 3:09 pm
von nouseforname
Nachtrag:

Variablen/Methoden Namen sind bei mir immer "CamelCase" und möglichst ohne Unterstrich etc. Außerdem bekommen Variablennamen bei mir immer einen kleinen 1. Buchstaben der den Typ darstellen soll.

Beispiele

Code: Alles auswählen

int iCycleCounter;
double dMyValue;
String sTextInput;

Re: Coding-Styles

Verfasst: Mi Apr 01, 2015 3:24 pm
von Xin
nouseforname hat geschrieben:Variablen/Methoden Namen sind bei mir immer "CamelCase" und möglichst ohne Unterstrich etc. Außerdem bekommen Variablennamen bei mir immer einen kleinen 1. Buchstaben der den Typ darstellen soll.
Wie benennst eine Short-Variable?

Re: Coding-Styles

Verfasst: Mi Apr 01, 2015 4:55 pm
von nouseforname
Xin hat geschrieben: Wie benennst eine Short-Variable?
Erwischt ;)
Kann mich nicht entsinnen diese bisher benötigt zu haben, aber spontan "shVar".