サービスの分割

サービスの分割

分割のガイドライン

オブジェクト指向設計の原則のうちの2つを意識するとよりよいアーキテクチャの設計の指針になる。

  • 単一責任の原則
    • クラスを書き換える理由は1つでなければならない
    • 各サービスでこの原則が貫かれていれば、小さい単一の責務を担うサービスにできる
  • 閉鎖性共通の原則
    • 1つのパッケージにまとめられるクラス郡は同じ種類の変更に対してともに影響をうけるべきである。
    • ビジネスルールが変更されたときの影響が最小限になるように抑える

Decompose by business capability パターン

業務(business capability)による分割のパターン。
業務とは、企業が価値を生成するためにおこなう仕事の種類。業務自体が変更が少なく安定しているため、アーキテクチャ自体も安定しやすいというメリットがある。

  1. 業務の洗い出し
    企業の目的、構造、ビジネスプロセスから洗い出す
  2. 業務からサービスを定義
    ここの業務または、業務グループのために1つのサービスを定義する

Decompose by sub-domain パターン

[ドメイン駆動設計]を用いた分割パターン。
ドメインからサブドメインを洗い出し、サブドメインごとにドメインモデルを定義する。ドメインモデルの範囲を境界づけられたコンテキストと呼ぶ。
個々の境界づけられたコンテキストは、サービスまたは、サービスを束ねるグループとして扱えるゾ。
ドメインモデル:ドメイン内の問題解決に使えるドメインの知識を捉えている