こつつみ

コツコツ積み上げる

「モデリングの学び方:座談会」に参加しました

2021/9/7 モデリングの学び方:座談会がオンライン上で開催されたので参加しました。

modeling-how-to-learn.connpass.com

まず今回申し込みが1000人超え、参加者700人だった。これだけモデリングに興味がある人がいるのかと驚いた。 そして、自分も含めてモデリングの仕方に困っている人が多そうだなと感じた。

自分のレベル感としては、以下の本は読んだが全く実践できていないという状況だ。

speakerdeck.com

まず、座談会として7人の話しての方に2つの質問が投げかけられた。

1. 普段はどんなモデリングをしているか?

皆さんのやり方は少し違えど、「ドメイン(ビジネス)モデルをしっかり知る」という点は共通していた。 あとは、しっかりクラス図を書く人もいれば、ホワイトボードで議論したり、ソースコードを作ったり消したりなど試行錯誤していたりなどあった。

自分の場合、モデリングの正解があれば聞きたいなと思っていたが、気づいてはいたが人それぞれ違うことを改めて知った。 しかし、先ほども書いたが、SIerならお客さんのサービス・自社開発なら自社サービスがどういうビジネスについて、 コンテキストマップに起こしたり、「概念モデル」をベースにユースケースロバストネス図を作成したり、オブジェクト図にしたりと、 それぞれのやり方でモデリングしているようだ。

話聞いていて思ったのは、エヴァンス本でも強く言われているがドメインのことをよく知っている人から聞いて、しっかりとドメインのことを理解することがモデリングには必要なんだと感じた。

2. どうやってモデリングを学んできた感じですか? 学び方のお勧めはありますか?

実践の中での問題を解決するためにモデリングについて学び始めた人が多いなと感じた。

自分は前の職場はC言語で書かれており、コードがとても汚くどうにかしたいという思いで色んな技術書を漁って読んでいた。 リファクタリングを実際にしたが、3ヶ月前にリファクタリングしたブランチのマージリクエストを出しているが、本番コードを修正してエラーが出るかもしれないからと未だにマージされていない。 単体テストも書いてやっていたが、どうすれば良かったのか分からずに部署が移動してしまった。(多分、マージされなそう)

現在の部署は、基本的にマイクロサービスになっておりモデリングする必要もないくらいのコードの大きさなのでモデリングしない。(全体を見ればモデリングできるとは思うが、現状する必要がない) 実務の中でモデリングについて学ぶのがかなり難しいなと思っている。現在は個人で試行錯誤しているが難しい。

ミノ駆動さんが言っていたペアプロリファクタリングをしていくのはとても良いなと思った。有識者の意見を聞きながらモデリング・設計をする機会があれば、自分の中のやり方というのが固まっていくのかなと思った。

あと良かったと思ったことは、「Tell, Don't Ask」だけは一番意識していると聞けたこと。有識者の気をつけているポイントを知れるのは良い。

TellDontAsk

他にもモデリングオブジェクト指向の学び方として以下が紹介されていた。

  • オブジェクト指向エクササイズ :これは賛否両論あるが、とっかかりとしては良さそうに感じた。

www.slideshare.net

www.ogis-ri.co.jp

最後に

なぜか一番印象に残ったのは、hiroさんがサーバーサイドには必ずクラス図を書いているということだ。

UMLについて研修を通して学んできて自分でも有用性を感じていたが、実際に実務で使うことがなく使っている人は現代ではいないのか?という気持ちになっていたので、 hiroさんがガッツリ使っていることを聞き、自分も書いていこうという気になった。ありがとうございます笑

個人だと小規模になりドメインモデルを考えるほどでもないので、手段が目的になってしまいがちになるのかな?と思っているが、 やっぱり手を動かして実践していくしか身につかないと思うので、個人開発でも積極的にモデリングの練習をしていきたい。

まだまだ自分の中に落とし込めていないので、「モデリングの学び方:座談会」の第二回があれば、また参加したい。