Coding Conventions: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Greitschus (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Langenfeld (Diskussion | Beiträge)
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 einzelheiten der Coding Conventions finden Sie bitte selbst heraus. Hier soll nur eine kurze Liste der wichtigsten Dinge benannt werden:
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>
* Interfaces: <tt>IUpperCamelCase</tt>
* [[Interface]]s: <tt>IUpperCamelCase</tt>
* Typ Parameter: <tt>TUpperCamelCase</tt>
* [[Generic|Typ Parameter]]: <tt>TUpperCamelCase</tt>
* Methoden, Properties und Events: <tt>UpperCamelCase</tt>
* [[Methode]]n, [[Property|Properties]] und Events: <tt>UpperCamelCase</tt>
* Lokale Variablen: <tt>lowerCamelCase</tt>
* 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]]