引数

Clean Codeの3章(関数)を読みました。

関数は短く、引数は少ないほうがいい。

引数少なくはわかるけど、たくさん値を渡さなきゃいけないときどうするの。というと、オブジェクトとしてまとめたり、クラスのメンバ変数として持っといて参照するとのこと。

 

メンバ変数で思い出したんですが、前職でのとあるプロダクトでPHPを使ってたんですが、そこではメンバ変数の使用が禁じられてました。状態を保持するとバグの原因究明が難しくなる…要は同じ入力に対しては必ず同じ出力が返ってくるように、状態によって変化がないようにしたいと。

メンバ変数使えない、引数も多くはしたくない、となると連想配列に色々とぶちこんで引数で回すパワープレイになるわけです。ついでに参照渡しもバグの原因になるから禁止されてて、全てコピーで渡されてました。ふえぇ

 

でもまあ当時のプロダクトでは多少のパフォーマンスを気にするより断然バグで起こりうる損害のほうが大きかったわけで...。各々のスキルや思想の違いがあるなかで、なるべく揺らぎを減らすために、そういう縛りプレイを課すのもひとつのやり方ですよね。理想と現実をわきまえながら、良い選択をしていきたいものだぁ