Haben Sie gute Ratschläge / Links zu einer Reihe von Codierungsstandards oder Best Practices, die Sie befolgen sollten?

8

Für diejenigen von uns, die genug programmiert haben, bin ich sicher, dass wir auf viele verschiedene Arten von Codierungsstandards gestoßen sind, die Sie verwenden können, wenn es um das Programmieren geht.

z.B. Ссылка

Sie können Ihre Codierungsstandards für das aktuelle Unternehmen, für das Sie arbeiten, oder den ursprünglichen Autor des Codes, an dem Sie arbeiten, ableiten. Codierungsstile werden häufig für bestimmte Programmiersprachen verwendet, und einige Stile in einer Codiersprache werden für andere möglicherweise nicht als geeignet erachtet. Natürlich können einige Codierungsstandards in vielen verschiedenen Programmiersprachen angewendet werden.

Danke für Ihre Zeit.

EDIT: Wie wir wissen, gibt es viele verwandte Artikel zu diesem Thema, aber C # Kodierungsstandard / Best Practices in SO haben einige sehr nützliche Links, die einen Besuch wert sind. (Überprüfen Sie die 2 Links auf .NET / C # -Richtlinien von ESV - Accepted Answer)

    
kevchadders 23.05.2017, 12:08
quelle

20 Antworten

12

Google hat einen Stilleitfaden für C ++ hier , den ich manchmal konsultiere. Lediglich das Lesen der Erklärungen und Überlegungen, auch wenn Sie mit einigen der Stile übereinstimmen oder nicht, kann Ihnen einige Dinge beibringen, an die Sie vielleicht nicht gedacht haben.

    
MahlerFive 20.02.2009, 09:07
quelle
8

Mein bester Rat in Bezug auf Kodierungsstandards: Lassen Sie sie nicht in die Quere kommen, wenn Sie versuchen, Arbeit zu erledigen.

Eine große Bürokratie könnte den Fortschritt in Projekten behindern, anstatt zu einer besseren Teamarbeit beizutragen. Wenn Leute sich beschweren, dass sie nicht die Kodierungsstandards anstelle der tatsächlichen Qualität des Codes befolgen, dann ist es zu viel Regulierung.

Anderenfalls wählen Sie einen aus den vielen Vorschlägen und versuchen so lange wie möglich dabei zu bleiben, um eine Codebasis zu erstellen, die einem einzigen Standard folgt, den Sie gewohnt sind.

    
HS. 20.02.2009 09:09
quelle
8

Kodierungsstandards sind gut, aber von Grund auf neu geschriebene Kodierungsstandards, in denen das Unternehmen das Rad neu erfindet, oder Kodierungsstandards, die von einem einzigen "Propheten" auferlegt werden, können schlimmer sein als überhaupt keine Kodierungsstandards.

Dies bedeutet:

  • Kodierungsstandards sollten diskutiert und vereinbart werden.
  • Das Kodierungsstandarddokument sollte die Gründe für jede Regel enthalten.
  • Kodierungsstandards sollten zumindest teilweise auf zuverlässigen Quellen basieren.

Die Quellen, die ich für die Sprachen in Ihren Tags kenne, sind:

  • Für C ++: Das Buch C ++ Coding Standards von Sutter / Alexandrescu.
  • Für C #: 4 oder 5 PDFs, die ich für C # Coding Standards gegoogelt habe:)
Daniel Daranas 20.02.2009 09:12
quelle
6

Adam Cogan hat eine Reihe von Regeln auf seiner Website. Es gibt Kodierungsrichtlinien, aber da gibt es noch viel mehr.

Adam Cogans Regeln zu verbessern ...

    
bruceatk 20.02.2009 12:58
quelle
5

Kodierungsstandards sind großartig. Wir haben Lance Hunts C # -Kodierungsstandards für .NET fast ohne Modifikationen verwendet

    
Marcus 20.02.2009 09:08
quelle
4

Wenn Sie Code pflegen, der weiterhin denselben Standard verwendet wie der ursprüngliche Code (es gibt nichts Schlimmeres, als ein Problem zu debuggen, wenn der Code higgildy piggeldy aussieht)

    
Martin York 20.02.2009 09:07
quelle
4

