Wiki Pages

Gerne, hier ist dein Text formatiert als Markdown für ein GitLab-Wiki. GitLab-Wikis unterstützen Markdown sehr gut, und ich habe die Abschnitte mit Überschriften, Listen und Codeblöcken ausgestattet:

# Programmier-Konventionen

## Konventionen zur Namensgebung und Kommentierung im Quelltext

- **Variablennamen** werden klein geschrieben.  
  Beispiel:  
  ```cpp
  int counter;
  float userInput;
  • Variablennamen sind aussagekräftig und können auch etwas länger sein.
    Beispiel:

    double temperatureInCelsius;
  • Konstanten bestehen ausschließlich aus Großbuchstaben; Wörter im Konstantennamen werden durch Unterstriche (_) getrennt.
    Beispiel:

    const int MAX_CONNECTIONS = 10;
  • Funktionen und Methoden verwenden dieselbe Groß- und Kleinschreibung wie Variablen (klein geschrieben).
    Beispiel:

    int calculateSum(int a, int b);
  • Funktions- und Methodennamen enthalten Verben, die die Tätigkeit beschreiben.
    Beispiel:

    void sendData();
    bool isConnected();
  • Kommentare für Funktionen und Methoden (sofern nötig) enthalten:

    /**
     * Berechnet die Summe von zwei Ganzzahlen.
     *
     * @param a Erster Summand, Wertebereich: beliebige Ganzzahl
     * @param b Zweiter Summand, Wertebereich: beliebige Ganzzahl
     * @return Summe von a und b
     * 
     * @throws Keine
     */
    int calculateSum(int a, int b);
  • Alle Bezeichner sind auf Englisch zu verfassen, alle Kommentare hingegen auf Deutsch.
    Beispiel:

    int userAge;  // Alter des Benutzers in Jahren
  • Einrückungen erfolgen gemäß dem Autoformat der VS Code bzw. Arduino IDE.

  • Klassennamen beginnen mit einem Großbuchstaben; alle Anfangsbuchstaben innerhalb des Klassennamens sind groß geschrieben (PascalCase).
    Beispiel:

    class DataProcessor
  • Klassennamen enthalten Substantive.
    Beispiel:

    class Sensor;
    class UserManager;
  • Membervariablen werden klein geschrieben.
    Beispiel:

    class Sensor {
        private:
            int sensorValue;
    };
  • Klassen können Kommentare enthalten, die allgemeine Informationen über die Klasse liefern.

    /**
     * Die Klasse Sensor verwaltet den Zugriff auf den Temperatursensor.
     * Sie liest Werte ein und filtert diese.
     */
    class Sensor { ... };

Konventionen zur Programmierung

  • Jede Headerdatei verwendet das Include-Guard-Prinzip mit #ifndef, #define und #endif.
    Beispiel:

    #ifndef SENSOR_H
    #define SENSOR_H
    
    class Sensor { ... };
    
    #endif // SENSOR_H
  • Jede Funktion bzw. Methode übernimmt nur eine einzige Aufgabe.
    Beispiel:

    void readSensorData();    // nur Daten einlesen
    void processSensorData(); // nur Daten verarbeiten
  • Funktionen und Methoden erhalten die benötigten Daten über Parameter – idealerweise als Referenz.
    Beispiel:

    void updateValue(const int& newValue);
  • Dies verbessert die Testbarkeit der Funktionen und Methoden.

  • Jede Funktion und Methode wird, soweit möglich, mittels Unit-Tests überprüft.
    Beispiel (Google Test):

    TEST(CalculateSumTest, ReturnsCorrectSum) {
        EXPECT_EQ(calculateSum(2, 3), 5);
    }
  • Nach Fertigstellung erfolgt ein Review durch einen Kollegen.

Konventionen zur Anordnung

  • Die Reihenfolge der Includes folgt dem folgenden Schema:

    #include "MyClass.h"        // Eigene Headerdatei
    
    #include <stdio.h>          // C-Systemheader
    
    #include <vector>           // C++-Standardbibliothek
    
    #include <boost/algorithm/string.hpp> // Andere Bibliotheken
    
    #include "project_config.h"  // Projektheader

Du kannst diese Markdown-Datei direkt ins GitLab-Wiki kopieren und sie wird dort schön formatiert dargestellt.  
Falls du noch weitere Anpassungen möchtest, helfe ich gerne!