Open5
Flutterアプリ開発業務で実際に行ったコードレビューまとめ
複数のプロジェクト、複数人のメンバーと共同開発していると、同じようなコードレビューを行うことがあります。
また、その時に示した参照元や引用元を都度探し直すのも手間に感じました。
スクラップにまとめることで、次回以降リンク付きでコードレビューできるのでは?と思い、まとめます。
bool
値等の条件があり、その真偽で処理が変わる場合は、関数の分割を検討する
関数の引数に Before
String f (bool isBool, String id) {
final String xxx;
if (isBool) {
// do
} else {
// do
}
return xxx;
}
After
String fWhenTrue (String id) {
final xxx = do();
return xxx;
}
String fWhenFalse (String id) {
final xxx = do();
return xxx;
}
Widgetを切り出すときは、ヘルパーメソッドではなく Widget クラスを作成する
参照
Navigator.push
の戻り値の型を、無意味に遷移先のクラスにしない
Before
// 遷移先画面を指定している
await Navigator.of(context).push<NextScreen>(
MaterialPageRoute(
builder: (_) => const NextScreen(),
),
);
Aftrer
// 何も受け取っていないので `void`
await Navigator.of(context).push<void>(
MaterialPageRoute(
builder: (_) => const NextScreen(),
),
);
// 画面pop時に値を受け取るなら
```dart
final text = await Navigator.of(context).push<String>(
MaterialPageRoute(
builder: (_) => const NextScreen(),
),
);
_
(アンダースコア)を付けてプライベート化する。
プライベートなフィールド(プロパティ・メソッド)は、名前の頭に どこからも参照されていない、非プライベートなメソッドが残っていることがままあります。
適切にプライベート化するメリット
- 修正する際の影響範囲がファイル内に閉じていることが一目でわかる
- 未使用になった場合に警告してくれるので削除忘れ防止になる