Coding Conventions: Unterschied zwischen den Versionen
Aus Das Sopra Wiki
Keine Bearbeitungszusammenfassung |
K Änderungen von Dietsch (Diskussion) wurden auf die letzte Version von Greitschus zurückgesetzt Markierung: Zurücksetzung |
||
| (9 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 6: | Zeile 6: | ||
Die Coding Conventions, die Sie im SoPra verwenden, werden durch das Visual Studio Plugin Resharper (im [[Downloads|Downloadbereich]] herunterladbar) durchgesetzt. Jeder Teilnehmer des Softwarepraktikums hat sich an diese Coding Conventions zu halten. Die Coding Conventions für ReSharper sind in der Datei [[Datei:UserSettings.zip]] enthalten. Eine Installationsanleitung für die benutzerspezifischen Einstellungen befindet sich [[Downloads#ReSharper|hier]]. Es ist wichtig, dass Ihr Programm keine Warnungen und Fehlermeldungen von ReSharper enthält (vgl. [[Anforderungen#Technische Anforderungen|Technische Anfoderungen]]). | Die Coding Conventions, die Sie im SoPra verwenden, werden durch das Visual Studio Plugin Resharper (im [[Downloads|Downloadbereich]] herunterladbar) durchgesetzt. Jeder Teilnehmer des Softwarepraktikums hat sich an diese Coding Conventions zu halten. Die Coding Conventions für ReSharper sind in der Datei [[Datei:UserSettings.zip]] enthalten. Eine Installationsanleitung für die benutzerspezifischen Einstellungen befindet sich [[Downloads#ReSharper|hier]]. Es ist wichtig, dass Ihr Programm keine Warnungen und Fehlermeldungen von ReSharper enthält (vgl. [[Anforderungen#Technische Anforderungen|Technische Anfoderungen]]). | ||
Die genauen | Die genauen Einzelheiten der Coding Conventions finden Sie bitte selbst heraus. Hier soll nur eine kurze Liste der wichtigsten Dinge benannt werden: | ||
== Namenskonventionen == | == Namenskonventionen == | ||
| Zeile 12: | Zeile 12: | ||
Die folgenden Namenskonventionen sind einzuhalten: | Die folgenden Namenskonventionen sind einzuhalten: | ||
* Typen und Namespaces: <tt>UpperCamelCase</tt> | * [[Datentyp|Typen]] und [[Namensraum|Namespaces]]: <tt>UpperCamelCase</tt> | ||
* | * [[Interface]]s: <tt>IUpperCamelCase</tt> | ||
* Typ Parameter: <tt>TUpperCamelCase</tt> | * [[Generic|Typ Parameter]]: <tt>TUpperCamelCase</tt> | ||
* | * [[Methode]]n, [[Property|Properties]] und Events: <tt>UpperCamelCase</tt> | ||
* Lokale | * Lokale [[Variable]]n: <tt>lowerCamelCase</tt> | ||
* Lokale Konstanten: <tt>lowerCamelCase</tt> | * Lokale [[Variable#Konstanten|Konstanten]]: <tt>lowerCamelCase</tt> | ||
* Parameter: <tt>lowerCamelCase</tt> | * [[Methode#Parameter|Parameter]]: <tt>lowerCamelCase</tt> | ||
* Felder (nicht private): <tt>mUpperCamelCase</tt> | * [[Klasse|Felder]] (nicht private): <tt>mUpperCamelCase</tt> | ||
* Instanzvariablen (private): <tt>mUpperCamelCase</tt> | * Instanzvariablen (private): <tt>mUpperCamelCase</tt> | ||
* Statische Felder (nicht private): <tt>sUpperCamelCase</tt> | * Statische Felder (nicht private): <tt>sUpperCamelCase</tt> | ||
* Konstante Felder (nicht private): <tt>UpperCamelCase</tt> | * Konstante Felder (nicht private): <tt>UpperCamelCase</tt> | ||
* Konstante Felder (private): <tt>UpperCamelCase</tt> | * Konstante Felder (private): <tt>UpperCamelCase</tt> | ||
* Statische Readonly Felder (nicht private): <tt>sUpperCamelCase</tt> | * Statische [[Modifizierer|Readonly]] Felder (nicht private): <tt>sUpperCamelCase</tt> | ||
* Statische Readonly Felder (private): <tt>sUpperCamelCase</tt> | * Statische Readonly Felder (private): <tt>sUpperCamelCase</tt> | ||
* Enum Member: <tt>UpperCamelCase</tt> | * [[Enum]] Member: <tt>UpperCamelCase</tt> | ||
* Alles andere: <tt>UpperCamelCase</tt> | * Alles andere: <tt>UpperCamelCase</tt> | ||
== Klammerung == | |||
* Geschweifte Klammern stehen immer alleine in einer Zeile (einzige Ausnahme sind einzeilige [[Property|Properties]]). Beispiel: | |||
<source lang="csharp"> | |||
class Class1 | |||
{ | |||
private int mVariable; | |||
// Braces in methods | |||
int Main() | |||
{ | |||
int a = 3; | |||
if (a < 3) | |||
{ | |||
return 1; | |||
} | |||
else | |||
{ | |||
return 0; | |||
} | |||
} | |||
// Single-line Property | |||
public int Variable | |||
{ | |||
get { return mVariable; } | |||
set { mVariable = value; } | |||
} | |||
} | |||
</source> | |||
* Runde Klammern (zum Beispiel bei der Verwendung von Parametern) haben keine Leerzeichen nach dem Öffnen der Klammer: | |||
<source lang="csharp"> | |||
void Method(string s) | |||
{ | |||
} | |||
</source> | |||
== Sprache im Code == | |||
Die vornehmliche Sprache für alles, was mit dem Quelltext zu tun hat, ist Englisch. Das bedeutet, dass alle Variablen-, Methoden- und Klassenvariablen englisch benannt werden, um die Verständlichkeit des Codes zu erhöhen. Auch für Kommentare wird Englisch empfohlen, ist hier jedoch nicht ganz so wichtig. | |||
[[Kategorie:Begriffe]] | [[Kategorie:Begriffe]] | ||
[[Kategorie:Entwurf]] | [[Kategorie:Entwurf]] | ||
[[Kategorie:MS01]] | [[Kategorie:MS01]] [[Kategorie:Code-Beispiele]] | ||
