2020-06-22 23:42:29
「ビジネスロジック」とか「ドメインサービス」とか「ドメインロジック」とか「アプリケーションサービス」とか混乱するからフィーリングで一旦整理する
はじめに
ドメイン駆動設計やクリーンアーキテクチャに出てくる単語たちの個人的なフィーリングで整理します。
「ビジネスロジック」とか「ドメインサービス」とか「ドメインロジック」
自分の中で「ビジネスロジック」≒「ドメインサービス」≒「ドメインロジック」な関係です。システム固有のルールを記載する場所の名前で理解します。
ブログシステムであれば以下のようなルールを記載する場所とします。
- 記事タイトルは10文字以上30文字以下とか
- 本文は2000文字以下とか
- カテゴリは必ず設定するとか
「アプリケーションサービス」
システム固有のルールを使用してアプリケーションとして成立させ処理(ユースケース)を記載する場所の名前で理解します。ブログシステムでは「記事タイトルは10文字以上30文字以下」というルールは記事を投稿するときの処理で使用することは勿論ですが、記事を更新する際にも使用します。
より具体的に言うと、「投稿する」というユースケースの中には以下のようなものがあるかもしれません。
- バリデーション処理を行う(上記の文字数チェックとか)
- エラーがあればエラー処理を行う
- 正常に投稿したらTwitterに投稿通知を行う
- 正常に投稿したらSearch Consoleにサイトマップ送信を行う
めっちゃ豪華なブログシステムな気がしますがデータベース保存する以外にもアプリケーションとして成立させる処理が行われる場合があります。
システム固有のルールを1箇所に管理することで冗長なコードを避ける
ブログシステムの場合、投稿するときと更新するときに「記事タイトルは10文字以上30文字以下」というルールを実現するコードを別々に記載すると冗長になってしまいます。これを避けるために「ビジネスロジック」に記載する。
終わり
以上です。考えが変わったら記事書いていきます。
Arek SochaによるPixabayからの画像