ビジネスロジック

2025年7月17日 (木) 02:13時点におけるAdministrator (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

ビジネスロジック英語:business logic)とは、業務システムにおける「業務の動き」のことで、UIなどの表面的な部分を除いた核心部分のことです。

「ビジネス」とありますが実際には業務システムに限ったものではなく例えばゲームのメイン処理もビジネスロジックです。

概要 編集

大雑把にいえばビジネスロジックはデータに対するUI部分を除いた操作であり、業務内容として本来あるべき流れです。業務内容のフローチャートCRUD図的なデータの整合性を保つような仕様まで書き込んだものだと思えば間違いない。

いわゆる「3階層システム」(3-tier system)では、プレゼンテーション層(ユーザインターフェース層)とデータアクセス層(データベース層)の中間に位置し、ビジネスロジック層あるいはアプリケーション層と呼ばれる。 ビジネスロジックはフローデータで出来ており、人間による詳細な操作などは排除されたものであり、この段階ではプラットフォームには依存しない。 仕様書のようなものである。

プログラマに馴染みの深いMVCMVVMでいう「モデル層」をさらに細分化して、ビジネスロジック層(データに対する操作)とデータアクセス層(単純なデータ、いわゆるPOCO)にしたものと思ってほぼ間違いない。このためMVCと3階層システムを混ぜると、モデル層がビジネスロジック層とデータアクセス層に分解され、データアクセス、ビジネスロジック、ビュー、コントローラの4階層になる。

  • モデル(ビジネスロジック、データアクセス)
  • ビュー(ユーザーインターフェイス)
  • コントローラ(その他)

MVVMとの相性 編集

ビジネスロジックはフローとデータで出来ているため、人間による詳細な操作などは排除されたものであり、この段階ではプラットフォームには依存しない。 このような特性からプログラミングデザインパターンでいうMVVMと非常に相性がよい。 ビジネスロジックをMVVMを使用して仕様書からソースコードに落とし込むとモデルビューモデルに相当する部分が出来上がる。

このソースコードとして実際に機械的には動く状態、シミュレーション実行できる状態にされたビジネスロジックに対して単体テストなどを駆使してバグを排除できれば最低限の品質は保証できる。紙の仕様書より強固なシミュレーションできる仕様書が完成するのである。これは、たとえユーザーインターフェースが凶悪最低でも「動くことは動く」という状態までは持っていけることを意味する。

MVCとの相性 編集

ビジネスロジックという考え方は、広く使われているMVCではコントローラーに人間の操作に依存する部分が書かれてしまうことが多いため完璧に表現することは難しい。だがモデルにビジネスロジックに相当する部分を全てを記載するよう努力すればかなり良いところまでいける。

関連項目 編集