別の分野
ドメイン駆動設計をはじめよう ―ソフトウェアの実装と事業戦略を結びつける実践技法 Vlad Khononov 著、増田 亨、綿引 琢磨 訳 O'REILLY Ebook という本*1を読みました。
「区切られた文脈」といった用語が有りましたが、
- なぜ区切られるのか、について(全部では無いにしろ、一部分でも)因果ダイアグラムで説明が付くのでは無いか?
- 同じ原因のセット(似ている原因のセット)だから区切りの同じ側に居る?!
とかといった感想を持ちました。また「文脈の地図」でも、
- なぜこの図なのか?
についての説明に因果ダイアグラムが使えるのでは無いか?との感想を持ちました。
継承がダメで、関数・型は最高???
オブジェクト指向の継承はダメで、関数・型は最高だとする関数型設計の本を読みました。
確かに継承は、
- 手段として使う(サブクラス全部に共通の初期化メソッドを置くなど)
分には良くても、「簡単な」記述とかいって、
- 継承を多用し、その機構を誤用にとも言える使い方をし、設計を実現する
風になったらお終いな面は有ります。ただし、
もちろん、お終いのプログラムになる原因は有るはずです、
さて、静的な型も『手段として使う分には良くても、、』うんぬんが成立すると思います。そんなに良いなら静的な型で統一出来そうなものですが、動的な型の言語もかなりの勢力が有ります。
それも又、
統一出来ない原因は有るはずですが、
もし、それら原因が同じだとすると、まさに目くそ鼻くそのワールドです。そして、かなりの確率でそうなると私は考えます。
継承と型・関数の悪さの原因が同じかどうかという観点で物事を考えてみるのはいかがでしょうか?
もしそれが成った暁には、「関数以外不適当とゴリ押しするユニットテスト」という分野の見直しも成就するかも知れません。
結論
これからも『特定の側のみからの「ベストプラクティス」』を無理押しされる事でプログラミングが嫌いになる人は存在し続けることでしょう。