(Userクラスの)問題解決
問題それぞれに応じたモデリングをし直そう
問題(関心事)にそれぞれ対応するモデルを設計し直そう
あるべき設計が見えてくる
モデリングに必要な考え方
関心の分離
関心事ごとに分離
分割統治
小さな問題に分割し、個別に解決
関心事それぞれに対応するモデリングをする
では、関心事の分離をどうやるのか
2つ
1. 主語クソデカ問題
名前は点ではなく範囲を示す
クソデカな例:「商品」「Userクラス」
「商品」は指し示すものがあまりにも広すぎる
名前設計が超重要
意味範囲の狭い言葉を選ぶ
ザルな解釈を許容しない
一意に意味を特定可能
各モデルの関係を最小限に抑えられる
商品→予約品、注文品など
Userクラス→個人、法人
2. ユースケース図のアクターをそのままモデル化しない
アクターとユースケース
システムはユースケース(四角い箱)
アクターはシステム(図の箱)の外
そのままモデル化すると表現として歪となる
システム上の表現に注目する
GitHubのAccount settingsは秀逸。関心事で分かれている
個人アカウントと法人アカウント + プロフィール
サービスの関心事に応じたモデルがさらに作られる