React
Ausschließlich funktionale Komponenten
Verwenden Sie immer TSX-Funktionskomponenten mit benannten Exporten.Props
Erstellen Sie einen Typ namens{ComponentName}Props. Verwenden Sie Destrukturierung. Verwenden Sie React.FC nicht.
Kein Prop-Spreading mit einer einzelnen Variablen
Zustandsverwaltung
Jotai-Atome für globalen Zustand
- Bevorzugen Sie Atome gegenüber Prop-Drilling
- Verwenden Sie
useRefnicht für den Zustand — verwenden SieuseStateoder Atome - Verwenden Sie Atomfamilien und Selektoren für Listen
Vermeiden Sie unnötige Re-Renders
- Lagern Sie
useEffectund das Daten-Fetching in gleichrangige Sidecar-Komponenten aus - Bevorzugen Sie Event-Handler (
handleClick,handleChange) gegenüberuseEffect - Verwenden Sie
React.memo()nicht — beheben Sie stattdessen die Grundursache - Beschränken Sie die Nutzung von
useCallback/useMemo
TypeScript
typestattinterface— flexibler, leichter zu kombinieren- String-Literale statt Enums — außer für GraphQL-Codegen-Enums und interne Bibliotheks-APIs
- Kein
any— striktes TypeScript wird durchgesetzt - Keine Type-Imports — verwenden Sie reguläre Imports (erzwungen durch Oxlint
typescript/consistent-type-imports) - Verwenden Sie Zod für die Laufzeitvalidierung ungetypter Objekte
JavaScript
Namensgebung
- Variablen: camelCase, aussagekräftig (
emailstattvalue,fieldMetadatastattfm) - Konstanten: SCREAMING_SNAKE_CASE
- Typen/Klassen: PascalCase
- Dateien/Verzeichnisse: kebab-case (
.component.tsx,.service.ts,.entity.ts) - Event-Handler:
handleClick(nichtonClickfür die Handler-Funktion) - Komponenten-Props: mit dem Komponentennamen präfixieren (
ButtonProps) - Styled Components: mit
Styledpräfixieren (StyledTitle)
Styling
Verwenden Sie Linaria Styled Components. Verwenden Sie Theme-Werte — vermeiden Sie hartkodiertepx, rem oder Farben.
Importe
Verwenden Sie Aliase statt relativer Pfade:Ordnerstruktur
- Module können aus anderen Modulen importieren, aber
ui/sollte abhängigkeitsfrei bleiben - Verwenden Sie
internal/-Unterordner für modulinternen Code - Komponenten unter 300 Zeilen, Services unter 500 Zeilen