Communitygithub.com

Fullstack-Design-Patterns-Leitfaden

Leiten, bewerten und architektonisch gestalten Sie Fullstack-Anwendungen – von modernen Frontend-UI-Komponenten über State-Management bis hin zu robuster Backend-Architektur. Nutzen Sie dieses Skill bei der Entwicklung durchgängiger Features, der Refaktorierung von Komponentenhierarchien, der Entkopplung von API-/Datenzugriffsschichten, PR-Reviews auf Architekturschulden sowie zur Lösung von Frontend-Backend-Integrationskonflikten.

Was ist Fullstack-Design-Patterns-Leitfaden?

Dieses Skill dient als strukturierter Leitfaden zur professionellen Architektur und Refaktorierung von Fullstack-Systemen. Es hilft Entwicklern und KI-Agenten, architektonische Reibungspunkte gezielt zu identifizieren und mittels bewährter Entwurfsmuster zu beheben – stets basierend auf dem Prinzip der problemorientierten Musterauswahl. Der Leitfaden behandelt typische Symptome wie aufgeblähte Gottkomponenten, tiefes Prop Drilling, enge API-Kopplung, untestbare Logik oder kaskadierende Netzwerkausfälle. Er bietet eine klare Entscheidungsmatrix mit Schwellwerten, die für jede Ebene (Frontend UI, Fullstack API, Backend, verteilte Systeme) das konkrete Symptom, das empfohlene Muster und die architektonische Nahtstelle benennt. Darüber hinaus enthält er detaillierte Implementierungsregeln für acht Schlüsselmuster – darunter Container/Presentational, Headless Components/Hooks, Adapter, Optimistic UI, Repository, Strategy/Factory und Circuit Breaker. Der Workflow für KI-Agenten definiert präzise Schritte: Identifikation der Nahtstelle und des Engpasses, Auswahl des passenden Musters mit klarer Begründung, Bereitstellung von Vorher/Nachher-Codebeispielen und Hervorhebung der gewonnenen Testbarkeit und Wartbarkeit. Das Skill ist plattformunabhängig und kann in allen gängigen KI-Entwicklungsumgebungen wie Claude Code, Cursor oder Codex verwendet werden.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/tomozard/agent-skills/tree/HEAD/skills/fullstack-design-patterns

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Fullstack-Design-Patterns-Leitfaden?

Verwenden Sie dieses Skill, um End-to-End-Fullstack-Systeme zu beraten, zu architektonieren und zu refaktorieren. Wenden Sie Muster streng nur dann an, wenn eine identifizierbare architektonische Reibung vorliegt – nicht für spekulative Abstraktion.

Kernprinzipien

  1. Problem-orientierte Auswahl: Führen Sie niemals ein Entwurfsmuster ein, ohne dass eine explizite architektonische Reibung oder ein Code-Geruch vorliegt (z. B. Prop Drilling, aufgeblähte Gottkomponenten, enge API-Kopplung, untestbare Logik, kaskadierende Netzwerkausfälle).
  2. Klare architektonische Schnittstellen: Halten Sie klare Grenzen zwischen:
    • View / Darstellung: Dumme, deklarative Komponenten, die über Props gesteuert werden.
    • Client-State & Interaktion: Headless Hooks, zentrale Stores und Server-State-Caching.
    • API / Vertragsschicht: Typisierte Schemata, DTO-Adapter und Anti-Corruption-Schichten.
    • Domäne & Datenzugriff: Entkoppelte Geschäftsregeln und repositorygestützter Datenbankzugriff.
  3. Über-Engineering vermeiden: Wenden Sie keine komplexen Unternehmensabstraktionen (wie Micro-Frontends, CQRS oder verteiltes Pub/Sub) auf einfache CRUD-Seiten oder Standard-Webanwendungen an.

Muster-Entscheidungsmatrix & Auslöser-Heuristiken

EbeneSymptom / Reibung im CodebaseEmpfohlenes MusterArchitektonische Nahtstelle
Frontend UIGottkomponente mischt API-Abruf, Formatierung und JSX-LayoutContainer / PresentationalUI-Rendering von Datenabruf trennen
Frontend UIEng gekoppeltes Styling innerhalb interaktiver Komponenten (Modals, Dropdowns)Headless-Komponente / Custom HooksState sowie Tastatur-/Interaktionslogik isolieren
Frontend UIStarre Komponenten-APIs, die flexible Unterelemente benötigenCompound ComponentsDeklarative Eltern-Kind-State-Weitergabe (z. B. Tabs, Select)
Frontend UITiefes Prop Drilling oder nicht synchronisierte Multi-Komponenten-UI-ZuständeObserver / Store (Zustand/Redux/Context)Gemeinsamen Client-State zentralisieren
Fullstack APIBackend-API-Schemaänderungen brechen Frontend-UI-KomponentenAdapter Pattern (Data Mapper)Anti-Corruption-Layer, der DTO in View Model übersetzt
Fullstack APIUI wartet auf langsame Netzwerke, bevor Benutzeraktion bestätigt wirdOptimistic UI mit RollbackSofortige UI-Antwort, gestützt durch transaktionales Rollback
BackendSQL/ORM-Aufrufe verstreut in Route-Handlern oder ServicesRepository PatternPersistenzabfragen von Geschäftsregeln entkoppeln
BackendInstanziierung verschiedener Drittanbieter-SDKs mittels inline if-elseFactory PatternObjekt- und Client-Erstellung zentralisieren
BackendKaskadierende if-else / switch zur Berechnung von Preisen, Auth oder AlgorithmenStrategy PatternAustauschbare Algorithmen hinter einem Interface kapseln
Backend / VerteiltKern-Geschäftsaktion löst 5+ unabhängige Seiteneffekte ausObserver / Event-Driven (Pub/Sub)Seiteneffekte über Domain-Events oder Nachrichtenwarteschlangen entkoppeln
Backend / VerteiltExterne API-Latenz führt zu Thread-Starvation und kaskadierenden AusfallzeitenCircuit BreakerSchnell-Fehlschlag, Fallback-Antwort und Health-Check nachgelagerter Dienste