Einige Kommentare zum Beitrag, die einen Blick auf die Google C ++ - Richtlinien werfen. Detaillierte Diskussionen zu einigen Aspekten dieser Richtlinien finden Sie unter comp.lang.c ++. Moderiert .

Einige seltsame oder kontroverse Punkte sind:

  

Wir glauben nicht, dass das zur Verfügung steht   Alternativen zu Ausnahmen, wie z   Fehlercodes und Assertionen, einführen   eine erhebliche Belastung.

Als ob Assertionen eine brauchbare Alternative wären ... Behauptungen sind normalerweise für Programmierfehler und Situationen gedacht, die niemals passieren sollten, während Ausnahmen im Ausführungsfluss vorkommen können (etwas erwartet werden).

  

Referenzargumente: Alle Parameter   per Referenz übergeben werden muss beschriftet sein   const. ... In der Tat ist es sehr stark   Konvention, dass Eingabe Argumente sind   Werte oder const Referenzen während   Ausgabeargumente sind Zeiger.

Kein Kommentar, über Weasel Phrase eine sehr starke Konvention .

  

Arbeit in Konstruktoren: Nur tun   triviale Initialisierung in a   Konstrukteur. Wenn möglich, verwenden Sie   eine Init () - Methode für nicht-trivial   Initialisierung. ... Wenn dein Objekt   erfordert nicht-triviale Initialisierung,   Betrachten Sie eine explizite Init ()   Methode und / oder Hinzufügen eines Mitgliedsflags   das zeigt an, ob das Objekt war   erfolgreich initialisiert.

Ja ... 2-phasige Initialisierung, um Dinge einfacher zu machen ... Was passiert, wenn ich const Felder habe? Diese Regel ist wahrscheinlich die Auswirkung der Einstellung gegenüber Ausnahmen.

  

Streams nur für die Protokollierung verwenden

Welche Streams? IOStreams, Standard-C-Streams, andere?

Auf der einen Seite empfehlen sie, Makros nur in Ausnahmesituationen zu verwenden, während sie die Verwendung von DISALLOW_COPY_AND_ASSIGN empfehlen, um das Kopieren / Zuweisen zu verhindern. Sie könnten den Ansatz mit einer speziellen Klasse (wie in Boost) empfohlen haben

  

Überlasten Sie die Operatoren nur in seltenen Ausnahmefällen.

Was ist mit der Zuweisung oder arithmetischen Operatoren für numerische Berechnungen usw.?

  

Standardparameter sind schwieriger zu pflegen, weil Kopieren und   Einfügen aus vorherigem Code zeigt möglicherweise nicht alle Parameter an. Kopieren-und-   Das Einfügen von Codesegmenten kann zu schwerwiegenden Problemen beim Standard führen   Argumente sind für den neuen Code nicht geeignet.

Was? Kopieren / Einfügen aus dem vorherigen Code?

Denken Sie daran, dass das Lesen einer der Richtlinien zu einer Verzerrung Ihrer Denkweise führen kann. Und manchmal ist es nicht vorteilhaft für Sie oder Ihren Code. Ich stimme einigen anderen Beiträgen zu, die empfehlen, gute Bücher vorher von guten Autoren zu lesen. Wenn Sie genügend Wissen haben, können Sie sich die Richtlinien ansehen und leicht gute und schwache Punkte finden, ohne ein Chaos in Ihrem Gehirn zu verursachen;)

    
Anonymous 20.02.2009 10:18
quelle
3

Wenn Sie vorhaben, einen Code-Formatierungsstandard in ein bestehendes Programmierteam einzuführen, sollten Sie von jedem Teammitglied Informationen erhalten, damit diese sich "einkaufen" und mit größerer Wahrscheinlichkeit Code für diesen Standard schreiben.

>

Programmierstile sind genauso schwer zu ändern wie Gewohnheiten, und Sie müssen akzeptieren, dass manche Leute ihren Code nicht 100% ig zu 100% konform machen. Es wäre Ihre Zeit wert, Ihr Pretty-Printer-Programm zu finden (oder Ihr eigenes Programm zu schreiben) und regelmäßig Ihren gesamten Code durchzulaufen, um die Konsistenz zu gewährleisten. (Ich fühlte mich immer unwohl, wenn ich manuell Quellcodeänderungen eincheckte, die nur aus Formatierungskorrekturen für den Code anderer Leute bestanden; ich machte mir Sorgen, dass andere mich als Nitpicker bezeichnen würden.)

    
gary 20.02.2009 09:20
quelle
3

