Dart-Sprache
Schreibe klaren Dart-Code, der den SDK-Einschränkungen des Projekts und dem etablierten Stil entspricht.
Entscheidungen
- Lies die SDK-Einschränkung in
pubspec.yaml, bevor du neuere Syntax verwendest. - Bevorzuge einfache Typen und direkte Kontrollflüsse gegenüber Abstraktionen ohne nachgewiesene Wiederverwendung.
- Modelliere abgeschlossene Varianten mit abgeschlossenen Typen (sealed types), wenn erschöpfende Fallunterscheidungen die Korrektheit verbessern.
- Verwende Records für kleine strukturelle Werte; verwende benannte Domänentypen, wenn Identität, Validierung, Dokumentation oder Weiterentwicklung wichtig sind.
- Nutze Pattern Matching, wenn es Verzweigungen oder Destrukturierung klarer macht – nicht als Neuheit.
- Bewahre die Kompatibilität der öffentlichen API, es sei denn, eine breaking change wird angefordert.
- Halte veränderlichen Zustand privat und stelle die kleinstmögliche sinnvolle Oberfläche bereit.
Folge den Effective-Dart-Richtlinien für Namensgebung, Dokumentation, Nutzung und Design. Passe dich den Linting-Regeln des Repositorys an, anstatt widersprüchliche Stilvorgaben hinzuzufügen.
Verifikation
Nutze das Dart-MCP für semantische Lookups und Analysen, wenn die aktuelle Umgebung dies bereitstellt; andernfalls durchsuche den Quellcode und verwende die Projekt-CLI. Führe Formatierung, statische Analyse und die engsten relevanten Tests aus. Wenn du die öffentliche API eines Pakets änderst, überprüfe Beispiele und nachgelagerte Aufrufstellen.
Grenzen
- Async, Streams, Cancellation und Isolates: Verwende
dart-concurrency. - Flutter-Widget-Komposition oder State-Ownership: Verwende die entsprechende Flutter-Kompetenz.
- JSON- und Persistenzschema-Verhalten gehört zur entsprechenden Datenkompetenz.
Referenzen
- Lies patterns and records migration, wenn du Pattern Matching, Destrukturierung, Switch-Ausdrücke oder Mehrfachrückgaben einführst.
- Lies sealed class hierarchies, wenn du algebraische Datentypen, abgeschlossene Ergebnismodelle oder erschöpfend verifizierte Zustandsfamilien entwirfst.