アドベントカレンダー書くための考えた流れを残しておくメモです。
自社でDDDやってるけど、DDD実践したことがない。
個人でお試しでDDDやってみよう。
好きなことの方がモデリングしやすいのでは?
と思い、昔好きだったデジモンアドベンチャーをDDDで表して見ようと思い、
今に至る。
経験ないので、
技術書店で買った
もくもくモデリングの森を旅するチビドラゴンの軌跡
https://taimen.jp/f/867
を参考に試行してみる
題材
デジモンアドベンチャーといえば、
デジモンの進化も良し、
子どもたちの成長も良しと
色々ありますが、
広げすぎると何もできないので、
今回は「アグモン」を題材にやってみます。
いざモデリング
ユースケース
本に「誰が何をするとこうなる」を書き出してみようとあるので書いてみた。
- アグモンが進化するとグレイモンになる
- グレイモンが超進化するメタルグレイモンになる
- グレイモンが暗黒進化するとスカルグレイモンになる
- メタルグレイモンが究極進化するとウォーグレイモンになる
- アグモンがワープ進化するとウォーグレイモンになる
悩んだところ
アグモンがワープ進化するとウォーグレイモンになるのか。
それとも、ワープ進化とは、アグモン、グレイモン、メタルグレイモン、ウォーグレイモンの順に進化していくことをワープ進化というのか。
アニメでは、メタルグレイモンに進化するときは必ずグレイモンへの進化シーン入るけど、
ウォーグレイモンに進化するときは、アグモンから進化のモーション入るよね?って考えると、
自分はアグモンがウォーグレイモンにワープ進化している。の定義に落ち着きました。
で、一応公式確認したところ、メタルグレイモンからウォーグレイモンへの進化は究極進化というそうだ。
http://digimon-adventure.net/tri/evolution/agumon.html
つまり、「究極進化」と「ワープ進化」は言葉として別だという整理になった。
用語集
次に本では、ユースケースができたら、
ヒト、モノ、コトに当たる単語を抜き出そう。
って書いてあるので実践。
ここで思ったのは、「ヒト、モノ、コト」ってことは名詞を抜け
ということで「進化する」とかの動詞はここでは抜いてはいけないってことだ。
- アグモン
- グレイモン
- メタルグレイモン
- スカルグレイモン
- ウォーグレイモン
ドメインモデル
ここでドメインモデル。
用語集に上がったアグモンたちをドメインに。
ユースケースに合わせて関係するドメインに線を引いていく。
こんな感じになった。
次はこれでクラス図を書いています。