4.9 KiB
ToDo 49 — Cleanup vor Auslieferung
Dieser Cleanup wird als letzter Schritt vor einer Auslieferung durchgeführt, nachdem die funktionalen ToDos abgeschlossen sind. Einige Punkte sind bereits jetzt erledigbar, andere hängen von vorgelagerten ToDos ab.
1. ToDo-Dateien aufräumen
Vollständig erledigte ToDos löschen (alle Punkte [x], keine offenen):
doc/ToDo_1_Parsing.md— vollständig erledigtdoc/ToDo_2_Anbindung.md— vollständig erledigtdoc/ToDo_5_API.md— vollständig erledigtdoc/ToDo_8_Bugs.md— vollständig erledigt (nutzt✅-Marker statt[x])
Teilweise erledigte ToDos bereinigen:
doc/ToDo_7_Tests.md— erledigte Punkte entfernen, nur offene behalten
README.md-Tabelle anpassen:
- Zeilen der gelöschten ToDo-Dateien aus der Tabelle entfernen
- Prioritätsreihenfolge im README auf den aktuellen Stand bringen
2. README.md Review
- Alle Abschnitte auf Aktualität prüfen — insbesondere nach den Refactorings aus ToDo_1, ToDo_2, ToDo_5
robot/Robot.jsbeschreiben was es nach ToDo_12 ist (Alias →RobotBase)- Env-Variablen-Liste:
ROBOT_KINEMATICSundROBOT_KINEMATICS_PARAMSergänzen (nach ToDo_12 Phase 2) - Tippfehler
GRBL_ELLBOW_IPprüfen: ist das Legacy-Absicht oder korrigierbar? - Laufzeitvoraussetzungen:
logs/-Verzeichnis-Hinweis prüfen (nach ToDo_3 evtl. obsolet) - Einmal vollständig lesen und gegen den tatsächlichen Code abgleichen
3. Toter Code entfernen
Folgende Felder in robot/Robot.js werden nirgendwo im Projekt gelesen oder gesetzt
(Grep über alle .js ohne node_modules ergibt nur die Deklaration selbst):
this.speedX,this.speedY,this.speedZ— nie referenziertthis.doAnimate— nie referenziertthis.showFunctions— nie referenziertthis.lastCommandSend/this.oldCommandTime— gesetzt, nie gelesenthis.savedPoints,this.atPointNr— gesetzt, nie gelesen
Folgende Methoden in robot/GCode.js werden nie aufgerufen:
containsMCode()— hat einen Test, wird im Produktivcode aber nie aufgerufen; entweder integrieren oder entfernen (inklusive Test)receiveMCode()— nie aufgerufen, kann entfernt werden
4. robot/Robot.js Alias aufräumen (abhängig von ToDo_12 Phase 2)
robot/Robot.jszeigt nach Phase 1 aufArm3SegmentLinearX(Übergangsalias)- Nach Phase 2: auf
RobotBaseumzeigen:module.exports = require('./RobotBase'); - Kommentar in
robot/Robot.jsaktualisieren: Zweck des Alias erklären
5. Sicherheit: Zertifikate und private Schlüssel aus Git entfernen
Die folgenden Dateien liegen aktuell im Repository und sollten dort nicht sein:
https/localhost.key— privater Schlüsselhttps/localhost2.key— privater Schlüsselhttps/key.pem— privater Schlüsselhttps/localhost.pem— Zertifikathttps/cert_abcd.pfx— enthält privaten Schlüssel- Diese Dateien aus Git-History entfernen (
git filter-repooderBFG) .gitignoreumhttps/*.key,https/*.pem,https/*.pfx,https/*.cerergänzen- Eine
https/README.mdoderhttps/EXAMPLE.mdanlegen mit Anleitung zur Zertifikatserzeugung (z. B.opensslself-signed für lokale Entwicklung)
6. GCodeFiles/ aus Git entfernen
GCodeFiles/ enthält Nutzungsprotokolle aus 2025 — das ist Laufzeitdata, kein Quellcode.
.gitignoreumGCodeFiles/*.gcodeergänzen (oderGCodeFiles/log*.gcode)- Eine Beispieldatei
GCodeFiles/example.gcodeins Repository nehmen - Bestehende Log-Dateien aus Git-History entfernen (optional, je nach Sensitivität)
7. Naming-Inkonsistenz: WSSenderGrbl.js
WSSenderGrbl.jsexportiert eine Klasse namensTelnetSenderGRBL— das ist der alte Name aus der Telnet-Ära- Klasse in
WSSenderGrbl.jsumbenennen aufWSSenderGrbl - Alle Importe prüfen (aktuell:
startRobot.js, Tests)
8. Hilfsdateien prüfen
install.bat/runTest.bat— aktuell und korrekt? Oder löschen?sendTest_Client.py— gepflegt? Ins README erwähnen oder löschenhttps/info.txt— Inhalt prüfen; falls nur interne Notizen: löschenrobot/fluidnc/FluidNCClient.js— wird vonWSSenderGrbl.jsnicht mehr verwendet; entweder löschen oder als "experimentell/archiviert" kennzeichnen
9. Console.log-Hygiene
Der Code hat viele console.log-Aufrufe — einige sind wichtig, andere Debugging-Reste.
robot/Robot.jssendCommand(): ausführliches Log bei jedem Befehl — für Produktion eher aufdebug-Level oder hinter eineverbose-Flagrobot/GCode.js: Motor-Position-Log inreceiveMCode(ohnehin toter Code)- Sinnvolle Logs behalten (Verbindungsaufbau, Fehler, Start-Info)
- Kandidat für späteren Ausbau: leichtgewichtiger Logger statt nacktem
console.log(z. B. Log-Level via Env-Variable)