Object-Oriented Conference 2024
https://ooc.dev/2024/オブジェクト指向カンファレンスに初参加してきました。
今回の記事は感想文です。
イベントストーミングによるオブジェクトモデリング
このカンファレンスで一番聴きたかった @nrslib さんの公演です。いわゆる「モデリング」の手法の一つとして、イベントストーミングをご紹介されていました。
モデリングはドメインエキスパートと会話しながら進める、というのは理解していましたが、実際にやってみるとどうにも上手くいかないことが多いと思います。
- ドメインモデルではなくデータモデルを考えてしまう
- 実装とモデルが結局切り離されてしまう
一方、イベントストーミングは、業務プロセスで発生する「イベント」を書き出し、並べていく作業になりますが、「ドメインイベント」に着目してモデリングしていくため、ドメインエキスパートと開発者が相互に理解しやすい手法だなぁと感じました。
いわゆる業務フロー図を書き出す作業に似ていると思いますが、時系列を追うことで、「次は何が起きるのか?」を開発者が自然と質問しやすくなる気がしました。
ドメインイベントと実装の関連
公演の中でも「やってみたい!」と思ったのは、イベントストーミングによって作成したモデルを、本当にそのまま実装に利用できるという点です。
イベントソーシングなフレームワークを利用することで、「イベント」「コマンド」「集約」を、自然に繋げることができるのが、とても魅力的だと思いました。
公演の中でご紹介されていたフレームワークは Axon Framework というイベントソーシングフレームワークでした。
DDDはなぜ難しいのか
続いての公演は、 @pospome さんの DDD に関する公演でした。
なんとなく分かっているつもりになっていた「ドメイン」や「駆動」といったキーワードについて、しっかりと定義を確認し、その上で良いコードや設計について考えることができたと思います。
中でも、「本をたくさん読む、同じ本でも何回も読む」という pospome さんのお言葉は、胸にグサッとくる内容でした笑
@nrslib さんの公演で「イベントストーミンングやろう! Axon 導入してイベントソーシングにしよう!」と思っていた自分に、『ちゃんと勉強してからやで〜』と言われた気がして背筋が伸びる思いでした。
オブジェクト指向は必要なのか
最後はきしださんのオブジェクト指向に関する公演でした。オブジェクト指向カンファレンスと言いつつ、オブジェクト指向に関する公演はこれだけ?だったかもしれないです。
きしださんのご主張は有名だと思いますが、ご本人の言葉で現在の「オブジェクト指向」という言葉の悪い面を聞けたのは良かったです。
私も「オブジェクト指向=良いプログラム」と思っていただけに、今一度、オブジェクト指向がもたらす意味や、その次のパラダイムシフトである関数型プログラミングとの比較をしなければと思わされました。
全体を通して
nrslib さんの公演でワクワクして、pospome さんの公演で地に足がつき、きしださんの公演で自分自身の設計間や実装感を考えさせられた、という1日でした。
そして、多くの来場者や素敵な取り組みをされている企業を見て、自分も今のポジションでやれることをやろうと思うことができました。
まずは、イベントソーシング!ではなく、その実現に必要なメッセージブローカーなどの仕組みをちゃんと勉強しようと思います。