3.2 KiB
3.2 KiB
Auftrag: Quelldatei in Einheiten zerlegen
Du bekommst unten den vollständigen Inhalt der Datei <DATEI> aus einem
Python-Projekt. Zerlege sie in Einheiten und gib GENAU EINE Markdown-Datei im
unten definierten Format zurück — nichts davor, nichts danach, keine Code-Fences
um das Gesamtergebnis.
Was ist eine Einheit
Das Kleinste mit eigener Verantwortung, das sich in einem Satz beschreiben lässt — meist eine Funktion oder Klasse; mehrere kleine, zusammengehörige Symbole dürfen eine Einheit bilden. Jede Funktion/Klasse der Datei gehört zu genau einer Einheit (MECE). Modul-Konstanten und Imports darfst du unzugeordnet lassen.
Ausgabeformat (exakt einhalten)
# Einheiten: <DATEI>
stand: UNBEKANNT
## <DATEI>::<hauptsymbol>
beschreibung: <genau ein Satz: die Verantwortung der Einheit, ohne „und"-Aufzählung>
input: <was die Einheit entgegennimmt — Parameter/Quellen, eine knappe Zeile>
output: <was sie liefert bzw. bewirkt — Rückgabe/Effekt, eine knappe Zeile>
entscheidungen:
- <kurzer Satz: eine im Code getroffene Design-Entscheidung oder Garantie>
beleg: "<kurzes WÖRTLICHES Zitat aus der Datei, das sie stützt>"
- <weitere Entscheidungen nach demselben Muster>
kanten:
- ruft-auf: <einheiten-id>
- nutzt: <einheiten-id>
- wird-genutzt-von: <einheiten-id>
Regeln:
- Einheiten-ID =
<DATEI>::<symbolname>(bei gebündelten Symbolen: das Hauptsymbol als ID, zusätzliche Symbole je als Zeileanker: <DATEI>::<symbol>direkt unter der Überschrift). beschreibung:ist genau EIN Satz und beschreibt EINE Aufgabe — keine „und"-Aufzählungen.input:undoutput:sind Pflicht: je EINE knappe Zeile (was geht rein, was kommt raus bzw. welcher Effekt tritt ein). Bei Klassen: was sie zum Bau braucht / was sie bereitstellt. Keine Prosa.- 2–5 Entscheidungen je Einheit: kurze Sätze über im Code getroffene Design- Entscheidungen und Garantien (was ist zugesichert, was wurde bewusst so gebaut) — KEIN Nacherzählen der Implementierung. Jede Entscheidung gehört zu der Einheit, in deren Code-Körper der Beleg steht (Modul-Ebene nicht einer Klasse zuschlagen).
- Jede Entscheidung hat GENAU EINE
beleg:-Zeile. Das Zitat muss WÖRTLICH (Zeichen für Zeichen, inkl. Klammern und Unterstrichen) in der Datei vorkommen und ein zusammenhängender Ausschnitt aus GENAU EINER Quellzeile sein — NIEMALS mehrere Zeilen zu einer zusammenziehen (keinif x: return y, wenn dasreturnin der nächsten Zeile steht; zitiere dann nurif x:oder nurreturn y). Max. ~60 Zeichen. - Kanten-Typen nur:
ruft-auf,nutzt,wird-genutzt-von,löst-aus,wird-ausgelöst-von. Hinter dem Ziel steht NICHTS mehr — kein Kommentar, keine Klammern. Richtungen:ruft-auf/nutzt= diese Einheit verwendet das Ziel in ihrem Code-Körper;wird-genutzt-von= das Ziel verwendet diese Einheit in SEINEM Code-Körper. Ziele innerhalb der Datei:<DATEI>::<symbol>. Ziele in anderen Modulen (aus den Imports ableitbar):backend/<modul>.py::<symbol>, z. B. nutzt die Dateidb.kanban_pull→backend/database.py::kanban_pull. - Keine Kante erfinden, die nicht im Code steht. Lieber weniger Kanten als falsche.
- Schreibe auf Deutsch.