Dart 言語
プロジェクトの SDK 制約と確立されたスタイルに適合する、明確な Dart コードを記述します。
判断基準
- 新しい構文を使用する前に、
pubspec.yamlの SDK 制約を確認してください。 - 再利用が実証されていない抽象化よりも、シンプルな型と直接的な制御フローを優先します。
- 網羅的な切り替えが正確性を向上させる場合、密閉型で閉じたバリアントをモデル化します。
- 小さな構造値にはレコードを使用し、同一性、検証、ドキュメント化、または進化が重要な場合には名前付きドメイン型を使用します。
- 新奇性のためではなく、分岐や分解を明確にする場合にパターンマッチングを使用します。
- 破壊的変更が要求されない限り、パブリック API の互換性を維持します。
- 可変状態はプライベートに保ち、可能な限り小さな有用なインターフェースを公開します。
Effective Dart の命名、ドキュメント化、使用、および設計ガイダンスに従ってください。競合するスタイルポリシーを追加するのではなく、リポジトリの lint ルールに合わせてください。
検証
現在の環境で利用可能な場合は、Dart MCP のセマンティックルックアップと分析を使用し、そうでない場合はソースを検査してプロジェクトの CLI を使用します。フォーマット、静的解析、および最も狭い範囲の関連テストを実行します。パブリックパッケージ API を変更する場合は、サンプルとダウンストリームの呼び出しサイトを確認します。
境界
- Async、ストリーム、キャンセル、およびアイソレート:
dart-concurrencyを使用します。 - Flutter ウィジェットの構成または状態の所有権:関連する Flutter スキルを使用します。
- JSON および永続化スキーマの動作:対応するデータスキルに属します。
参照
- パターンマッチング、分解、switch 式、または複数の戻り値を採用する場合は、パターンとレコードの移行 をお読みください。
- 代数的データ型、閉じた結果モデル、または網羅的に検証された状態ファミリを設計する場合は、Sealed クラス階層 をお読みください。