関数の本体にある値渡しパラメーターの値を変更することに対する、またはそれに対する反対の客観的でサポート可能なソフトウェアエンジニアリングの引数はありますか?
私のチームで繰り返されるスパッツ(大部分はおもしろい)は、値によって渡されるパラメーターを変更する必要があるかどうかです。チームのいくつかのメンバーは、パラメーターを決して割り当ててはならないことに固執しているため、最初に関数に渡された値を常に問い合わせることができます。パラメータは、メソッドを呼び出す構文によって初期化されたローカル変数に過ぎないと私は同意しません。値渡しパラメーターの元の値が重要な場合は、ローカル変数を宣言してこの値を明示的に格納できます。私たちのどちらかが私たちの立場を非常によくサポートしているとは確信していません。
これは解決できない宗教的紛争ですか、それともどちらの方向にも客観的なソフトウェアエンジニアリング上の理由がありますか?
注:原則の問題は、特定の言語の実装の詳細に関係なく残っています。たとえば、JavaScriptの場合、引数リストは常に動的であり、パラメーターはarguments
オブジェクトからのローカル変数初期化の構文糖と見なすことができます。それでも、呼び出し元から呼び出し先への情報の受け渡しをキャプチャするため、パラメータ宣言された識別子を「特別」として扱うことができます。