Wie arbeite ich mit einer Entwicklungsversion meiner Skripte?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
drnicolas
User
Beiträge: 87
Registriert: Sonntag 24. Juli 2016, 10:32

Ich habe vor Urzeiten ein Skript aus mehreren Modulen gemacht, welches seither produktiv eingesetzt wird.
Vorzugsweise wird mit incrond ein Verzeichnis überwacht und das Skript für neu eintreffende Dateien gestartet.
Funktioniert soweit, aber es werden immer noch Ver(schlimm)besserungen und neue FUnktionen eingefügt.

Es passiert also nahezu zwansgkäufig, daß eine unfertige Verbesserung das ganze System lahmlegt, da ich derzeit immer an der produktiven Version arbeite.

Ich wieß, dass das völliger Blödsinn sit, aber es ist aus der Situation entstanden.

Ich habe mich noch nie damit beschäftigt und suche jetzt eine Methode mit der ich
tatsächlich separat ein Skript weiterentwickeln, mit Testdaten sausprobieren und irgendwann produktiv schalten kann.

Ich arbeite mit VS Code. Kann mir jemand ein paar Ideen geben wie ich das lösen kann?

Merry christmas!!!
nezzcarth
User
Beiträge: 1638
Registriert: Samstag 16. April 2011, 12:47

Schau dir mal ein Versionskontrollsystem an. Heute wird überwiegend git verwendet.
Benutzeravatar
__blackjack__
User
Beiträge: 13122
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@drnicolas: Ich weiss jetzt nicht so recht was ich da an nicht-offensichtlichen Sachen sagen soll. Also erst mal: nicht an der Produktiv-Version herum editieren, sondern an einer Kopie. Dann einen Deployment-Prozess etablieren. Am besten automatisiert, das heisst per Skript oder Makefile oder ähnlichem einfach durchführbar machen, damit dabei möglichst wenig manuelle Fehler passieren können.

Versionskontrolle, also so etwas wie Git oder Mercurial, damit man eine Versionsgeschichte hat, und Punkte finden kann ab denen ein Fehler auftaucht(e) und auch einfach zu einer älteren Version zurück kann, falls ein hartnäckiger Fehler auftritt der vorher nicht da war, und das man vielleicht auch mal einen längeren Feature-Branch entwickeln kann, ohne sich die Möglichkeit zu nehmen Fehlerbehebungen oder andere kleinere Änderungen an der Version vorzunehmen die gerade produktiv ist.

Zum Testen verwende ich gerne Pytest. Einerseits sind einfache Tests damit super einfach geschrieben — eine passend benannte Funktion die ``assert`` benutzt um was zu überprüfen und schon hat man einen Unit-Test. Andererseits gibt es einem Werkzeuge an die Hand um parametrisierte Tests durchzuführen und Fixtures vorzubereiten. Und wenn ein Test fehlschlägt, macht es ”Magie” um viel Zusatzinformation zu liefern, beispielsweise welche Werte lokale Variablen und am Test beteiligte Ausdrücke hatten, um den Fehler leichter zu finden.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten