[解決済み】パラメータはいくつあっても足りない?[クローズド]
質問
ルーチンはパラメータを持つことができる、それはニュースではない。パラメータは必要な数だけ定義できますが、多すぎるとルーチンの理解やメンテナンスが難しくなります。
もちろん、回避策として構造化変数を使うこともできます。これらの変数をすべて1つの構造体に入れて、ルーチンに渡します。実際、構造体を使ってパラメータ・リストを簡素化することは、Steve McConnellが『Steve McConnell's Guide』で説明しているテクニックの1つです。 コード・コンプリート . しかし、彼が言うように
注意深いプログラマは、論理的に必要以上のデータを束ねることを避ける。
ですから、もしあなたのルーチンがあまりにも多くのパラメータを持っていたり、大きなパラメータリストを隠すために構造体を使っていたりしたら、おそらく何か間違ったことをしているのでしょう。つまり、カップリングを緩やかにしていないのです。
質問です。 パラメータリストが大きすぎると判断できるのは、どのような場合ですか? 5個以上のパラメータは多すぎると思います。あなたはどう思いますか?
解決方法は?
言論の自由を保障する憲法修正第1条にもかかわらず、規制されるほどの猥褻なものとみなされるのは、どのような場合でしょうか。 Potter Stewart判事によれば、「見ればわかる」ということですが、ここでも同じことが言えます。
プロジェクトの規模や範囲だけでなく、モジュール単位でも答えは変わってくると思うので、こういった固いルールは作りたくないんです。 メソッドが何をしているのか、あるいはクラスが何を表しているのかにもよりますが、2つの引数は多すぎるし、結合が強すぎるという症状である可能性も十分にあり得ます。
そもそも質問をすること、そして質問をこれだけ修飾することで、あなたは本当にこのすべてを知っていると言えるのではないでしょうか。 ここでの最良の解決策は、堅苦しい数字に頼らず、デザインレビューや仲間内のコードレビューに目を向けて、結合度が低く、結合が密な部分を特定することです。
同僚に自分の仕事を見せることを恐れてはならない。 もし恐れているのなら、それはおそらくあなたのコードに何か問題があることを示す大きなサインであり、あなたが すでに知っている .
関連
-
[解決済み] JVM起動時のパラメータ「-Xms」「-Xmx」とは何ですか?
-
[解決済み] 山積みされた靴下を効率よく組み合わせるには?
-
[解決済み] HTTP POSTリクエストでは、どのようにパラメータが送信されるのですか?
-
[解決済み] Bash関数にパラメータを渡す
-
[解決済み] setTimeout()コールバックにパラメータを渡すにはどうすればよいですか?
-
[解決済み] セッションとは何ですか?どのように機能するのですか?
-
[解決済み】ビットシフト(bit-shift)演算子とは、どのようなもので、どのように機能するのですか?
-
[解決済み】パラメータはいくつあっても足りない?[クローズド]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン