skillup

技術ブログ

PHP プログラミング全般

アプリケーションアーキテクチャについて 〜ドメインモデルに関して〜

投稿日:

前回のトランザクションスクリプトパターンの反省から

今回はいわゆるドメインモデルの具体例に関して。

ドメイン駆動型設計には以下のような特徴があります。

大きく、アプリケーションの構成を以下のように分けます。

主な構成

ルーティング

URLとコントローラの橋渡し

コントーラー

URLからビューまでの橋渡し

サービス

一連のビジネスロジックの記述部分

リポジトリ

DB(エンティティ)とのやりとりなど

エンティティ

DBをオブジェクトに置き換えたものです。

ビュー

実際のHTML部分

のように分けるのが一般的です。

個人的に上記のような形で処理を書いて見ましたが、

  • 細かい仕様変更があった場合に上位(例えばコントローラー)の修正を必要としなくなる
  • 規模によってはサービスとリポジトリを分ける必要がないかも
  • 単純な検索プラスCSV出力などの機能を言われた時に下位(サービス以下)の処理を使い回すことができる
  • テストがしやすい

などのメリットが多々あります。

参考文献

PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応 (日本語)

Laravelアーキテクチャ 3 アプリケーションアーキテクチャ

参考URL

ドメイン駆動開発入門

-PHP, プログラミング全般
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

CakePHP3 Unitテスト モデル編

長らくやろうやろうと思っていながら手がつかなかったCakePHP3のユニットテストについて。 以前にも何らかのエントリーで書いたのですが(下記参照)、モデル系はなかなかやらなかったので、これを機に説明 …

no image

フレームワークの基本的なアーキテクチャについて

フレームワークで大事なのは基本的な文法ではなく、構造の理解だと思います。 PHPですとCake,Laravel,Synfonyなどありますが、1つのものでしっかりと理解できていれば他のものもそれほど問 …

no image

Laravel5.4インストール&ルーティング

来月からの仕事でLaravel5.4を使うことになったのでテストがてら自宅で勉強。 とりあえず下記リンクが参考になりました。 Laravel5.4でシンプルなCMSを作るチュートリアル 初めてのLar …

no image

例外・エラーに関する考察

えー今現在、設計の仕事をしていますが、今までいい加減だったエラーの処理を見直すいいきっかけになってます。 半年前にも同じような記事書いてますねー。苦手意識は変わらないようです・・(汗) 例外処理に関し …

no image

webの仕組み その2 リクエストとレスポンス

クライアント(ブラウザ)はサーバーとの接続を確立した後、各種リクエストを送信します。サーバーはそれにこたえテキストや画像などのリソースをクライアントに転送します(これがレスポンスです。) Firefo …

アーカイブ