LoginSignup
2
0

初めに

僕はFlutterを勉強している情報系2回生の学生です。

まだFlutterを勉強し始めて半年ぐらいです!
記事を投稿するのも初めてなので、間違い等ございましたら、ご指摘お願いします🙏🏿

なぜ学ぶことになったか

インターンの研修でネストが深くなり可読性が落ちているコードを早期リターンを用いて可読性を向上することにしました。そこで今回早期リターンについて学ぶことにしました。

早期リターンとは?

「早期リターン」とは、関数やメソッド内で、条件に応じて早い段階で処理を終了させ、戻り値を返すテクニックです。このアプローチでは、条件が満たされない場合、すぐに関数から抜け出すことで、不要な処理の実行を避けることができます。これにより、コードのネストが深くなるのを防ぎ、全体的な可読性を向上させる効果があります。

具体例

そんなことを言われても何かわからないですよね笑
下記に具体例を提示します。
まず早期リターン適用前のコード

test.dart
bool isEligibleForDiscount(Order order) {
  if (order != null) {
    if (order.totalAmount > 1000) {
      if (order.customer.isMember) {
        if (!order.isDiscountApplied) {
          return true;
        } else {
          return false;
        }
      } else {
        return false;
      }
    } else {
      return false;
    }
  } else {
    return false;
  }
}

こんなコード絶対読みたくないですよね。

適用後のコード

test.dart
bool isEligibleForDiscount(Order order) {
  if (order == null || order.totalAmount <= 1000) {
    return false;
  }

  if (!order.customer.isMember || order.isDiscountApplied) {
    return false;
  }

  return true;
}

こんな少なくて済むならそうしますよね。
誰がどうみても早期リターンを適用した方が可読性向上してますよね。

ですが異なる作業を行うメソッドの場合、一つの作業の結果によってすぐに終了してしまうと、他の重要な作業が行われなくなることがあるので、このような場合は慎重に考える必要があります。

まとめ

この記事を書くことで、早期リターンの利点だけでなく、慎重に扱うべきデメリットにも気づくことができました。全体的に早期リターンは有用ですが、その使用には状況に応じた実装が必要だと感じました!

参考記事

2
0
1

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
2
0