Vertiefung: Fullstack-Muster & Implementierungsregeln

1. Frontend: Container / Presentational Pattern

  • Kontext: Komponenten wachsen über 200 Zeilen, indem sie useEffect, Queries, Datentransformationen und Layout-JSX kombinieren.
  • Regeln:
    • Presentational-Komponente: Erhält Daten und Callbacks ausschließlich über Props; rein, einfach in Storybook ohne API-Mocks testbar.
    • Container (oder Page Hook): Ruft Serverdaten ab, verwaltet Lade-/Fehlerzustände und reicht transformierte Daten nach unten weiter.

2. Frontend: Headless Component & Custom Hook Pattern

  • Kontext: Komplexe interaktive Verhaltensweisen (Autocomplete, mehrstufige Assistenten, Accordion), die über verschiedene visuelle Designs hinweg wiederverwendet werden müssen.
  • Regeln:
    • State, Tastatur-Handler und ARIA-Attribute in einen headless Custom Hook extrahieren (z. B. useAutocomplete, useDisclosure).
    • Styling und DOM-Markup vollständig in der Hand des Konsumenten lassen.

3. Frontend: Compound Components

  • Kontext: Komponenten mit tief verwandten Unterteilen, die kohärenten internen Zustand benötigen, ohne dutzende Konfigurations-Props zu übergeben.
  • Regeln:
    • React Context nutzen, um implizit zwischen Eltern und Kind zu kommunizieren (<Accordion><Accordion.Item /><Accordion.Panel /></Accordion>).

4. Integration: Adapter Pattern (Anti-Corruption Layer)

  • Kontext: Drittanbieter-REST/GraphQL-Payloads sickern direkt in UI-Komponenten-Props oder Kern-Domänenmodelle.
  • Regeln:
    • Niemals zulassen, dass rohe Backend-DTO-Schlüssel die Prop-Strukturen von Frontend-Komponenten bestimmen.
    • Explizite Mapper-Funktionen erstellen (z. B. toUserViewModel(dto: UserApiDto): UserVM), um UI-Komponenten vor Schemaänderungen zu schützen.

5. Integration: Optimistic UI mit Rollback

  • Kontext: Häufige Benutzerinteraktionen (Likes, Umschalter, Aufgabenerledigung, Neuanordnung), bei denen Netzwerklatenz die Reaktionsfähigkeit beeinträchtigt.
  • Regeln:
    • Lokalen Zustand sofort nach der Interaktion aktualisieren.
    • Server-Mutation in die Warteschlange stellen; bei Ablehnung auf den vorherigen Snapshot zurückrollen und den Benutzer nicht-intrusiv benachrichtigen.

6. Backend: Repository Pattern

  • Kontext: Geschäftslogik ist mit ORM-Abfragen (Prisma, TypeORM, Drizzle, SQL) verwoben.
  • Regeln:
    • Services interagieren ausschließlich über ein Interface (z. B. OrderRepository).
    • Domänenlogik aus Repositories heraushalten; Query-Erstellung aus Services heraushalten.

7. Backend: Strategy & Factory Patterns

  • Kontext: Austauschbare Anbieter (Zahlungs-Gateways, Benachrichtigungskanäle, Dateispeicher).
  • Regeln:
    • Verhalten über ein gemeinsames Interface standardisieren (PaymentGateway).
    • Factory/Registry verwenden, um konkrete Implementierungen basierend auf Konfiguration oder Mandant aufzulösen.

8. Backend: Circuit Breaker Pattern

  • Kontext: Externe Microservices oder Drittanbieter-APIs leiden unter zeitweiligen Ausfällen oder starker Latenz.
  • Regeln:
    • Fehlerschwellen verfolgen. Übergänge: Closed (normal) -> Open (Schnell-Fehlschlag, gecachte/Fallback-Antwort zurückgeben) -> Half-Open (Canary-Probe).

Agenten-Ausgabe-Workflow

Wenn Sie um Beratung zur Architektur oder Refaktorierung von Fullstack-Code gebeten werden:

  1. Nahtstelle & Engpass identifizieren: Lokalisieren Sie, ob die Reibung im UI-Rendering, in der Zustandssynchronisation, im API-Vertragskonflikt oder in der Backend-Kopplung liegt.
  2. Passendes Muster auswählen: Schlagen Sie das Muster mit einer klaren Begründung vor, die auf den spezifischen Code-Geruch eingeht.
  3. Vorher / Nachher-Beispiele liefern: Geben Sie präzise, idiomatische Codeausschnitte, die die entkoppelten Verantwortlichkeiten demonstrieren.
  4. Testbarkeit & Wartbarkeit hervorheben: Erklären Sie, wie die Refaktorierung Unit-/Komponententests vereinfacht und gegen zukünftige Änderungen abschirmt.

Verwandte Skills