Coding Guidlines



  • Hallo Forum,

    ich bin gerade dabei C/C++ zu lernen und habe zu obigen Stichwort im Internet gesucht. Neben einem PDF habe ich diese Seite gefunden:
    http://zach.in.tu-clausthal.de/progr/guidelines.html#part1

    Ist das noch aktuell oder habt Ihr eine bessere Referenz?



  • Was heißt aktuell? Es gab nie eine aktuelle Coding Guidline für C++. Jeder hat seine eigene, die ihm gefällt. Wenn mehrere Leute an einem Projekt arbeiten, einigt man sich auf einen Coding Guidline. Wer neu dazu kommt, muß sich an die bestehende Projekt Guidline halten.

    Meistens orientiert man sich an bestehende Guidlines, damit es nicht zu abgedreht ist. Aber was offizielles für C++ gibt es nicht.

    Ich selber halte mich z.B. an die Standard-Lib Guidlines, so wie es auch boost und ASL macht. Andere richten sich nach den MS Guidlines (wie in C#) oder nach denen von Java. Geschmackssache...



  • Mokka schrieb:

    Ist das noch aktuell oder habt Ihr eine bessere Referenz?

    suchst du ne c++-referenz oder coding guidelines?
    wenn du interesse an guidelines hast, um deinen stil zu verbessern, ist diese seite sehr empfehlenswert, weil sie mal begründungen mitliefert. aber nimm alle diese regeln nur als vorschläge und mach dir dann selber gedanken. und nenne deine exceptions nicht gerade XThrewUp.



  • Gerade für Anfänger würde ich diese Guidelines nicht empfehlen. Einige Dinge sind IMHO Mist, andere etwas zu oldschool... naja.



  • wenn du interesse an guidelines hast, um deinen stil zu verbessern, ist diese
    seite sehr empfehlenswert

    Für diesen Fall habe ich bisher nichts besseres als Alexandrescus und Sutters: "C++ Coding Standards" gesehen.



  • 2 C++ Bücher habe ich hier schon liegen. Ein drittes wollte ich mir nicht unbedingt anschaffen. Ich dachte eher an Seite die die nötigsten CodingGuidlines in C++ erklärt.

    Ich habe gestern Abend die anderen auch mal durchgesehen und verglichen:
    http://wiki.informatik.hu-berlin.de/sbw/index.php/Coding_Guidelines
    http://www.lkn.ei.tum.de/arbeiten/faq/guidelines/lkn_coding_conventions.pdf

    Sie unterscheiden sich doch in vielen Punkten. Ich nehme sie als Inspiration und schaue was mir gefällt.

    Vielen Dank



  • HumeSikkins schrieb:

    wenn du interesse an guidelines hast, um deinen stil zu verbessern, ist diese
    seite sehr empfehlenswert

    Für diesen Fall habe ich bisher nichts besseres als Alexandrescus und Sutters: "C++ Coding Standards" gesehen.

    ich bin sutters-ablehner.



  • http://zach.in.tu-clausthal.de/progr/guidelines.html#part1 schrieb:

    Pointer- oder Reference-Deklaration
    String *str; // * steht bei der Variable, nicht beim Typ

    Was ist der Sinn dabei? Ich find, das Sternchen sollte beim Typ stehen, da es dazugehört. Typ: Pointer auf einen String und dann einfach der Name des Zeigers.



  • und wie ist es hier:

    std::string *a,b,*c;

    zweimal pointer einmal nicht

    std::string* a,b,c;

    ist also was anderes als:

    std::string *a,*b,*c;

    gehört also nicht nur zum typ.

    jens



  • xindon schrieb:

    http://zach.in.tu-clausthal.de/progr/guidelines.html#part1 schrieb:

    Pointer- oder Reference-Deklaration
    String *str; // * steht bei der Variable, nicht beim Typ

    Was ist der Sinn dabei? Ich find, das Sternchen sollte beim Typ stehen, da es dazugehört. Typ: Pointer auf einen String und dann einfach der Name des Zeigers.

    bei variable ist veraltet. es geht darum, daß man bei

    char *a,*b,*prev,*pred,*pos;
    

    sieht, daß die variablen alle zeiger sind.
    und nicht den fehler macht,

    char* a,b,prev,pred,pos;
    

    zu schreiben und einen zeiger und vier chars hat.

    ich nenne das deswegen veraltet, weil die begründung anno dazumal stark und praxisnah war. man las mit scanf und schrieb mit printf und hat sich schlimm gewundert, wenn da im ausdruck bits gefehlt haben. und das prog ist eh abgestürzt, diesmal nur ein wenig früher.
    früher schrieb man alle variablendefinitionen in die erste zeile der funktion und hat später erst initialisiert. heute definiert man (außer man wird duch schlechte libs dazu getrieben und einem ganz selteten fall) ja keine variablen mehr, ohne sie zu initialisieren. akso spendiert man auich jeder definition eine eigene zeile. und jedem attribut auch, damit's zusammenpaßt. folglich ist jetzt kein grund mehr übrig, daß das sternchen beim variablennamen stehen sollte, und man sollte es doch lieber zum typen schreiben, weil sich char* pch; irgendwie liest wie pch ist ein zeiger auf char und der typ von pch ist: zeiger auf char. (manche puristen lesen: der inhalt von pch ist char udn werden immer char *pch schreiben).

    also bitte nicht nur tips glauben, die eine begründung dabeihaben, sondern auch nur welche, die hilfreich erscheinen. hätten das mehr leute beherzigt, wäre es niemals zum UN- und später zum UML-hype gekommen.



  • jenz schrieb:

    und wie ist es hier:

    std::string *a,b,*c;

    zweimal pointer einmal nicht

    std::string* a,b,c;

    ist also was anderes als:

    std::string *a,*b,*c;

    gehört also nicht nur zum typ.

    jens

    Das gehört ja auch so:

    std::string* a;
    std::string* b;
    std::string* c;
    

    Mit ordentlich konfigurierter IntelliSense ist das auch nicht mehr Schreibarbeit.

    Btw. wozu Pointer aus std::string verwenden...? 🙂



  • volkard schrieb:

    HumeSikkins schrieb:

    wenn du interesse an guidelines hast, um deinen stil zu verbessern, ist diese
    seite sehr empfehlenswert

    Für diesen Fall habe ich bisher nichts besseres als Alexandrescus und Sutters: "C++ Coding Standards" gesehen.

    ich bin sutters-ablehner.

    Was sind die konkreten Gründe dafür? Geht diese Ablehnung soweit, dass dir auch das genannte Buch missfällt? Das könnte ich beim besten Willen nicht nachvollziehen.



  • HumeSikkins schrieb:

    Was sind die konkreten Gründe dafür?

    ich mag ihn einfach nicht. er ist für mich keine c++-autorität. sein wort hat kein gewicht. sein stil ist mir zuwider.

    Geht diese Ablehnung soweit, dass dir auch das genannte Buch missfällt? Das könnte ich beim besten Willen nicht nachvollziehen.

    habe dieses buch nicht gelesen. weil alexandrescu mitspielt, wird es gut sein.


Anmelden zum Antworten