Entwicklerleitfaden / Leitfaden Codestyle

Allgemeine Hinweise

  • Sprechende Namen verwenden
  • Zeilenumbruch nach Operator, Komma; Einrücken nach Zeilenumbruch
  • Leerzeilen verwenden, um logische Einheiten voneinander zu trennen und Deklarationen von Anweisungen abzusetzen
  • keine ungarische Notation
      

General references

  • use significant names
  • Line break after operator, comma; indent after line break
  • Use blank lines to separate logical units from each other and to declare statements
  • no Hungarian notation

Codeelemente .NET

CodeelementSpracheSchreibweiseHinweise & Beispiele
KlasseEngl.PascalCaseEine Klasse pro Datei
Darstellung

Aufbau von Klassen, Klassen/Interface-Deklaration, Felder, Properties, Konstruktor, Methoden.
Pro Datentyp 1 View.
InterfaceEngl.PascalCase

public IMyInterface
#Name beginnt mit I

FeldnameEngl.PascalCase

public String InvNumber {get; set; }

MethodeEngl.PascalCasepublic void Calculation
#Aktive Verb-Nomen-Form
VariableEngl.CamelCaseString invoiceNumber
InstanzvariableEngl.CamelCaseprivate String invoiceNumber
#keinen führenden Unterstrich
ParameterEngl.CamelCaseDoCalculation(int cntPos, decimal pricePos)
KonstantenEngl.PascalCaseconst int NumDaysOfWeek =  4
EventsEngl.PascalCaseMouseEventHandler(object sender, MouseEventsArgs e)
GUIDt.PascalCase
KomponenteEngl.PascalCase
DB-TabelleEngl.Lowercasepublic String eq_invNumber {get; set; }
DB-SpalteEngl.Kleinschreibunglastname_new
#nicht EmployeeLastName
KommentareDt. / Engl.-Bei neuralgischen Punkten in Englisch kommentieren

Codeelemente Python

CodeelementSpracheSchreibweiseHinweise & Beispiele
KlasseEngl.LowercaseEine Klasse pro Datei
DarstellungEngl.
Aufbau von Klassen, Klassen/Interface-Deklaration, Felder, Properties, Konstruktor, Methoden
FeldnameEngl.Lowercaseeq_invnumber
MethodeEngl.Lowercasedef myfunction(self):
VariableEngl.Lowercaseeq_invoicenumber
InstanzvariableEngl.Lowercase_eq_invoicenumber
ParameterEngl.Lowercasesprechende Namen verwenden
KonstantenEngl.UppercaseCONST_DATA = 4
DB-TabelleEngl.Lowercaseeq_datatable oder eq_data.table (eq_ Präfix)
DB-SpalteEngl.Lowercaseeq_lastname (eq_ Präfix)
KommentareDt. / Engl.-Bei neuralgischen Punkten in Englisch kommentieren

Code elements .NET (engl.)

Code elementLanguageDictionReferences & Samples
Classengl.PascalCaseOne class per file.
Viewengl.-Structure of classes, class/interface declaration, fields, properties, constructor, methods.
One view per data type.
Interfaceengl.PascalCasepublic IMyInterface
#Name begins with I
Field nameengl.PascalCasepublic String InvNumber {get; set; }
Methodengl.PascalCasepublic void Calculation
#Active verb-nomenal form
Variabelengl.CamelCaseString invoiceNumber
Instance variableengl.CamelCaseprivate String invoiceNumber
#no leading underscore
Parameterengl.CamelCaseDoCalculation(int cntPos, decimal pricePos)
Constantsengl.PascalCaseconst int NumDaysOfWeek =  4
Eventsengl.PascalCaseMouseEventHandler(object sender, MouseEventsArgs e)
GUIger.PascalCase
Componentengl.PascalCase
DB tableengl.Lowercasepublic String eq_invNumber {get; set; }
DB columnengl.Lowercaselastname_new
#not EmployeeLastName
Commentsger. / engl.CamelCaseBei neuralgischen Punkten in Englisch kommentieren

Code elements Python (engl.)

Code elementLanguageDictionReferences & Samples
Classengl.LowercaseOne class per file. Use the eq_{classname} prefix
View

Structure of classes, class/interface declaration, fields, properties, constructor, methods
Field nameengl.Lowercaseeq_invnumber
Methodengl.Lowercasedef myfunction(self):

