| name | coding-standards |
| description | Dart/Flutter/Riverpod のコーディング標準。命名規則、イミュータビリティ、Provider設計、エラーハンドリングのパターン集。 |
Coding Standards
Dart/Flutter/Riverpod プロジェクトのコーディング標準。
命名規則
| 対象 | 規則 | 例 |
|---|
| クラス | UpperCamelCase | MasterRecipe, RecipeCalculator |
| 変数・関数 | lowerCamelCase | baseAmount, recalculate() |
| 定数 | lowerCamelCase | defaultServings |
| ファイル | snake_case | master_recipe.dart |
| Provider | lowerCamelCase + Provider | recipeListProvider |
イミュータビリティパターン
モデル
class MyModel {
final String id;
final String name;
const MyModel({required this.id, required this.name});
// factory コンストラクタ
factory MyModel.create({required String name}) {
return MyModel(id: uuid.v4(), name: name);
}
factory MyModel.fromJson(Map<String, dynamic> json) {
return MyModel(id: json['id'], name: json['name']);
}
Map<String, dynamic> toJson() => {'id': id, 'name': name};
MyModel copyWith({String? name}) {
return MyModel(id: id, name: name ?? this.name);
}
}
コレクション操作
// 追加
final updated = [...items, newItem];
// 削除
final updated = items.where((e) => e.id != targetId).toList();
// 更新
final updated = items.map((e) => e.id == targetId ? e.copyWith(name: newName) : e).toList();
Riverpod Provider 設計