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