if文が多すぎるとコードが読みにくくなるから、減らした方がいいというアドバイスを随所で見かけると思うが、減った分はどこへいってしまうのだろうか?
1)単にコードブロックを分離しただけ
ブロックとしてのコードにはifは減っているが、他の部分に分散しただけ
もっとも、それだけでずっと読みやすくなるが、分離による弊害もある
2)不要なifをなくしたもの
条件としてありえないものや、不変なものを省略する
たしかにifは減るが、かえって分かりにくくなる場合もあると思うのだが、、、
3)OOの多態性を使用したもの
ifの代わりにパラメータによる自動バインディングや、Interfaceへの動的実装代入など(DI)
プログラムの代わりに言語システム側にやってもらう
あったはずのifが言語システム内部に埋没するので、かえって分かりにくいかも、、
こう考えると、根本的にロジックを改革しなかぎり、ifは減っていなのであり、減ったように見せかけているだけということになる。
この部分にDSLを導入するのは効果が高い気がするので、どうやったらいいかが研究課題だ。
0 件のコメント:
コメントを投稿