しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

レイヤ化アーキテクチャとは何か調べてみる

ドメイン駆動設計について調べていく中でレイヤ化アーキテクチャと言う概念が出てきたので調べてみました。

レイヤ化アーキテクチャ

名前の通り、アプリケーションをレイヤ毎に分ける設計手法を指す言葉のようです。
MVCやMVP等もレイヤ化アーキテクチャの一種と言えそうです。

ドメイン駆動設計におけるレイヤ化アーキテクチャ

ドメイン駆動設計・アプリケーション構築編・レイヤ化アーキテクチャ - Strategic Choice
こちらの記事を参考にさせて頂きました。

ドメイン駆動開発では層を下の4つに分け、どの中のドメイン層を重視していきます。

  • ユーザインタフェース層
  • アプリケーション層
  • ドメイン
  • インフラ層

ドメイン層を構成するもの

ドメイン層のオブジェクトは役割によって更に細かく分割されます。
サイトによっても違うのですが、オブジェクトは下の役割で分けられる事が多そうです。

  • データ自体を表すオブジェクト(User、Company等)
  • データのCRUD処理を行うオブジェクト
  • データを処理(CRUDの実行)するオブジェクト

参考URL

Rails - 中規模Web開発のためのMVC分割とレイヤアーキテクチャ - Qiita
» ドメイン駆動設計をかじってみる TECHSCORE BLOG
2.4. アプリケーションのレイヤ化 — TERASOLUNA Global Framework Development Guideline 1.0.0.publicreview documentation
4.1. ドメイン層の実装 — TERASOLUNA Global Framework Development Guideline 1.0.0.publicreview documentation