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;
}
村松龍之介村松龍之介

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(),
  ),
);
村松龍之介村松龍之介

プライベートなフィールド(プロパティ・メソッド)は、名前の頭に _ (アンダースコア)を付けてプライベート化する。

どこからも参照されていない、非プライベートなメソッドが残っていることがままあります。

適切にプライベート化するメリット

  • 修正する際の影響範囲がファイル内に閉じていることが一目でわかる
  • 未使用になった場合に警告してくれるので削除忘れ防止になる