We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
一筆書きのコード について
過去に携わった案件のローカルな表現なので、一般的ではないはず。意味合いは、一つの関数に必要な処理が詰め込まれている状態で、関数やクラスを使って処理を分割していない状態を指します。作り始めた頃は行数が少ないので問題がないのですが、繰り返し仕様追加が行われると、 分岐と繰り返しが複雑に絡み合って修正が困難になります。
複雑度を表す 循環的複雑度 という考え方があるので、参考にしてください。
LotteryControllerにある関数の複雑度を下げるための着目点は下の3点です。
ソースコードにある空行の後にあるインラインコメント 早期リターン 「DBやパラメターからの入力」 、 「加工と処理」 、 「レスポンスやDBへの出力」 の3段階に分離する 1つ目は、処理の塊の境目は空行で区切られているので、区切りごとに処理を分けられます。DBの検索ならモデルのクラスに検索処理を実装します。レスポンスなら レスポンスマクロ が使えます。
2つ目は、途中で処理を継続できないと判断した時点で 処理を終わらせます。具体的には https://github.com/shimamorieiki/remoteMaster/blob/feature/user/app/Http/Controllers/LotteryController.php#L39 の
if ($min_number == PHP_INT_MAX) { で return response()->json( ... レスポンスを返します。また、returnするので、 このif文から else を削除することで「該当者がある場合」ということを意識してコードを読む必要がないので、読む人が楽になります。
3つ目は、処理の再利用性や共通化を意識すると、自ずと別れていくと思います。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
一筆書きのコード について
過去に携わった案件のローカルな表現なので、一般的ではないはず。意味合いは、一つの関数に必要な処理が詰め込まれている状態で、関数やクラスを使って処理を分割していない状態を指します。作り始めた頃は行数が少ないので問題がないのですが、繰り返し仕様追加が行われると、 分岐と繰り返しが複雑に絡み合って修正が困難になります。
複雑度を表す 循環的複雑度 という考え方があるので、参考にしてください。
LotteryControllerにある関数の複雑度を下げるための着目点は下の3点です。
ソースコードにある空行の後にあるインラインコメント
早期リターン
「DBやパラメターからの入力」 、 「加工と処理」 、 「レスポンスやDBへの出力」 の3段階に分離する
1つ目は、処理の塊の境目は空行で区切られているので、区切りごとに処理を分けられます。DBの検索ならモデルのクラスに検索処理を実装します。レスポンスなら レスポンスマクロ が使えます。
2つ目は、途中で処理を継続できないと判断した時点で 処理を終わらせます。具体的には
https://github.com/shimamorieiki/remoteMaster/blob/feature/user/app/Http/Controllers/LotteryController.php#L39
の
if ($min_number == PHP_INT_MAX) {
で return response()->json( ... レスポンスを返します。また、returnするので、 このif文から else を削除することで「該当者がある場合」ということを意識してコードを読む必要がないので、読む人が楽になります。
3つ目は、処理の再利用性や共通化を意識すると、自ずと別れていくと思います。
The text was updated successfully, but these errors were encountered: