見出し画像

DDD(ドメイン駆動設計)やってみて

忙しい期間抜けると気も抜けますね
ponzuです

忙しい期間に開発していたサービスでは
ドメイン駆動設計(DDD)で開発してみよう
ということになったのでやっていたんですが
せっかくの経験なので感想というかなんというか
アウトプット的なことをしておこうと思います

やったことなかった

さあ、新しいサービス作るぞ!ってなったときに
弊社の優秀なエンジニアから「DDDやってみませんか」
ということでDDDをやることになりました

正直触れたこともなかった設計思想なので
理解するのにすごい苦労しましたが
やってみりゃなんとかなるだろう
と軽い気持ちで始めてみました

開発が始まり、ちょっと触ってみたものの
全然理解できず、本読んでもイマイチ深くまで理解できず
ものすごく大変でしたね!!!!

ただ、メンテナンス性の高さ可用性など
メリットがすごくある設計だということは感じました

やって失敗!とは思いませんでしたが
反省するべきところはありましたね・・・

勉強不足

もうこの一点に尽きるかなーと思います

理解できないなら学ぶしかない
ですが、僕は本から学ぶことが主流なので
開発が進む中で学んでいくには少し時間をかけすぎました
深く学んでから開始するべき
せめて学ぶスピードをもっとあげるべきだった
と感じております・・・

設計者の意図を十分理解できないということが
頻繁に起こっていたと感じたので
よりDDDへの理解が深ければ
設計者、開発者の架け橋になれたのになー
と今では思いますね
正直当時は必死でそこまで考えられてなかったかもしれないですが

開発メンバーの意識統一

これはDDDだからこうなったということではないですが
みんなが共通意識を持って作り上げていくべきものであると感じたので
はじめに意識・認識の統一を行なっておくべきだと思いました

ドメインはこうやって作ろう
とか
こういう場合はこう
とか
こういうのは禁止
とか
規約はこうしよう
とか
サービスの種類はこれで、
これはこういうときに使います
とか

上げていけば色々と出てくるのですが、
DDDでいうと、
ユビキタス言語の洗い出し・共有
などを端折って始めてしまったので
そこもしっかりやるべきだったなと思います
諸事情で端折ったんですが必須な工程だと今更ながら感じています
これも勉強不足が祟った結果ですねー

DDDじゃなくても意識・認識の統一は大切ですね
次から気をつけます

得られるものは多かったような気がする

正直DDDの片鱗も理解できていないとは思いますが
良さや面白さは感じたので、
より理解を深めて使っていきたいと思います

ただ、しっかりと勉強して、
DDDで大切なところを抑えた状態で
設計を行なっていかないと
今回の失敗は避けられない
と思うので
次こそは綺麗にDDD決めてやりたいですね

もし、今後DDDやってみようという方がいらっしゃったら

DDDに置ける大切な事柄はしっかりと抑える
設計上決定権を持った人を据える
みんなで同じ意識・認識で進める

ことをお勧めしますね!
きっとそれ以外にもあるけど!!!

総じて難しかったね!
ラフな作り方しかしてないからね!

ponzu

この記事が気に入ったらサポートをしてみませんか?