C # -Namenskonventionen für Akronyme

75

Wenn ich in Bezug auf die C # -Nennung für Akronyme eine Bibliothek im Zusammenhang mit der Windows-API schreibe, gibt es eine starke Konvention in Bezug auf WindowsApi oder WindowsAPI oder handelt es sich nur um eine persönliche Präferenz?

deltanovember
quelle

Antworten:

81

Es gibt eine Konvention, die für alle Akronyme, die länger als 2 Zeichen sind, den Anfangsbuchstaben in Großbuchstaben und den Rest in Kleinbuchstaben angibt. Daher HttpContextund ClientID.

David Hedlund
quelle
29
Id - ist vorzuziehende Großschreibung. "Zwei andere gebräuchliche Begriffe gehören zu einer Kategorie für sich, da es sich um gebräuchliche Slang-Abkürzungen handelt. Die beiden Wörter" Ok "und" Id "(und sie sollten wie gezeigt in Groß- und Kleinschreibung geschrieben werden) sind die Ausnahmen von der Richtlinie, die Nr Abkürzungen sollten in Namen verwendet werden ". "Framework Design Guidelines" 2. Auflage, S.44.
Sergey Teplyakov
34
Jemand bemerkte, dass die ID wieder in Ordnung wäre, wenn ID für "Datum identifizieren" (anstelle von "Kennung") stehen würde. Entschuldigung, wieder ok.
Peterchen
3
@Sergey Teplyakov Laut Microsoft-Richtlinien wird Pascal nur für Abkürzungen mit mehr als 2 Zeichen verwendet. Im Fall von ID und OK sind alle Großbuchstaben in Ordnung, HTML wird jedoch zu HTML. msdn.microsoft.com/en-us/library/141e06ef(v=VS.71).aspx
smdrager
6
@smdrager: Um fair zu sein, wird dies nur ausdrücklich für Akronyme empfohlen, nicht für Abkürzungen.
David Hedlund
7
Es ist anzumerken, dass Microsoft selbst diese Konvention nicht sehr streng befolgt. Zum Beispiel verwenden sie Db Kontext an einigen Stellen bei der Verwendung von DB in anderer Null.
Tom Pažourek
44

" Framework Design Guidelines " 2. Auflage von Krzysztof Cwalina und Brad Abrams S. 40-42

3.1.2 Großschreibung von Akronymen

Schreiben Sie beide Zeichen in Großbuchstaben, mit Ausnahme des ersten Wortes eines Kamelkennzeichens.

System.IO
public void StartIO(Stream ioStream)

DO nutzt nur das erste Zeichen der Abkürzungen mit drei oder mehr Zeichen, außer dem ersten Wort eines Kamel gefassten Identifikator.

System.Xml
public void ProcessHtmlTag(string htmlTag)

Großschreiben Sie KEINE Zeichen von Akronymen, unabhängig von ihrer Länge, am Anfang einer Kennung in Kamelhülle.

Sergey Teplyakov
quelle
3
Ich bekomme immer Kopfschmerzen, wenn ich diese seltsame Regel "Großbuchstaben mit 2 Buchstaben" sehe. Es sieht so aus, als hätte Microsoft erkannt, dass System.IO falsch benannt wurde, und beschlossen, eine Regel zu erstellen. Aber wie benennt man die Kennung von Microsoft Visual Studio? MSVSID? Ich sage, MsVsId wäre viel besser / konsistenter gewesen.
Johan
Leider folgen sie nicht ihren eigenen Namenskonventionen. Schauen Sie sich die Verwendung von Dto in diesem Artikel an: docs.microsoft.com/en-us/aspnet/web-api/overview/data/…
ataravati
Weiß jemand, warum um alles in der Welt die 2-Buchstaben-Regel entstanden ist? Was ist der Grund dafür?
rory.ap
14

Überprüfen Sie die offiziellen Dokumente von Microsoft zu Benennungsrichtlinien und Großschreibungskonventionen :

Um Wörter in einem Bezeichner zu unterscheiden, schreiben Sie den ersten Buchstaben jedes Wortes im Bezeichner groß. Verwenden Sie keine Unterstriche, um Wörter oder irgendwo in Bezeichnern zu unterscheiden. Abhängig von der Verwendung des Bezeichners gibt es zwei geeignete Möglichkeiten, Bezeichner groß zu schreiben:

  • PascalCasing
  • camelCasing

Die PascalCasing- Konvention, die für alle Bezeichner außer Parameternamen verwendet wird, aktiviert das erste Zeichen jedes Wortes (einschließlich Akronyme mit einer Länge von mehr als zwei Buchstaben), wie in den folgenden Beispielen gezeigt:

  • PropertyDescriptor
  • HtmlTag

Ein Sonderfall wird für aus zwei Buchstaben bestehende Akronyme gemacht, bei denen beide Buchstaben groß geschrieben werden, wie in der folgenden Kennung gezeigt:

  • IOStream

Die camelCasing- Konvention, die nur für Parameternamen verwendet wird, aktiviert das erste Zeichen jedes Wortes mit Ausnahme des ersten Wortes, wie in den folgenden Beispielen gezeigt. Wie das Beispiel auch zeigt, sind Akronyme aus zwei Buchstaben, die mit einer Kennung in Kamelhülle beginnen, beide Kleinbuchstaben.

  • propertyDescriptor
  • ioStream
  • htmlTag