Variabelengl.Lowercaseeq_invoicenumber
Instance variableengl.Lowercase_eq_invoicenumber
Parameterengl.Lowercaseuse significiant names
Constantsengl.UppercaseCONST_DATA = 4
DB tableengl.Lowercaseeq_datatable or eq_data.table (eq_ prefix)
DB columnengl.Lowercaseeq_lastname (eq_ prefix)
Commentsger. / engl.-In areas where difficulties may occur use english

Leitfaden View-Kommentare

ElementBenennung
Labellbl {name}
Texttxt {name}
Checkboxcbx {name}
Divdiv {name}
Dropdownddl {name}
Buttonbtn {name}
Tabletbl {name}
Radiobuttonrdb {name}
Imageimg {name}

View Comments Guide (engl.)

ElementNaming
Labellbl {name}
Texttxt {name}
Checkboxcbx {name}
Divdiv {name}
Dropdownddl {name}
Buttonbtn {name}
Tabletbl {name}
Radiobuttonrdb {name}
Imageimg {name}

Leitfaden XML-Kommentare

XML TagKlasseMethodeFeldBeschreibung / Beispiel
<summary>xxxEine Zusammenfassung des Objekts
<summary>Ermitteln Rechnungssumme</summary>
<returns>
x
Eine Beschreibung des Rückgabewertes
<returns>Rechnungssumme</returns>
<params>
x
Name und Beschreibung des Parameters
<param name="InvNo">Rechnungsnummer</param>
<type param>
x
Name und Beschreibung des Typparameters
<typeparam name="T">Typelement</typeparam>
<exception>xx
Beschreibung und Verweis auf verwendete Ausnahme
<exception cref="System.Exception"> Ausnahme wenn...</exception>
<value>

xBeschreibung für die Eigenschaft
<value>Kundennummer</value>


XML Comments Guide (engl.)

XML TagClassMethodFieldDescription / Sample
<summary>xxxA summary of the object
<summary>Determine invoice amount</summary>
<returns>
x
A description of the return value
<returns>invoice amount</returns>
<params>
x
Name and description of the parameter
<param name="InvNo">invoice number</param>
<type param>
x
Name and description of the type parameter
<typeparam name="T">Typelement</typeparam>
<exception>xx
Description and reference to exception used
<exception cref="System.Exception"> Exception if...</exception>
<value>

xDescription for the property
<value>customer number</value>

Leitfaden für Commit Kommentare innerhalb der Versionsverwaltung

Logische und funktional zusammenhängende Änderungen separat mit einem sprechenden Commit Kommentar einchecken. Auch mehrmals täglich.

Form des Commit Kommentars:

  •  Erste Zeile mit einzeiliger Zusammenfassung (Betreff)
  •  Leerzeile
  •  Ausführliche Beschreibung der Änderungen

Commit comments guide within version management (engl.)

Check in logical and functionally related changes separately with a talking commit comment. Also several times a day.

Commit comment form:

  • First line with single-line summary (subject)
  • blank row
  • Detailed description of the changes

Abhängigkeiten/Dependencies

Um in der Entwicklung den Überblick behalten zu können, warum bestimmte Abhängigkeiten zu anderen Modulen notwendig sind, sollen die Abhängigkeiten im unteren Bereich der Modulbeschreibung des jeweiligen Moduls folgendermaßen gepflegt werden:

Abhängigkeit zu ModulBeschreibung
Modulname

Kurze Beschreibung was das Modul "Modulname" macht.

Ansichtenbearbeitung:

Ansichten IDinherit_idDatenmodellFeld (optional)Beschreibung
ID der Ansichtinherit_id der ViewDatenmodell der ViewHinzugefügtes Feld, falls ein Feld hinzugefügt wurdeBeschreibung: Was wurde erweitert/ersetzt/hinzugefügt ?!

Dependencies (engl.)

In order to keep track of why certain dependencies to other modules are necessary in development, the dependencies in the lower part of the module description of the respective module should be maintained as follows:

Dependency on moduleDescription
Modul name

Short description of what the module "module name" does.

View editing:

View IDinherit_idData modelField(optional)Description
ID of the Viewinherit_id of the ViewData model of the ViewAdded field if a field has been addedDescription: What has been expanded/replaced/added?