Skip to content
Snippets Groups Projects
Commit d0a7e8bb authored by Tom Tiltmann's avatar Tom Tiltmann
Browse files

add code conventions

parent af56ad4f
No related branches found
No related tags found
No related merge requests found
/*
Konventionen zur Namensgebung und Kommentierung im Quelltext
============================================================
* Klassen werden groß geschrieben. Alle Anfangsbuchstaben innerhalb des Klassennamens werden groß geschrieben.
* Variablennamen werden klein geschrieben.
* Membervariablen werden klein geschrieben.
* Funktionen/Methoden haben die gleiche Groß- und Kleinschreibung, wie Variablen.
* Konstanten bestehen nur aus Großbuchstaben, Wörter in den Konstantennamen werden durch "_" getrennt.
* Funktionen/Methodennamen enthalten Verben, Klassennamen enthalten Substantive.
* Kommentare für Funktionen/Methoden, falls überhaupt nötig, enthalten:
-- Eine allgemeins Beschreibung der Funktion/Methode
-- Eine Beschreibung jedes einzelnen Parameters
-- Eine Beschreibung des Rückgabewertes
-- Der zulässige Wertebereich der Parameter und der Wertebereich des Rückgabewertes
-- Besonderheiten (z.B. geworfene Exceptions,...)
* Auch Klassen können Kommentare enthalten, in denen Allgemeines über die Klasse steht.
* Alle Bezeichner auf Englisch. Alle Kommentare auf Deutsch!
* Einrückung nach VS Code Autoformatieren
* Variablennamen haben sprechende Namen, die durchaus etwas länger sein können.
Konventionen zur Programmierung
===============================
* In jede Headerdatei gehört : #ifndef.. #define.. #endif
* Jede Funktion/Methode soll nur eine Aufgabe übernehmen.
* Jede Funktion/Methode erhält die von ihr benötigten Daten per Parameter (am besten als Referenz)
-> damit werden die Funktionen/Methoden besser testbar
* Jede Funktion/Methode soll mit einem oder mehreren Unittests getestet werden, soweit das möglich ist.
*/
#ifndef CODE_CONVENTIONS_H
#define CODE_CONVENTIONS_H
#define KONST_TO_SHOW
class ClassForDemonstration
{
private:
byte member_example_1;
byte memberExample2;
public:
byte get_member_1() { return member_example_1; };
byte getMember2() { return memberExample2; };
void set_member_1(byte aValue) { member_example_1 = aValue; };
void setMember2(byte aValue) { memberExample2 = aValue; };
};
ClassForDemonstration demo_object;
void setup()
{
Serial.begin(115200);
}
void loop()
{
fill_object(demo_object);
serial_out_object(Serial, demo_object);
Serial.println();
}
void fill_object(ClassForDemonstration &aObject)
{
aObject.set_member_1(millis());
aObject.setMember2(millis());
}
void serial_out_object(Stream &aStream, ClassForDemonstration &aObject)
{
aStream.print(aObject.get_member_1());
aStream.print("\t");
aStream.print(aObject.getMember2());
}
#endif
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment