「ビジネスロジック」の版間の差分

ページの作成:「'''ビジネスロジック'''(英語:business logic)とは、業務システムにおける業務の動きのことである。 ==概要== 大雑把にビジ...」
 
編集の要約なし
 
(3人の利用者による、間の8版が非表示)
1行目: 1行目:
'''ビジネスロジック'''([[英語]]:business logic)とは、業務システムにおける業務の動きのことである。
'''ビジネスロジック'''([[英語]]:business logic)とは、業務システムにおける「業務の動き」のことで、[[UI]]などの表面的な部分を除いた核心部分のことです。


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


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


いわゆる「3階層システム」(3-tier system)では、プレゼンテーション層(ユーザインターフェース層)とデータアクセス層(データベース層)の中間に位置し、ビジネスロジック層あるいはアプリケーション層と呼ばれる。
ビジネスロジックは[[フロー]]と[[データ]]で出来ており、人間による詳細な操作などは排除されたものであり、この段階ではプラットフォームには依存しない。
ビジネスロジックは[[フロー]]と[[データ]]で出来ており、人間による詳細な操作などは排除されたものであり、この段階ではプラットフォームには依存しない。
[[仕様書]]のようなものである。
[[仕様書]]のようなものである。
[[プログラマ]]に馴染みの深い[[MVC]]や[[MVVM]]でいう「モデル層」をさらに細分化して、ビジネスロジック層(データに対する操作)とデータアクセス層(単純なデータ、いわゆる[[POCO]])にしたものと思ってほぼ間違いない。このためMVCと3階層システムを混ぜると、モデル層がビジネスロジック層とデータアクセス層に分解され、データアクセス、ビジネスロジック、ビュー、コントローラの4階層になる。
* モデル(ビジネスロジック、データアクセス)
* ビュー(ユーザーインターフェイス)
* コントローラ(その他)


==MVVMとの相性==
==MVVMとの相性==
14行目: 20行目:
ビジネスロジックを[[MVVM]]を使用して仕様書から[[ソースコード]]に落とし込むと[[モデル]]と[[ビューモデル]]に相当する部分が出来上がる。
ビジネスロジックを[[MVVM]]を使用して仕様書から[[ソースコード]]に落とし込むと[[モデル]]と[[ビューモデル]]に相当する部分が出来上がる。


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


==MVCとの相性==
==MVCとの相性==
23行目: 29行目:
*[[ASP.NET Web API/NUnitでユニットテストを行う‎]]
*[[ASP.NET Web API/NUnitでユニットテストを行う‎]]


==参考文献==
[[category: プログラミング]]
{{reflist}}
 
{{stub}}