「オブジェクト指向とは何か」と定義を追いかけるのは良くない活動だと思っていてる。この記事の著者さんも迷ってるっぽいし。どんな課題を解決可能かを論じた方が分かりやすいし実際の開発に役立つ。
例えば
・カプセル化は影響範囲を閉じ込め、安全にコード変更しやすくなる。
・ポリモーフィズムにより条件分岐(のコピペ)を削減できる。
といった課題解決効果を、オブジェクト指向の論点の中心に持ってきた方が良い、というのが僕の考え。
DDDにも同じことが言えて、DDDの厳密の定義とは何かを論じると間違いなく迷子になる。普通に読むだけでも迷子になるのに。
だから開発上で解決したい問題が先にあって、解決するためにDDDのどんな知見が役立つかを論点にした方が理解が圧倒的に進む。
でも問題なのは、どんな問題解決に役立つかの視点だけだと、DDDで比較的分かりやすい設計パターンだけがフォーカスされて、結局「DDDとは設計パターン!」に陥ってしまう罠…(ヽ´ω`)
「真の○○」定義問題は話題としては面白いけど、実用的な価値のない虚無を生じさせがちなのであまり立ち入らないようにしている。
その点で「実用性」とか「課題解決」という軸で整理していく方法論に賛成。
短絡的な「設計パターン」という解釈が先行して、その深奥がスルーされてしまうという危機意識は妥当だと思うけど、そもそも人類はそのようなものなので、それ以上を望むのは人間に期待し過ぎだと思う。