2010-03-12 5 views
31

C++ hat mehrere Arten von Stilen: MFC, Boost, Google, etc. Ich möchte diese Stile untersuchen und bestimmen, welche für meine Projekte am besten ist, aber ich möchte aus dem offiziellen Stilführer lesen . Hat jemand einen offiziellen Leitfaden, den er normalerweise verwendet?Links zu offiziellen Styleguides

Hier sind zwei, die ich gefunden habe. Ich wette, es gibt mehr:

Hinweis: Dies ist keine Diskussion darüber, welche Art am besten ist ... nur ein Aufruf zum offiziellen Stil führt, dass Menschen, die derzeit verwendet wird. Bitte unterlassen Sie andere Style Guides, die Ihnen nicht gefallen.

Side question: Gibt es ein gutes Werkzeug, das Quellcode untersuchen und feststellen kann, ob es einem bestimmten Style Guide entspricht?

+7

Community-Wiki? – Francesco

+1

Ich liebe es einfach wie Stackoverflow sich selbst widerspricht. Dieser ist geschlossen als "Off-Topic" und der C++ Buch-Thread hat Tausende von Upvotes: https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list – JohnJohn

Antwort

2

ich meinen eigenen Stil verwenden, die I have written up here. Ob Sie es als Stil interessiert oder nicht, wenn Sie Stile im Allgemeinen betrachten, finden Sie vielleicht meine Diskussion über die Motivation dafür, um nützlich zu sein.

1

Zur Seite Frage: Ich persönlich kenne keine Werkzeuge, die den Stil im Einsatz analysieren, aber es gibt Werkzeuge, die Quelle zu einem bestimmten Style Guide neu formatieren. Eine, die in den Sinn kommt, ist Artistic Style.

9

Es gibt keine "offiziellen" Styleguides - der C++ - Standard ist stillos. Ein Buch zum Thema von zwei hoch qualifizierten C++ - Jungs ist C++ Coding Standards von Sutter & Alexandrescu.

4

C++ hat und braucht keinen offiziellen Stil. Viele Organisationen schreiben ihren Mitarbeitern Style-Guides vor, um zu versuchen, eine Art Corporate Look zu erhalten. einige von ihnen enthalten Ausschnitte guter Ratschläge, aber viele zwingen Sie nur dazu, seltsame Dekorationen hinzuzufügen, die jemandem, der in den 1980er Jahren eine völlig andere Sprache geschrieben hat, wie eine gute Idee erschienen.

Die einzige wirklich nützliche Ratschläge, die Sie unter der Waffel zu finden ist:

  • eine konsistente Art und Weise definieren die Typen, Objekte zu unterscheiden, und einige Arten von Funktion (wie Zugriffs- und Fabriken), so dass Sie‘ Ich wüsste zum Beispiel (Thing thing = GetThing();) ohne die Namen zu sehen.
  • Starten Sie keine Namen mit Unterstrichen. Dies ist unter gewissen Umständen verboten, und es ist einfacher und lesbarer, es überhaupt nicht zu tun, als sich genau darüber Gedanken zu machen, wann Sie es können.
  • Ersparen Sie sich einen Gedanken für den armen Kerl (vielleicht Sie), der den Code in ein paar Jahren lesen und pflegen muss.
  • Halten Sie es einfach.
  • Verwenden Sie Ihr Gehirn. http://www.ivanism.com/Articles/CodingStandards.html

    Der Beitrag beginnt mit:

4

Ich habe auch ein paar Tipps für eine gute Codierung in C++ geschrieben

Das Ziel von Coding-Standards sind der Geschäftswert des Codes zu erhöhen. Der offensichtlichste (und in der Tat wichtigste) Weg, dies zu tun, besteht darin, den Code robust und fehlerarm zu machen. Gleichermaßen wichtige, aber subtilere Ziele umfassen die Verringerung der Codiererreibung und der Wartbarkeit. Als solche sollten Standards minimal gehalten werden - einfach genug, um tatsächlich zu folgen und wichtig genug, um sich daran zu erinnern.

Diese Standards sollten beim Erstellen neuer Quelldateien verwendet werden. Wenn eine vorhandene Datei geändert werden muss, ist dies ein geeigneter Zeitpunkt, um sie auf den Standard zu bringen. Es ist jedoch nie ein guter Zeitpunkt, eine Datei zu bearbeiten, nur um sie auf den neuesten Stand zu bringen. Wenn es nicht kaputt ist, repariere es nicht und denke immer daran, dass es weiter funktioniert.

Sie werden bemerken, dass ich nicht berühren auf den klassischen „Religious“ Punkte:

tabs vs. spaces 
indentation style 
curly brace style 
etc... 

Konsistenz innerhalb einer Datei ist wichtig und verbessert die Lesbarkeit. Aber es ist auch wichtig, dass sich die Programmierer ausdrücken können. Wenn Sie also eine Datei bearbeiten, entsprechen Sie entweder der Religion dieser Datei oder konvertieren die gesamte Datei in ein neues, konsistentes Format. Wenn Sie die gesamte Datei konvertieren, übernehmen Sie tatsächlich die Verantwortung dafür. Seien Sie also darauf vorbereitet, die Go-to-Person zu sein, oder lassen Sie sie so wie sie ist.

0

Was die Nebenfrage, was Sie brauchen, ist eine statische Analyse-Tool. Ein teures und riesiges Werkzeug ist Klocwork. Ich habe es in einigen Geschäften verwendet und es kann so eingerichtet werden, dass es vor Stilproblemen warnt. Ich empfehle es nicht für einzelne Benutzer; es ist mehr für eine Unternehmensumgebung. Obwohl sie Versionen für Einzelpersonen abgespeckt haben könnten.

Denken Sie an Google für statische Analysetools.

3

Andere Antworten geben an, dass es keinen offiziellen Styleguide gibt, was damals richtig war.

Aber im Jahr 2015, Bjarne Stroustrup announced the C++ Core Guidelines, ein Open-Source-Projekt maßgebliche Leitlinien für moderne C++ Code zu bauen, angeführt von Stroustrup selbst und von der Standard-C++ Foundation veröffentlicht:

http://github.com/isocpp/CppCoreGuidelines

In Relevanz für diesen Frage, die Core-Richtlinien auch link to other guidelines, mit zusätzlichen Kommentaren. Über den oft empfohlenen Google C++ Style Guide sagen sie:

Geordnet in Richtung C++ 03 und (auch) älteren Code-Basen. Google-Experten arbeiten jetzt aktiv daran, diese Richtlinien zu verbessern und hoffentlich die Bemühungen zu bündeln, damit diese zu einem modernen Standard werden, den sie auch empfehlen können.