
t0mmy
2020年12月30日に参加
学習履歴詳細
現場で役立つシステム設計の原則
やったこと
- 現場で役立つシステム設計の原則 3章 輪読会参加
- 現場で役立つシステム設計の原則 4章
学んだこと
複雑な業務ロジックを実装する場合は、ドメインモデルの利用を推奨
ドメインモデル
ドメインオブジェクトを集めて、体系的に整理したもの。
アプリケーションの対象領域の関心事を、データとロジックが一体となったオブジェクトとして分析し、その分析結果をそのままクラス設計に反映させる手法。
ドメインオブジェクト
業務の関心事を表現したオブジェクトのこと。
クラス名やメソッド名に、業務で使用する用語を用いる。
単なる用語の羅列ではなく、各用語の関連性をパッケージやクラスの参照関係で表現し、業務そのものを表現する。
ドメインモデルを開発する
やることは、大きく以下の二つ。
- 分析 : 人間のやりたいことを正しく理解する
- 設計 : 人間のやりたいことを、動くソフトウェアとして実現する方法を考える
ドメインモデルを採用する利点
業務の関心事が、そのままドメインオブジェクトに反映されるようになる。
利点1 修正や機能追加が楽に
業務の関心事をうまく整理できていれば、どこに何が書いてあるのか発見しやすくなる。
これは、修正や機能追加に、迅速に対応できることを意味する。
利点2 変更が楽になる
うまく設計されたドメインオブジェクトは、他のドメインオブジェクトと最低限の依存関係を構築する。
プログラムを変更しても、他の個所に変な影響を与えるといったことが減る。
分析と設計を同じ人が担当すると、分析と設計が乖離しにくくなる。
ドメインモデルをどうやって作っていくか
手続き型のアプローチ
大まかな全体像を定義し、分割と細分化を進める。
いわゆるトップダウン。
オブジェクト指向のアプローチ
小さな部品を作り、それらを組み合わせて全体像を作り上げる。
重要な部分から作っていく。
開発を進めつつ、修正や拡張を繰り返しながらドメインモデルを充実させていく。
いわゆるボトムアップ。
全体を俯瞰する
オブジェクト指向にて、全体を俯瞰する道具
- パッケージ図
- 業務フロー図
設計
2022年04月21日(木)
3.0時間