引数の順序の依存をなくす
あまり納得していないmrsekut.icon
引数が順序に依存していることの問題点
引数の順序が入れ替わったり、引数の個数が変わった際に、呼び出し先を修正する必要がある
引数の個数が減り順序の依存も消える
しかし、名前に依存することになる
呼び出し先は、各引数名を知らなければならない
『オブジェクト指向設計実践ガイド』.iconはこれを嬉しい副作用と言っていた
なぜなら、そうすうことでドキュメントになるから、というもの
これは微妙mrsekut.icon
少なくとも静的型付け言語なら情報量は何も変わっていない(特に改善されていない)
名前の安定度と、引数順序の安定度を比較すると前者の方が安定なので良いらしい
これもなんとも言えないmrsekut.icon
普通に引数減らせよ、とは思うmrsekut.icon
じゃあ、引数全部objectにすればいいじゃん、という極論を考えてみる
これも『オブジェクト指向設計実践ガイド』.iconで言及されていた
流石に2引数関数もrecordにしていくのは無駄に冗長になる
折衷案として、
固定的な引数に関してはrecordを使わず、
不安定なものに関してはrecordを使う
を併用すればいいと。
code:イメージ.ts
function hoge(name: string, age: number, item: Item) {}
このテクニックを使うと、どんなに引数を変更しても他のコードに対し副作用を持つことはないとわかるので、安心してGearの初期値の際に使われる引数やデフォルト値の追加や除去を自由にできるようになっています ref 『オブジェクト指向設計実践ガイド』.icon p.73
ほんまか?????????????
納得しかねるmrsekut.icon
objを持ち回っているならそうだろうけど、今回の話はそういう感じないだろう
引数が増えたら参照元は全部修正しないといけないことに変わりはないのでは?
参考