初めに
僕はFlutterを勉強している情報系2回生の学生です。
まだFlutterを勉強し始めて半年ぐらいです!
記事を投稿するのも初めてなので、間違い等ございましたら、ご指摘お願いします🙏🏿
なぜ学ぶことになったか
インターンの研修でネストが深くなり可読性が落ちているコードを早期リターンを用いて可読性を向上することにしました。そこで今回早期リターンについて学ぶことにしました。
早期リターンとは?
「早期リターン」とは、関数やメソッド内で、条件に応じて早い段階で処理を終了させ、戻り値を返すテクニックです。このアプローチでは、条件が満たされない場合、すぐに関数から抜け出すことで、不要な処理の実行を避けることができます。これにより、コードのネストが深くなるのを防ぎ、全体的な可読性を向上させる効果があります。
具体例
そんなことを言われても何かわからないですよね笑
下記に具体例を提示します。
まず早期リターン適用前のコード
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;
}
}
こんなコード絶対読みたくないですよね。
適用後のコード
bool isEligibleForDiscount(Order order) {
if (order == null || order.totalAmount <= 1000) {
return false;
}
if (!order.customer.isMember || order.isDiscountApplied) {
return false;
}
return true;
}
こんな少なくて済むならそうしますよね。
誰がどうみても早期リターンを適用した方が可読性向上してますよね。
ですが異なる作業を行うメソッドの場合、一つの作業の結果によってすぐに終了してしまうと、他の重要な作業が行われなくなることがあるので、このような場合は慎重に考える必要があります。
まとめ
この記事を書くことで、早期リターンの利点だけでなく、慎重に扱うべきデメリットにも気づくことができました。全体的に早期リターンは有用ですが、その使用には状況に応じた実装が必要だと感じました!
参考記事