t0mmy

2020年12月30日に参加

学習履歴詳細

現場で役立つシステム設計の原則

やったこと

  • 現場で役立つシステム設計の原則 3章 輪読会参加
  • 現場で役立つシステム設計の原則 4章

学んだこと

複雑な業務ロジックを実装する場合は、ドメインモデルの利用を推奨

ドメインモデル

ドメインオブジェクトを集めて、体系的に整理したもの。
アプリケーションの対象領域の関心事を、データとロジックが一体となったオブジェクトとして分析し、その分析結果をそのままクラス設計に反映させる手法。

ドメインオブジェクト

業務の関心事を表現したオブジェクトのこと。
クラス名やメソッド名に、業務で使用する用語を用いる。
単なる用語の羅列ではなく、各用語の関連性をパッケージやクラスの参照関係で表現し、業務そのものを表現する。

ドメインモデルを開発する

やることは、大きく以下の二つ。

  1. 分析 : 人間のやりたいことを正しく理解する
  2. 設計 : 人間のやりたいことを、動くソフトウェアとして実現する方法を考える

ドメインモデルを採用する利点

業務の関心事が、そのままドメインオブジェクトに反映されるようになる。

利点1 修正や機能追加が楽に

業務の関心事をうまく整理できていれば、どこに何が書いてあるのか発見しやすくなる。
これは、修正や機能追加に、迅速に対応できることを意味する。

利点2 変更が楽になる

うまく設計されたドメインオブジェクトは、他のドメインオブジェクトと最低限の依存関係を構築する。
プログラムを変更しても、他の個所に変な影響を与えるといったことが減る。

分析と設計を同じ人が担当すると、分析と設計が乖離しにくくなる。

ドメインモデルをどうやって作っていくか

手続き型のアプローチ

大まかな全体像を定義し、分割と細分化を進める。
いわゆるトップダウン。

オブジェクト指向のアプローチ

小さな部品を作り、それらを組み合わせて全体像を作り上げる。
重要な部分から作っていく。
開発を進めつつ、修正や拡張を繰り返しながらドメインモデルを充実させていく。
いわゆるボトムアップ。

全体を俯瞰する

オブジェクト指向にて、全体を俯瞰する道具

  • パッケージ図
  • 業務フロー図
設計

2022年04月21日(木)

3.0時間