*grins*Kerli hat geschrieben:Ja, es ist auch nicht wirklich leicht etwas gutes zu finden. Aber man entwickelt sich weiter. Wenn ich mir heute einen Code von mir von vor ein paar Jahren anschaue, dann denke ich mir, wie habe ich das nur so formatieren könnenXin hat geschrieben:Das Thema interessiert mich sehr.
Code: Alles auswählen
int main( int argc, char ** argv )
{
if( argc > 1 )
{
printf( "> 1\n" );
}
else
{
printf( "<= 1\n" );
}
}
Ich kann mit diesem Einrückungsstil weiterhin problemlos leben und ihn gut lesen. Geändert habe ich nur aus einem einzigen Grund: Der Rest der Welt konnte es nicht. Also konnte ich es auch nicht verantworten, jemandem C mit diesem Einrückungsstil beizubringen. Ich habe also überall 'normal' programmiert, außer für mich und da ich immer mehr Leuten programmieren beibrachte und immer mehr gegen Geld programmierte...
Inzwischen habe ich vermutlich alle wichtigen, aktuellen Quelltexte umgestellt.
wie initProgramm?Kerli hat geschrieben:Und was ist wenn die Variablen aus mehr als nur einem Wort bestehen?Xin hat geschrieben:Lokale Variablen/globale Funktionen werden klein geschrieben. (int i; initProgramm())
Könnte ich mir als Ich->koche( spaghetti ) erklären. Kann ich gut mit leben, auch wenn ich es zur Zeit die alten AmigaOS Zeiten nicht überwunden habe und daher immernoch Ich->Koche( spahetti ); schreibe. Member schreibe ich groß: Ich->Koche( Spaghetti );Kerli hat geschrieben:Da unterscheide ich lieber nach Funktion und Variable. Memberfunktionen schreibe ich so wie du globale Funktionen schreibst, weil das sie Member sind erkennt man ja sowieso an der Klasse davor (Typname->memberFunction).Xin hat geschrieben:Typnamen und Typmember werden groß geschrieben. (Typname->TypMember)
Würde man danach gehen, müssten Variablen Groß geschrieben werden, sofern es keine Funktionspointer sind. ^^
Ich verabscheue Unterstriche... Konventionen wie bei GTK sind mir ein Graus!Kerli hat geschrieben:Und Variablen schreibe ich eigentlich immer klein mit Unterstrichen getrennt. In Klassen/Strukturen etc. stelle ich dann noch einen Unterstrich davor, damit es erstens keine Kollisionen mit Parametern und lokalen Variablen geben kann und zweitens auch mit Autovervollständigung mit Eingeben von nur dem Unterstrich gleich alle Membervariablen kommen.
In Genesys verlange ich jetzt nach VB-Vorbild den Punkt zur Unterscheidung.
Code: Alles auswählen
.Counter = 1;
Damit ergibt sich, dass Memberdaten genauso geschrieben werden müssen, wie die Klassen, also üblicherweise groß. Auf kleingeschriebene Funktionen kann ich mich problemlos einlassen:
Code: Alles auswählen
.koche( .Spaghetti ); // Funktion im Namensraum 'Ich', die Klasse hat einen Datenmember class Spaghetti & Spaghetti;
Widerspricht meinem Lesefluss. Die Tatsache, dass Key::If konstant ist, bekomme ich spätestens vom Compiler gemeldet, wenn ichKerli hat geschrieben:Würdest du das dann also etwa wie folgt machen?Xin hat geschrieben:Konstanten sind bei mir Member eines Konstanten-Typs. Das Token von if z.B. heißt bei mir "Key::If" und ist eine Konstante vom Typ Key.Also ich schreibe Konstanten generell groß, egal ob es sich um 'const'-Konstanten, Enums oder sonst irgendwas handelt.Code: Alles auswählen
class Key { public: static const Key If; }
Key::If = Key::Else;
versuche.
Die Semantik steckt in der Definition des Typs und muss - meines Erachtens - nicht mehr in der Schreibweise verdeutlicht werden.
Bei einem Vergleich - und dafür brauche ich die Konstanten schließlich - interessiert mich nicht, ob ein Operand konstant ist oder nicht.
Welcher Fall?Kerli hat geschrieben:Damit wäre ich irgendwie nicht so zufrieden. Was wenn der Fall dann doch einmal eintrittXin hat geschrieben:Ich habe durchaus Lösungen für das Problem, indem ich deutlich mehr über Vererbung löse.
Ein paar meiner Sachen sind im Stil meines alten Arbeitgebers gehalten, damit ich mir das angewöhne.Kerli hat geschrieben:Manchmal kommt es aber auch vor das ich einen etwas anderen Codingstandard verwende, zum Beispiel wenn ich STL ähnlich Container, Streams oder ähnliche Sachen schreibe. Dann gehe ich meistens in Header von Boost oder der Standardbibliothek und versuche es ähnlich hin zu bekommen...
Das sehe ich heute allerdings nicht mehr so ganz ein... ^^