hilfmirmal.de 3 slots · Q2/2026
Dossier / № 001 — Beispiel 02
Code verstehen
Port Louis → Brandenburg

Wenn man den Code zwar
hat — aber nicht weiß,
was er macht.02

Der Klassiker aus dem Alltag der „Ich-bin-eigentlich-kein-Entwickler"-Kundschaft: Eine Agentur hat vor zwei Jahren ein kleines Skript gebaut, das jeden Morgen Rechnungen aus lexoffice zieht. Die Agentur gibt es nicht mehr. Das Skript läuft. Solange es läuft, ist alles gut. Aber morgens, wenn nicht — Schweißausbruch.

Markdown versus HTML — derselbe Code, zwei Antworten

Markdown — die übliche Erklärung

„Das Skript importiert das Modul requests, definiert eine Funktion hole_offene_rechnungen(), ruft eine URL mit Authentifizierungs-Headern auf, parst die JSON-Antwort und filtert per List-Comprehension auf status == 'open'."

Korrekt. Hilfreich? Eher nicht.

HTML — eine Karte zum Code

Der Code links, die Erklärung rechts in Klartext, unten ein Glossar zum Aufklappen, oben eine Mini-Zusammenfassung in zwei Sätzen. So liest man das Skript wie eine bebilderte Anleitung — nicht wie ein Telegramm aus dem Maschinenraum.

Die ausführliche HTML-Variante

CODE-WALKTHROUGH · RECHNUNG-ABRUFEN.PY

In drei Sätzen: Dieses Skript holt sich jeden Morgen die Liste aller offenen Rechnungen aus lexoffice. Es schickt eine Anfrage an die lexoffice-Schnittstelle, bekommt eine lange Liste mit Belegen zurück und gibt nur die zurück, die noch nicht bezahlt sind. Ohne Magie, ohne Datenbank.

import requests
from datetime import date

# Schritt 1 — Zugangsdaten
AUTH = {"Authorization": "Bearer " + TOKEN}

def hole_offene_rechnungen():
    # Schritt 2 — Anfrage
    url = "https://api.lexoffice.io/v1/voucherlist"
    res = requests.get(url, headers=AUTH)

    # Schritt 3 — Antwort lesen
    daten = res.json()

    # Schritt 4 — Nur offene
    return [v for v in daten if v["status"] == "open"]

SCHRITT 1

Das Skript bringt seinen Ausweis mit. Ohne den lässt lexoffice niemanden rein.

SCHRITT 2

Es ruft die Liste aller Belege ab — wie ein Telefonbuch mit allen Einträgen.

SCHRITT 3

Die Antwort kommt im Format JSON — das versteht Python von Haus aus.

SCHRITT 4

Es bleiben nur Belege übrig, deren Status „open" ist. Bezahltes interessiert hier nicht.

Glossar — kurz und schmerzlos

requests — Werkzeug, mit dem Python im Internet anfragen kann.
Bearer-Token — eine Art Hausschlüssel für die Schnittstelle.
JSON — das gängige Format, in dem Webdienste Daten weitergeben.
List-Comprehension — Python-Kurzschrift für „nimm nur das, was passt".

Was bringt das eigentlich?

Wer den Code im Notfall nicht selbst ändern können muss, sollte ihn trotzdem verstehen — schon allein, um dem nächsten Dienstleister sagen zu können, wo es klemmt. Mit der HTML-Variante bekommt man die Karte zum Skript dazu. Die legt man neben die Datei, druckt sie notfalls aus, packt sie in den Ordner „Backoffice / Skripte / Doku".

Und wenn man drei Monate später anruft, weil das Skript morgens streikt, dann sagt man nicht „irgendwas mit Belegen geht nicht", sondern „Schritt 2 wirft einen Fehler — bekommt vom Server keine Antwort". Damit hat der Entwickler am anderen Ende der Leitung deutlich bessere Karten.

← Zurück zum Eintrag   Beispiel № 03 — Design-Ideen

Eriks Bot