Welchem Styleguide folgen?



  • Servus,

    ich bin auf der Suche nach einem Styleguide für C++. Ich fand bis dato den Google C++ Styleguide und bin über einige Sachen doch überrascht, da werden etwa Methodennamen mit Großbuchstaben begonnen. Bei Python und Java gibt es ja vom Sprachschöpfer Empfehlungen ... vielleicht ja auch für C++.

    Welche Styleguides bevorzugt ihr?



  • Wenn du nicht gerade beruflich zu etwas gezwungen wirst, programmier so, wie du dir am leichtesten tust. Das wichtigste ist, dass du konsistent bleibts. Jeder hat da seinen eigenen Stil.

    Meiner ist ziemlich exotisch, Die Übergabe von Lambdas geschieht bei mir z.B. so:

    std::sort
    (
        begin(v),
        end  (v),
    
        [](int a, int b)
        {
            return a > b;
        }
    );
    

    Wobei ich diesen Aufruf wahrscheinlich sogar in eine Zeile schreiben würde. Also entweder Einzeiler, oder 10-Zeiler 😃



  • Grundsätzlich bist du vollkommen frei mit allen Namensbezeichungen, ausser mit Schlüsselworten wie if, else, for, etc. Programmierst du allein, überlege dir einen eigenen konsistenten Stil. Programmierst du im Team, sollte das Team gewisse Regeln für alle festgelegt haben. Letztendlich geht es immer um Verständlichkeit und leichte Nachvollziehbarkeit. Einige Dinge haben sich seit Olims Zeiten eingebürgert und sollten ohne Not nicht verändert werden. Ich denke da an Laufvariable in Schleifen wie i,j,k und ähnliches.



  • berniebutt schrieb:

    Ich denke da an Laufvariable in Schleifen wie i,j,k und ähnliches.

    Och, wenn es einen sinnvollen Namen (wie z.B. linenum) gibt, benenne ich meine Laufvariablen auch gerne mal anders.

    Man kann sagen, dass es in C++ keinen univerell anerkannten Stil gibt. Der eine gibt seinen Membern ein m_-Prefix, der andere hängt einen Unterstrich an und der dritte macht gar nichts oder schreibt vielleicht immer this->.

    Wichtig ist nur wie gesagt, dass du einen konsistenten Stil findest, sodass du dich nicht andauernd fragst, ob es jetzt eine_funktion, eineFunktion oder EineFunktion heißen muss.

    Wenn du es lieber hast, wenn jemand anders dir die Regeln vorschreibt, google einfach nach "c++ style guidelines" und adaptiere eine Version, die dir angenehm ist.



  • Schau dir doch mal an, wie die Standardbibliothek in C++ programmiert ist. Und Boost. Wenn du das dann adaptierst, hast du meinen Lieblingsstil übernommen.



  • Welche Implementierung der Standardbibliothek denn?
    Und boost hat meines Wissens keinen Styleguide. Ich habe im Quelltext jedenfalls schon verschiedene Stile gesehen.



  • wx++ schrieb:

    Welche Implementierung der Standardbibliothek denn?

    Die für den Benutzer relevanten Bezeichner der Standardbibliothek sind im C++-Standard festgelegt. Er meint diesen_codestil .

    wx++ schrieb:

    Und boost hat meines Wissens keinen Styleguide. Ich habe im Quelltext jedenfalls schon verschiedene Stile gesehen.

    Gibt es schon. Was für (syntaktisch) verschiedene Stile hast du denn gesehen?



  • Ich bevorzuge es immer den Style zu nehmen, der entsprechenden Umgebung. Das kann einmal die Programmiersprache sein und dann auch das Framework. Also in der Priorität.

    D.h. wenn ich z.B. meine eigene C++-Bibliothek programmiere, dann richte ich mich nach dem C++ Style. Dazu braucht man sich nur den C++ Standard anschauen, der so aussieht:

    void foo();
    void style_guide();
    class basic_type;
    

    Wenn ich aber z.B. mich in einer MS-Umgebung befinde, d.h. in meinem Projekt/Bibliothek z.B. WTL erweitere/vererbe (andere eben die MFC), nutze ich in dem Teil die MS-Stile:

    void Foo();
    void StyleGuide()
    class BasicType;
    

    Im Prinzip ist es mir egal, solange ich konsistent bin. Es gibt aber auch Dinge, die ich eher unschön finde:

    bool _member; // der Unterstrich alleine bringt mir keinen Vorteil, da er sich beim Lesen schlecht erfassen lässt
    bool member_; // hier auch.
    
    bool m_member; // Besser! Hier kann ich das m_ beim Lesen schneller erfassen.
    

    Ich denke mal, es ist wichtig, das erst mal der Stil in einem Projekt/Bibliothek einheitlich ist. Vieles ist Geschmackssache. Manches ist auch einfach keine Geschmacksfrage.



  • Nexus schrieb:

    wx++ schrieb:

    Und boost hat meines Wissens keinen Styleguide. Ich habe im Quelltext jedenfalls schon verschiedene Stile gesehen.

    Gibt es schon. Was für (syntaktisch) verschiedene Stile hast du denn gesehen?

    Tatsächlich. Über die Verwendung von Member-Prefixen (das war, was ich konkret im Hinterkopf hatte) steht aber nichts drin.


Anmelden zum Antworten