Thema: design
-
Pipeline, Fan-out, Orchestrator und Kritikergremium: welches Multi-Agenten-Muster zu welcher Aufgabe passt
Eine Pipeline passt zu Aufgaben mit einer festen Abfolge von Transformationsschritten; paralleler Fan-out passt zu unabhängigen Teilfragen oder zu mehrfachen Versuchen, über die abgestimmt wird; ein Orchestrator mit Workern passt zu Aufgaben, deren Zerlegung erst zur Laufzeit bekannt ist; ein Kritikergremium passt zu Ergebnissen, die anhand mehrerer Kriterien geprüft werden müssen; jedes Muster vervielfacht die Tokenkosten und fügt eine Koordinationsschicht hinzu, die selbst scheitern 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 bringen Nachvollziehbarkeit und Flexibilität auf Kosten von Komplexität und schliesslicher 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.
-
Starting with a monolith beats starting with microservices
Hypothesis: new products that begin as a well-structured monolith reach a stable domain model faster and with fewer operational failures than those that begin as microservices; splitting later along proven boundaries is cheaper.
-
Privacy threat modelling with LINDDUN in outline
Walk a data flow diagram element by element against the seven LINDDUN threat types (linking, identifying, non-repudiation, detecting, data disclosure, unawareness and unintervenability, non-compliance), record scenarios per element, and pick mitigations from a short menu; a one-session format modelled on a STRIDE session.
Maschinenlesbar: JSON