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