オブジェクト指向カンファレンスに初参加してきました

Object-Oriented Conference 2024

https://ooc.dev/2024/オブジェクト指向カンファレンスに初参加してきました。
今回の記事は感想文です。

イベントストーミングによるオブジェクトモデリング

イベントストーミングによるオブジェクトモデリング: オブジェクト指向プログラミングへの適用/開発プロセスの変遷/アーキテクチャの変革
本トークでは、イベントストーミングを活用したオブジェクトモデリングの実践が開発プロセスとアーキテクチャにどのような変革をもたらしたかについて詳しくお話しします。 「どのようなオブジェクトを実装するのか」 この単純な問いに私たち開発者は多くの悩みを抱えています。 イベントストーミングの結果として得られるモデルはこの問...

このカンファレンスで一番聴きたかった @nrslib さんの公演です。いわゆる「モデリング」の手法の一つとして、イベントストーミングをご紹介されていました。

モデリングはドメインエキスパートと会話しながら進める、というのは理解していましたが、実際にやってみるとどうにも上手くいかないことが多いと思います。

  • ドメインモデルではなくデータモデルを考えてしまう
  • 実装とモデルが結局切り離されてしまう

一方、イベントストーミングは、業務プロセスで発生する「イベント」を書き出し、並べていく作業になりますが、「ドメインイベント」に着目してモデリングしていくため、ドメインエキスパートと開発者が相互に理解しやすい手法だなぁと感じました。

いわゆる業務フロー図を書き出す作業に似ていると思いますが、時系列を追うことで、「次は何が起きるのか?」を開発者が自然と質問しやすくなる気がしました。

ドメインイベントと実装の関連

公演の中でも「やってみたい!」と思ったのは、イベントストーミングによって作成したモデルを、本当にそのまま実装に利用できるという点です。

イベントソーシングなフレームワークを利用することで、「イベント」「コマンド」「集約」を、自然に繋げることができるのが、とても魅力的だと思いました。

公演の中でご紹介されていたフレームワークは Axon Framework というイベントソーシングフレームワークでした。

DDDはなぜ難しいのか

DDDはなぜ難しいのか / 良いコードの定義と設計能力の壁
私がDDDに出会ったのは2014年です。 そのころはDDDの情報も少なく、試行錯誤しながらDDDに向き合ってきました。 思い返すと「DDD理解した」と「DDD分からん」を繰り返してきたように思えます。 今回の発表では私の経験をベースに「なぜDDDが難しいのか」「どうすればできるようになるのか」を設計原則や良いコードの定...

続いての公演は、  @pospome さんの DDD に関する公演でした。
なんとなく分かっているつもりになっていた「ドメイン」や「駆動」といったキーワードについて、しっかりと定義を確認し、その上で良いコードや設計について考えることができたと思います。

中でも、「本をたくさん読む、同じ本でも何回も読む」という pospome さんのお言葉は、胸にグサッとくる内容でした笑

@nrslib さんの公演で「イベントストーミンングやろう! Axon 導入してイベントソーシングにしよう!」と思っていた自分に、『ちゃんと勉強してからやで〜』と言われた気がして背筋が伸びる思いでした。

オブジェクト指向は必要なのか

オブジェクト指向は必要なのか
オブジェクト指向は大切、オブジェクト指向は難しいなどと言われますが、ではオブジェクト指向とはなんでしょうか?実際のところ、広く合意のあるような定義は見当たりません。 ただ、ここではこれからの開発作業をよりよいものにするための話をするべきなので「オブジェクト指向がきっかけだったのだから全部オブジェクト指向だ!」のような...

最後はきしださんのオブジェクト指向に関する公演でした。オブジェクト指向カンファレンスと言いつつ、オブジェクト指向に関する公演はこれだけ?だったかもしれないです。

きしださんのご主張は有名だと思いますが、ご本人の言葉で現在の「オブジェクト指向」という言葉の悪い面を聞けたのは良かったです。

私も「オブジェクト指向=良いプログラム」と思っていただけに、今一度、オブジェクト指向がもたらす意味や、その次のパラダイムシフトである関数型プログラミングとの比較をしなければと思わされました。

全体を通して

nrslib さんの公演でワクワクして、pospome さんの公演で地に足がつき、きしださんの公演で自分自身の設計間や実装感を考えさせられた、という1日でした。

そして、多くの来場者や素敵な取り組みをされている企業を見て、自分も今のポジションでやれることをやろうと思うことができました。

まずは、イベントソーシング!ではなく、その実現に必要なメッセージブローカーなどの仕組みをちゃんと勉強しようと思います。