9月はあまり稼働していなくて、旅行に行ったり実家に帰ったりそんな感じでした。
なので、あまりコードも書いていないし、DDD本というか技術書もほとんど読んでない状況です。
もはや時代遅れのエンジニアになりつつあるそんな気がするぐらいです。
ただ、何もしないってのはたまには良いこともあって、自分の中のいろいろな事を整理できるような気がします。
直近でリリースしたプロジェクトから、最近自分がDDDについてどう思っているかってのを少しここに書いておこうかと思います。
まず前提として、DDDをやるぞって感じでプロジェクトではない
まずプロジェクトチームがあるわけでもないし、ほとんど一人だったという事もあるので、ユビキタス言語とかを用意したりとかかっちりとDDDを導入したわけではありません。
やった事
- モデリングする事
- モデリングを実装に落とし込む事
モデリングと言っても、Cacooをつかって図を書き、ごにょごにょした程度です。
それをSymfony2+domain-kataを使って実装しただけです。
ここに関しては、いろいろと課題はあるもののある程度はうまく行ったと思います。
以前はER図を書けばそれでよくね?なんて思っていましたが、ぜんぜん違うので、やはりモデリングは重要です。
コンテキストの境界が図でわかる事で、システムの全体が見渡しやすくなるし、機能を付け加えたりする時にも非常に役に立ちました。
domain-kataに関してはまだうまく理解出来ていない部分もありますが・・・ある程度はうまくできたと思い込みたいところです。。。
失敗した気がするところ
- モデリング通りに実装できない
モデリングが悪いって事にもなるんだろうけど、多分モデリングの問題じゃなくて、実装での表現力の乏しさという事がありました。
本当はドメインイベントを理解できていればもう少し違ったのかなぁーとか。。。
まとめ
DDDってよくわからないです。 僕の場合は、今思っている重要な事は
- モデリングする
- モデリングをプログラムで実現する
この二つのなのかなぁーと思います。 これは、モデリングするための手法なのか?、モデリングをプログラムで実現するための手法なのか?って意識してみると少しDDDが理解しやすくなるような気がします。
何はともあれ、もっとDDD本を読んで学んでいこうと思います。
DDDって楽しいよね!(酔っ払っていてごめなんさい。