Verwenden Sie PascalCasing für alle öffentlichen Mitglieder-, Typ- und Namespace-Namen, die aus mehreren Wörtern bestehen.

Verwenden Sie camelCasing für Parameternamen.

Feryt
quelle
4
Dieses Dokument ist für .NET 1.1.
Daniel A. White
8
Ich sehe nicht, welchen Unterschied das macht? Es ist nicht so, dass sie die Konventionen zwischen den einzelnen Versionen oder irgendetwas geändert haben.
Skurmedel
2
Es gibt eine zweite Ausgabe des Entwurfsrichtlinienbuchs. Ich habe nicht verglichen, um festzustellen, dass es überhaupt keine Änderungen bei der Benennung gibt.
John Saunders
2
.NET 4.5-Richtlinien zur Großschreibung: msdn.microsoft.com/en-us/library/ms229043(v=vs.110).aspx
grahamesd
2
Die Praktiken von Microsoft haben sich im Laufe der Zeit geändert. - Wenn auch subtil. - Wie andere bereits erwähnt haben, "DBNull" aus .NET 1.1 im Vergleich zu "DbContext" in .NET 4.5.
BrainSlugs83
12

Alte Frage, neue Antwort.

Gemäß .NET 4 Großschreibungsregeln für Akronyme :

Großschreiben Sie beide Zeichen von Akronymen mit zwei Zeichen, mit Ausnahme des ersten Wortes einer Kennung in Kamelhülle.

Eine benannte Eigenschaft DBRateist ein Beispiel für ein kurzes Akronym ( DB), das als erstes Wort eines Bezeichners mit Pascal-Gehäuse verwendet wird. Ein benannter Parameter ioChannelist ein Beispiel für ein kurzes Akronym ( IO), das als erstes Wort einer Kennung in Kamelhülle verwendet wird.

Schreiben Sie nur das erste Zeichen von Akronymen mit drei oder mehr Zeichen in Großbuchstaben, mit Ausnahme des ersten Wortes einer Kennung in Kamelhülle.

Eine benannte Klasse XmlWriterist ein Beispiel für ein langes Akronym, das als erstes Wort eines Bezeichners mit Pascal-Hülle verwendet wird. Ein benannter Parameter htmlReader ist ein Beispiel für ein langes Akronym, das als erstes Wort eines Kamelkennzeichens verwendet wird.

Großschreiben Sie keine der Zeichen von Akronymen, unabhängig von ihrer Länge, am Anfang einer Kennung in Kamelhülle.

Ein benannter Parameter xmlStreamist ein Beispiel für ein langes Akronym ( xml), das als erstes Wort eines Kamelkennzeichens verwendet wird. Ein benannter Parameter dbServerNameist ein Beispiel für ein kurzes Akronym ( db), das als erstes Wort einer Kennung in Kamelhülle verwendet wird.

ElliotSchmelliot
quelle
8

Ich habe gehört, dass Sie Abkürzungen vermeiden sollten, damit es WindowsApplicationProgrammingInterfacedann wird.

Ernsthafter (Leute scheinen das Obige trotz des Zitats unten falsch zu lesen), diese Seite sagt:

Alle Akronyme mit drei oder mehr Buchstaben sollten Pascal-Groß- und Kleinschreibung sein, nicht alle Großbuchstaben.

Da API als bekanntes Akronym angesehen wird, müssen Sie den Namen WindowsApiauswählen, wenn Sie den Richtlinien folgen möchten.

entspannen
quelle
5
Abkürzungen sind in Ordnung, wenn sie innerhalb der Domain bekannt sind. API ist in der Programmierung bekannt.
John Saunders
+1. Im Framework-Richtlinienbuch wird empfohlen, entweder Abkürzungen oder Akronyme zu vermeiden oder PascalCase zu verwenden. Ich würde WindowsApi vorschlagen. Beispiel aus dem Framework: Uri, UriBuilder HtmlDecode.
Skurmedel
1
@ John: Ja, ich war ein bisschen nervös. :)
entspannen Sie sich am
@unwind - bedeutet das, dass wir HTML anstelle von HyperTextMarkupLanguage verwenden können?
Larry Watanabe
-1: aus den Richtlinien für das Framework-Design: "Im Allgemeinen ist es wichtig, die Verwendung von Akronymen in Bezeichnernamen zu vermeiden, es sei denn, sie werden allgemein verwendet und sind für jeden, der das Framework möglicherweise verwendet, sofort verständlich. Beispielsweise sind HTML, XML und E / A. alle gut verstandenen, aber weniger bekannten Akronyme sollten auf jeden Fall vermeidbar sein ". API - wird häufig verwendet und ist sofort verständlich.
Sergey Teplyakov
4

Es ist alles nur eine persönliche (oder organisatorische) Präferenz. Solange Sie konsequent sind, werden Sie in Ordnung sein.

Das .NET Framework selbst würde WindowsApi verwenden.

John Saunders
quelle
Dies. Hatte gerade ein Beispiel, in dem ein Geschäftsakronym von APP als "App" verwendet wurde und jetzt eher wie eine Abkürzung für "Application" als wie die eigentliche Bedeutung aussieht.
SierraOscar
3

Seine persönliche Präferenz. Aber .NET würde verwenden WindowsApi. Es ist vergleichbar mit der Benennung von TcpClient.

Daniel A. White
quelle
1

Schauen Sie sich auch FxCop an. Es ist ein nettes Dienstprogramm, das bei solchen Problemen hilft.

Tim Scarborough
quelle