Das Problem mit Notebooks
Jupyter Notebooks sind ein hervorragendes Werkzeug für die explorative Datenanalyse.
Man sieht sofort Ergebnisse, kann schnell iterieren und Visualisierungen direkt im
Dokument einbetten. Für genau diesen Zweck sind sie gemacht.
Das Problem entsteht, wenn Notebooks zur Grundlage produktiver Systeme werden.
Symptome
- Zellen werden in falscher Reihenfolge ausgeführt, der Zustand ist nicht reproduzierbar
- Versionskontrolle mit git ist schwierig (JSON-Diff statt Code-Diff)
- Tests lassen sich kaum schreiben
- Wiederverwendung erfordert Copy-Paste
Der Gegenansatz
Ich strukturiere Data-Science-Projekte von Anfang an als normale Python-Pakete:
# statt: alles in einer Notebook-Zelle
# besser: klare Modulstruktur
from pipeline.data import load_measurement_data
from pipeline.features import extract_features
from pipeline.model import train_model
data = load_measurement_data("path/to/data.mdf")
features = extract_features(data)
model = train_model(features)
Vorteile
- Reproduzierbare Ausführung via
python -m pipeline.run - Testbare Einheiten mit
pytest - Versionierbar mit git (lesbares Diff)
- Wiederverwendbar als Import
Fazit
Notebooks gehören in die Explorations- und Kommunikationsphase, nicht in die
Produktionsarchitektur. Ein sauberes Python-Paket ist langfristig wartbarer,
testbarer und kolaborabler.
Das bedeutet nicht mehr Aufwand – es bedeutet, den Aufwand zum richtigen Zeitpunkt
zu investieren.