📑
モデリングの学び方:座談会
概要
2021/09/07に開催された下記勉強会のメモです
セッション
主旨説明
- 想定外に人が集まってしまったとのこと
- 700人超えてました(Zoomすごい)
- 認知負荷の軽減の技術がモデリング
- 要点の発見、言語化・可視化してチーム/関係者で共有すること
- 記録して再利用は主目的でない(二次的な効果)
- モデリングと着眼点
- ドメイン中心->事業活動やビジネスルール
- トランザクション中心->画面やDB
- モデリングの種類
- 事業活動
- ソフトウェア
- 語彙
- アプローチ
- プロセス中心->業務フロー
- データ中心->データ
- ルール中心->価値活動
- 増田さんは↓こちらの本の著者でもあります
座談会
実際のところ、現場ではどんな感じ?
かとじゅんさん
- ソフトウェア考古学をやっている
- レガシーからの脱却
- RDRAを実践
- フルスペックではなく一部
- 現状を理解してモデルを再構築するところから始める
- 図の通りにコードは書けない、どんどんズレるので行ったり来たりしないといけない
- 図を描いて満足しない
- 外部仕様変えられない、ユースケースを変えるのは難しい
- 責務のレイヤーである深層のドメインモデルは変えやすいのではという仮説
- モデルの改善=データのマイグレーションがあるので大変
原田さん
- アジャイルコーチやってる
- お客さんの所でモデリングやってる
- チームとしてどう認識しているか
- SIerなのでお客様のビジネスを理解するところから
- お客さんが何に困っているのか
- 意思疎通取れてるのか
- ほんとに正しいのか探りに行く
- 語彙のモデリングからやることも
- 抽象度を合わせる
- アジャイルな時代なのでお客さんに聞けるのがいい
- DDDの渦巻きモデルをやれている
ミノ駆動さん
- コンテキストマップの話
- 今の会社4月に入ったのでまだ4~5ヶ月
- 新しく開発するもののドメインモデリングをやっている
- ビジネス全体を俯瞰して考える
- まず洗い出さないといけない
- コンテキストマップ教科書的に書きましたという話でなく変形して使う
- 目的駆動
- どのドメインでどの目的を達成したいのかコンテキストマップでわかる
- 目的を達成するためのモデルを立てていく
- モデルを置いて見てみると評価できる
- ヒアリングしてコンテキストマップを作っていく
hirodragonさん
- 受託開発
- いろんな案件を年が変わるごとにやってる
- 案件によってかなり違う
- 概念モデルは必ず作り、それをベースにクラス図を作成
- たまにロバストネス図やユースケース図
- クラス図はコードを書くため(これがないと書けない)
- 用語と関連、たまに多重度
藤岡さん
- 同じくソフトウェア考古学やってる
- 動いてるソースコードが絶対
- それ以外わからないので、まずは追いかけながら図を作ったり
- 新しいことやりたいという要望もある
- モデルを図で作るよりjigを使って可視化
高崎さん
- モデリングを中心に開発
- 受託開発なので広く一般的なSIerとあんまり変わらない
- 多忙な場合モデリングよりソースコード書くという話になりがち
- 語彙のモデリングはやっている
- RDRAや匠メソッドを活用
モデリングの学び方
高崎さん
- 渡辺幸三さんの本でモデリングに出会った
- オブジェクト指向のブームの人に色々会いに行った
- データモデリングしっかりやったほうがいいんじゃないかという仮説
藤岡さん
- モデリング学んだのは特殊なパターン
- 本とかでなく仕事で覚えていった
- 増田さんのプロジェクトで強制的に
- モデリングやらない人は切られた
原田さん
- 画面とか帳票を分析してた
- 途中からT字型E-R図にであった
- アジャイルとかスクラムでモデルを書くと上手くいきそうとなったのが転機
かとじゅんさん
- まずはいくつかの書籍で勉強を始め、その後エバンス本と出会った
- WebアプリでDDDは難しいのでは?
- Wデスクトップの方がドメイン駆動やりやすいという話がある
- コマンドとクエリーに分離して考えるのが今の解
- コマンドの振る舞いにフォーカスしてドメインを考える
- コマンドを処理するために必要なものしか持たせない
- 閲覧だけの情報は一度外す
hirodragonさん
- どうやって学んだかは記憶がない
- 教えてくれる人がいなかったので自分で調べた
- プロジェクトでDDDでやることになった
- やりたかったのこれかと思った
- オブジェクト指向もよく分かってなかったので勉強始めた
- オブジェクト指向の理解にUMLを
- いつの間にかモデリングも
ミノ駆動さん
- なんのためにモデリングするのか?
- ひどいコードにぶち当たった時に威力を知る
- まずクソコードと対峙したという起点
- 巨大クラス
- 問題のあるモデルを改善するという経験
意見交換
- 炎上しがちだけど「オブジェクト指向エクササイズ」やってみるの良いかも
- 実践するかはさておき体感してみる
- 合わない人はそれでもいい
- 「Tell, Don't Ask」を意識
- データモデリングで良いという話になる
- オブジェクト指向モデリングできない
- ワークショップ
- 色々覚えないといけないのが大変
- 重厚長大なのでエッセンスだけ
- 結局一通りやってる
- 新人とペアプロでリファクタリング一緒にやったらOOP半年で理解できた
- 必ず上手くいくわけではない
- トップダウンで学びたい人もいるはず
- モデリングを目的に勉強むずかしい
- リファクタリングを設計の本と思ってない人がいる
- DDDのコミュニティとか草の根で開催されているものを集めていきたい
- 今の人はクラス図描いたことない
- 書く習慣作るだけで変わってくる
- UMTPでワークショップやってたりする
- jigとかあるので、javaをマークアップ言語として使うとか考えても良いのでは?
- 一旦振り切ってやってみるのがいい
- 本をきっちり読むこと
- アウトプットすること
おまけ
- 最初に紹介した本の読み方動画
Discussion