引数の数を考慮する。また、登場人物の数を考慮する。

引数の数を考慮する。また、登場人物の数を考慮する。

  • 引数が多いメソッドを見るとモヤモヤします
  • 個人的には引数に関しては基底クラスのメソッドは4つまで、それ以外は3つまでと定めています ー 4つの原点はPerl Best Practiceだったのではないかと記憶しています
  • また、関数内で登場する変数も同様の数に抑えるべきでしょう

何がよくないか?

  • パラメータの数が多いということは当該メソッドの複雑さをそのままに表します
  • 少ないパラメータ(複雑な連想配列はこの限りではありません)はメソッドの単純さを表します
  • ネストレベルが4以上の連想配列やオブジェクトのメソッド呼び出しは何らかの危険信号です

どうすればよかったか?

  • 引数を4つ以上受け取るメソッドは一つのことをうまくやれないか検討しましょう
  • また、ローカル(レキシカル)変数が4つ以上出現する関数は登場人物が多すぎるので、その分パラメータを減らしましょう
  • パラメータとローカル(レキシカル変数合わせて6つが初見の限界だと思います)

伝えたいこと

  • パラメータの数は少なくする
  • まとめられるものでない引数が5つ以上あるなら、そのメソッドは分解すべき
  • メソッド内でのローカル(レキシカル)変数が多い場合も注意、その際は引数を少なくすべき
  • 単純に保つには引数の数を抑え、引数が増えるのであればローカル(レキシカル)変数をその分、少なくしましょう