Thema: design
-
Pipeline, Fan-out, Orchestrator und Kritiker-Panel: Welches Multi-Agent-Muster zu welcher Aufgabe passt
Eine Pipeline passt zu Aufgaben mit einer festen Abfolge von Transformationen; paralleles Fan-out passt zu unabhängigen Teilfragen oder wiederholten Versuchen, über die abgestimmt wird; ein Orchestrator mit Workern passt zu Aufgaben, deren Zerlegung erst zur Laufzeit bekannt ist; ein Kritiker-Panel passt zu Ausgaben, die anhand mehrerer Kriterien geprüft werden müssen; jedes Muster vervielfacht die Tokenkosten und fügt eine Koordinationsebene hinzu, die auch selbst versagen kann.
-
Event Sourcing und CQRS: was sie bringen und was sie kosten
Event Sourcing speichert jede Zustandsänderung als unveränderliches Ereignis und leitet den aktuellen Zustand durch Replay ab; CQRS trennt das Schreibmodell von den Lesemodellen. Beide erhöhen Nachvollziehbarkeit und Flexibilität, auf Kosten von Komplexität und schlussendlicher Konsistenz.
-
Technische Schulden als Metapher und als Entscheidung
Technische Schulden beschreiben die künftigen Kosten einer Abkürzung; die Metapher ist nützlich, wenn die Schulden bewusst eingegangen und nachverfolgt werden, und irreführend, wenn sie nachlässige Arbeit entschuldigt oder auf jede Unvollkommenheit angewendet wird.
-
Agentengedächtnis gestalten: was dauerhaft gespeichert, was zusammengefasst und was vergessen wird
Das Gedächtnis eines Agenten hat drei Ebenen: das Kontextfenster, ein Aufgaben-Notizblock und ein dauerhafter Speicher über Sessions hinweg; pro Eintrag entscheiden, zu welcher Ebene er gehört, das dauerhafte Gedächtnis klein und überprüfbar halten und löschen, was nicht mehr zutrifft.
-
Datenschutz-Prüfliste für ein Feature
Zehn Fragen, die eine prüfende Person beantwortet, bevor ein Feature live geht: Inventar neuer personenbezogener Daten, Minimierungsentscheidungen, Aufbewahrungsjob, Zugriff und Zugriffsprotokollierung, Abdeckung von Export und Löschung, Präferenzzwecke, Drittanbieter-Abläufe, ein kurzer LINDDUN-Durchgang, Testdaten und ein festgehaltenes Ergebnis; nur technische Eigenschaften, keine rechtliche Beurteilung.
-
Dark Mode mit prefers-color-scheme, color-scheme und light-dark()
Dark Mode besteht aus drei Teilen: der Media Query prefers-color-scheme, um die Wahl der Nutzenden zu erkennen, der Eigenschaft color-scheme (und dem Meta-Tag), um dem Browser mitzuteilen, welche Schemata die Seite unterstützt, damit Formularelemente, Scrollbalken und die Zeichenfläche folgen, sowie light-dark() oder Custom Properties, um Palettenwerte auszutauschen, ohne Regeln zu verdoppeln.
-
Der testgetriebene Entwicklungszyklus
Einen fehlschlagenden Test schreiben, ihn mit der einfachsten Änderung bestehen lassen und danach bei grünen Tests refaktorieren; der Zyklus hält Designentscheidungen klein und gibt jeder Zeile einen Grund zu existieren.
-
Dataclasses für einfache Records
dataclasses erzeugen __init__, __repr__ und Gleichheit aus annotierten Feldern; frozen dataclasses ergeben unveränderliche Werteobjekte, slots reduzieren den Speicherbedarf, und field(default_factory=...) vermeidet geteilte veränderliche Defaultwerte.
-
Code Smells vor dem Refactoring erkennen
Code Smells sind oberflächliche Symptome (lange Methoden, grosse Klassen, Feature Envy, Shotgun Surgery, Primitive Obsession), die auf ein tieferliegendes Designproblem hindeuten; sie zu benennen gibt der Codeüberprüfung ein Vokabular und einen Auslöser für Refactoring.
-
Exceptions in einer Python-Bibliothek gestalten
Eine Basis-Exception pro Bibliothek definieren, spezifische Fehler davon ableiten, mit Kontext auslösen, Ursachen mit 'raise ... from' verketten und eng an der Grenze abfangen, wo der Fehlschlag behandelt werden kann.
-
Zustände mit Literal, Enum und TypedDict modellieren
Freie Strings und lose Dictionaries durch Literal-Unions, Enumerationen und TypedDicts ersetzen, damit unmögliche Zustände vom Typchecker zurückgewiesen und an einer Stelle dokumentiert werden.
-
Wann sollte ein Team einen Monolithen in Services aufteilen?
Offene Frage: Welche beobachtbaren Signale (Deployment-Kopplung, Teamgrenzen, Skalierungsbedarf, Vorfallmuster) sind erfolgreichen Extraktionen von Services aus einem Monolithen vorausgegangen, und welche Extraktionen wurden später rückgängig gemacht?
-
Menschliche Freigabe-Gates in Agenten-Workflows: Welche Aktionen eines brauchen
Ein Freigabe-Gate hält einen Agenten vor einer Aktion an und lässt eine Person sie erlauben oder ablehnen; Aktionen mit einem Gate versehen, die irreversibel, nach aussen sichtbar, kostspielig sind oder Rechte ändern, den Rest automatisch belassen, und der Person genau zeigen, was ausgeführt würde.
-
Mit einem Monolithen zu beginnen schlägt den Start mit Microservices
Hypothese: Neue Produkte, die als gut strukturierter Monolith beginnen, erreichen ein stabiles Domänenmodell schneller und mit weniger Betriebsstörungen als solche, die mit Microservices beginnen; eine spätere Aufteilung entlang bewährter Grenzen ist günstiger.
-
Privacy-Threat-Modeling mit LINDDUN im Überblick
Ein Datenflussdiagramm Element für Element gegen die sieben LINDDUN-Bedrohungsarten durchgehen (Linking, Identifying, Non-repudiation, Detecting, Data disclosure, Unawareness and unintervenability, Non-compliance), Szenarien je Element festhalten und Massnahmen aus einer kurzen Liste auswählen; ein Ein-Sitzungs-Format nach dem Vorbild einer STRIDE-Sitzung.
Maschinenlesbar: JSON