15.02.2023, 12:21 AM
Ich lass mich gerade belehren - von ChatGPT. Und bin beeindruckt. Diese Frage hab ich ihm gestellt:
Kannst du mir ein Beispiel geben, wie ich den folgenden Arduino-Code besser strukturieren und lesbarer machen kann?
// 2018-11-27: TN-Tochteruhr mit hochgenauer RTC [voller Code der Uhr angehängt]
Die Antwort von ChatGPT zeigt, dass er den Code und seinen Zweck voll erfasst :
Ja, hier sind einige Vorschläge, wie man den Code besser strukturieren und lesbarer machen kann:
Mann mann mann. Ich will mehr!
Kannst du mir ein Beispiel geben, wie ich den folgenden Arduino-Code besser strukturieren und lesbarer machen kann?
// 2018-11-27: TN-Tochteruhr mit hochgenauer RTC [voller Code der Uhr angehängt]
Die Antwort von ChatGPT zeigt, dass er den Code und seinen Zweck voll erfasst :
Ja, hier sind einige Vorschläge, wie man den Code besser strukturieren und lesbarer machen kann:
- Kommentare:
Kommentare sollten den Code erklären, aber nicht überflüssig sein. Die Kommentare sollten so geschrieben werden, dass der Code ohne Kommentare verständlich ist. In diesem Code sind viele Kommentare vorhanden, aber sie sind nicht immer notwendig oder klar.
Zum Beispiel könnte der Kommentar für byte led = 18; verbessert werden, indem man erklärt, wofür die LED verwendet wird, wie byte led = 18; // LED-Anzeige an Pin 18 oder noch besser const byte LED_PIN = 18; // Verwendet für Status-LED.
- Variablen:
Es ist gut, aussagekräftige Variablennamen zu verwenden, die den Zweck der Variablen beschreiben. Die Variablennamen in diesem Code sind kurz und nicht immer leicht verständlich. Bessere Namen würden die Lesbarkeit des Codes verbessern.
Zum Beispiel könnte die Variable TN1 umbenannt werden, um ihre Verwendung klarer zu machen, wie const byte COIL_PIN_A = 6; // Erster Ausgang für Uhrwerksspule.
- Einrückungen und Leerzeichen:
Es ist wichtig, den Code so zu formatieren, dass er leicht lesbar ist. Einrückungen und Leerzeichen helfen dabei, den Code zu strukturieren. In diesem Code gibt es einige Stellen, an denen die Einrückungen und Leerzeichen verbessert werden können.
Zum Beispiel sollte jede geschweifte Klammer {} in einer eigenen Zeile beginnen und eingerückt sein. Auch der Code innerhalb einer if-Anweisung sollte eingerückt werden, um die Struktur klarer zu machen.
Hier ist ein Beispiel:
Code:
if (digitalRead(power) == HIGH) {
if (PowerFlicker > 0) {
PowerFlicker--;
PowerFlag = false;
}
else {
PowerFlag = true;
}
}
else {
PowerFlag = false;
PowerFlicker = 30;
}
- Funktionen:
Funktionen können den Code in kleinere, leichter verständliche Teile aufteilen. In diesem Code ist alles in setup() und loop() enthalten, was es schwierig macht, den Code zu verstehen. Es ist besser, die Funktionen so zu benennen, dass ihre Verwendung klar ist, wie setupRTC() oder checkPower().
Hier ist ein Beispiel für eine Funktion, die den Minutenstack verarbeitet:
Code:
void processMinuteStack() {
if (minutes > 0 && minutes < 708) {
if (coilstatus == LOW) {
digitalWrite(COIL_PIN_A, HIGH);
coilstatus = HIGH;
}
else {
digitalWrite(COIL_PIN_B, HIGH);
coilstatus = LOW;
}
minutes--;
TotzeitFlag = true;
}
}
- Konstanten:
Konstanten sollten verwendet werden, um Werte zu speichern, die im Code mehrfach verwendet werden. Das macht den Code leichter verständlich und vermeidet Tippfehler. In diesem Code gibt es einige Stellen, an denen Konstanten verwendet werden könnten.
Zum Beispiel könnte die DS3231-Adresse als Konstante defini... [da brach er ab, Serverlast...]
Mann mann mann. Ich will mehr!