Nachdem Sie diese Frage gestellt haben . Ich fand, dass die akzeptierte Antwort für meine Bedürfnisse ausreichend war.

Ich stelle jedoch fest, dass dies kein einheitliches Szenario ist. Es gibt also eine große Menge an Informationen innerhalb des Threads, die Sie mehr oder weniger nützlich finden. Weel lesenswert!

    
TK. 20.02.2009 10:28
quelle
3

Für Java und andere Sprachen der C-Familie empfehle ich Sofware Monkey's Kodierungsstandards (natürlich, da sie mir gehören) ).

Halten Sie sie im Allgemeinen einfach und liefern Sie Beispiele und Begründungen für jede Anforderung.

    
Lawrence Dol 20.02.2009 09:13
quelle
2

Was im Standard ist, spielt nicht wirklich eine Rolle. Was zählt ist, dass Sie einen haben und dass Ihre Entwickler ihm folgen.

    
Joris Timmermans 20.02.2009 09:32
quelle
2

Es beantwortet die Frage nicht ganz, aber es ist erwähnenswert ...

Ich habe Steve McConnells Code Complete gelesen. Es gibt zwar keine vorgefertigten Codierungsstandards, aber es gibt viele gute Argumente für die verschiedenen Ansätze. Es wird dich über Dinge nachdenken lassen, an die du vorher nicht gedacht hast.

Es hat meine kleine Welt zum Besseren verändert.

    
Tom Duckering 20.02.2009 09:34
quelle
2

Coding-Standards selbst sind großartig und alles, aber was ich denke, ist viel, viel, viel wichtiger ist es, mit dem Stil des Codes, den Sie pflegen, zu bleiben. Ich habe gesehen, wie Leute einer Klasse eine Funktion in einer Richtung hinzufügen und ihren Codierungsstandard nur für diese Funktion erzwingen. Es ist widersprüchlich, es steht heraus, und es macht es meiner Meinung nach schwieriger, die Klasse "als Ganzes" zu genießen.

Wenn Sie Code pflegen, sehen Sie sich den Code an. Schau, was der Stil ist. K & amp; R-Hosenträger? Capital Camel Case-Methoden? Ungarisch? Zweizeilige Kommentarblöcke zwischen jeder Funktion? Was auch immer es ist, sollten Sie es auch in diesem speziellen Bereich tun.

Bevor ich gehe, möchte ich eine Sache erwähnen, die damit zusammenhängt - Benennen von Dateien. Ich bin hauptsächlich ein C ++ - Typ, also mag das nicht für was auch immer gelten, aber im Grunde geht es _.h oder .cpp. Also wäre Foo :: Bar in Foo_Bar.h. Übliche Dinge (d. H. Ein vorkompilierter Header) für den Foo-Namespace wären in Foo_common.h (beachte den Kleinbuchstaben). Natürlich ist das Geschmackssache, aber alle, die damit gearbeitet haben, haben sich dafür ausgesprochen.

    
arke 30.04.2010 08:32
quelle
1

Ich denke Code Craft - Die Praxis des Schreibens von Excellent Code fasst es ziemlich gut zusammen

    
Michael Pralow 20.02.2009 09:07
quelle
1

Sehr beliebt sind Ellemtel-Regeln für C ++.

    
Marcin Gil 20.02.2009 09:09
quelle
1
1

Die Antworten hier sind ziemlich vollständig, so dass ich nicht auf ein anderes Coding-Standarddokument hinweise. Sobald Sie jedoch beschlossen haben, bei einem Stil zu bleiben, sollten Sie einen automatischen Codierungsstil-Enforcer in Ihrem Team verwenden.

Für Java gibt es checkstyle und für .NET Microsoft Style Cop .

Hier finden Sie eine ähnliche Diskussion über Stackoverflow: C # Coding-Standard / Best Practices

    
olli-MSFT 20.02.2009 09:38
quelle
1

Camel und Pascal Casing allein lösen viele Probleme mit dem Coding-Standard

    
Karthik Ratnam 05.12.2010 15:21
quelle

Tags und Links