0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Immutable化による可読性向上!

Last updated at Posted at 2025-05-29

概要

APIのpathのバリデーション処理のリファクタリングを行った際の学びを共有いたします!

🐛 修正前コード


var path = endpoint.path;
if (state.needParameter) {
  final parameter = textEditingControllers.text;
  if (parameter == null || parameter.isEmpty) return ResultType.emptyParameter;
  path = route.replaceFirst(RegExp(r'{.*?}'), parameter);
}

❌ 問題点

  • pathvar かつ再代入されるため、可変であることが前提の設計になってしまう
  • 初期化と条件分岐の関係で final が使えず、意図が不明瞭
  • 型情報が省略されており、読み手にとって理解しづらい

✅ 修正後コード


final String path;
if (state.needParameter) {
  final parameter = textEditingControllers.text;
  if (parameter == null || parameter.isEmpty) return RegistrationResultStatus.emptyParameter;
  path = endpoint.path.replaceFirst(RegExp(r'{.*?}'), parameter);
} else {
  path = endpoint.path;
}

✔ 改善点

  • pathfinal を付けられる構造に変更 → Immutable化
  • String 型を明示 → 型安全かつ明快
  • 条件に応じた代入ロジックを明示的に記述 → 保守性・読みやすさ向上

🧾 まとめ

修正により、path 変数に final を付与できるようになり、Immutable な状態が保たれるようになりました。

さらに、

  • 定義と初期化を分離したことで変数のスコープが明確に
  • 型を明示したことで読み手への意図が伝わりやすくなり

全体として可読性が向上しました 🙌

可読性、大事ですね!

ご覧いただきありがとうございました

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?