ビジネスロジック
ビジネスロジック(英語:business logic)とは、業務システムにおける業務の動きのことである。
概要[編集 | ソースを編集]
大雑把にいえばビジネスロジックはデータに対するUI部分を除いた操作であり、業務内容として本来あるべき流れである。 業務内容のフローチャートにCRUD図的なデータの整合性を保つような仕様まで書き込んだものだと思えば間違いない。
いわゆる「3階層システム」(3-tier system)では、プレゼンテーション層(ユーザインターフェース層)とデータアクセス層(データベース層)の中間に位置し、ビジネスロジック層あるいはアプリケーション層と呼ばれる。 ビジネスロジックはフローとデータで出来ており、人間による詳細な操作などは排除されたものであり、この段階ではプラットフォームには依存しない。 仕様書のようなものである。
プログラマに馴染みの深いMVCやMVVMでいう「モデル層」をさらに細分化して、ビジネスロジック層(データに対する操作)とデータアクセス層(単純なデータ、いわゆるPOCO)にしたものと思ってほぼ間違いない。このためMVCと3階層システムを混ぜると、モデル層がビジネスロジック層とデータアクセス層に分解され、データアクセス、ビジネスロジック、ビュー、コントローラの4階層になる。
- モデル(ビジネスロジック、データアクセス)
- ビュー(ユーザーインターフェイス)
- コントローラ(その他)
MVVMとの相性[編集 | ソースを編集]
ビジネスロジックはフローとデータで出来ているため、人間による詳細な操作などは排除されたものであり、この段階ではプラットフォームには依存しない。 このような特性からプログラミングのデザインパターンでいうMVVMと非常に相性がよい。 ビジネスロジックをMVVMを使用して仕様書からソースコードに落とし込むとモデルとビューモデルに相当する部分が出来上がる。
このソースコードとして実際に機械的には動く状態、シミュレーション実行できる状態にされたビジネスロジックに対して単体テストなどを駆使してバグを排除できれば最低限の品質は保証できる。紙の仕様書より強固なシミュレーションできる仕様書が完成するのである。これは、たとえユーザーインターフェースが凶悪最低でも「動くことは動く」という状態までは持っていけることを意味する。
MVCとの相性[編集 | ソースを編集]
ビジネスロジックという考え方は、広く使われているMVCではコントローラーに人間の操作に依存する部分が書かれてしまうことが多いため完璧に表現することは難しい。だがモデルにビジネスロジックに相当する部分を全てを記載するよう努力すればかなり良いところまでいける。