決められた処理を書くこと、と思ってる初学者は覚えておいてほしい。
確かに昔は決められた処理を書くことしかできなかった。
リソースがあまりに少なかったから。
でも、今はそうではない。
プログラミングとは世界を記述すること。
その世界の構造、ルールを記述することによって、その世界の構成物が滞りなく流れるようにすること。
だ。
プログラムを書くということは、対象世界をある断面で切り出して記述するということで、その断面を「ドメイン世界」と呼び、そのルールを見出す方法を「ドメイン駆動開発」と呼ぶ(初出時はそういう観点はなかったはずだが)。
ドメイン世界のルールを見出す、という観点なしにドメイン駆動開発の方法論を実践するということは、典型的なカーゴカルトであって、成功しない。
これから書けと言われる「決められた処理」というのは、大きなドメイン世界の、あるいはこれから育っていくサービス、プロダクト世界のルールの一発現事例に過ぎない。
その処理だけを考えてパパッと書いたプログラムがドメイン規則に合致することは、自動的には起こらないと思ってほしい。
という話は、初学者である間は理解できないだろうけど、中級者、上級者と育っていけば、「ああ、こういうことか」と感じる瞬間があるだろう。
歴が長くても、初学者止まりだったら、一生かかってもその瞬間は訪れないがな w