ビジネスロジックは、ソフトウェア開発において最も重要な概念の一つです。
ビジネスロジックについて改めて考えることがあったので、振り返りも兼ねてまとめてみました。
この記事では、ビジネスロジックの定義、具体例、そして設計で注意すべき点を紹介します。
- ビジネスロジック
- 設計
ビジネスロジックとは何か?

ビジネスロジックとは、アプリケーションの「中核的な動作ルール」を指します。
これには、業務の流れ、データの処理ルール、エラーチェック、計算、条件分岐といった機能が含まれます。
例えば、オンラインショッピングサイトでは、次のようなビジネスロジックが含まれる可能性があります。
- 商品をカートに追加しようとした際の在庫チェック
- 注文金額が一定額以上で送料を無料にする計算
- ユーザーの会員ランクに応じた割引の適用
これらはWebアプリ、モバイルアプリやAPIであろうが処理内容が異なることはありません。
つまり、サービスの中核を担う処理です。
ビジネスロジックの位置づけ
ビジネスロジックは、アプリケーション全体のアーキテクチャにおいて次の3層の一部として存在します。
- プレゼンテーション層
- ビジネスロジック層
- データアクセス層
プレゼンテーション層やデータアクセス層は今回は扱いませんが、ビジネスロジックは「中間層」に位置し、ユーザーからの操作を受けて必要なデータを処理・整形し、プレゼンテーション層へ戻す役割を果たします。
具体例で考えるビジネスロジック

具体例とともにビジネスロジックについて見ていきましょう。
銀行システム
銀行システムについて考えます。ユーザーがATMで引き出し操作を行う際、ビジネスロジックは以下を処理します。ただし、筆者は銀行システムの裏側を正確に把握しているわけではないため、以下の処理通り行われているとは限りません。
- 残高が引き出し金額以上か確認
- 手数料の計算
- 残高からの減算
残高が引き出す金額以上であるか確認しなければいけません。この確認はどんな時でも内容に変わりはありません。そのため、ビジネスロジックに含まれます。
月1回だけ手数料がかからないというサービスがある場合、ATMの機種によらず処理内容が一致しなくてはいけません。
その後、残高からそれら合計金額を引き算します。
サブスクリプションサービス
サブスクリプションサービスもビジネスロジックを考える上ではわかりやすそうです。
ユーザーがサブスクに加入したら必ずサービスを受けられるようにしなくてはいけません。
これは、パソコンから申し込もうが、スマホから加入しようがサービスの内容が変わりません。つまり、システムの中核です。(デバイスによって若干の処理内容の違いがあるかもしれませんが、ここで考えているのはサービスの本質部分です。)
課金処理や自動更新もビジネスロジックに含まれそうです。
まとめ

ビジネスロジックは、アプリケーションの成功を左右する重要な要素です。
その設計は、業務の効率性を高め、エラーのリスクを減少させ、ユーザー体験を向上させます。
この記事を通して、筆者自身もビジネスロジックについて改めて考えることができました。
最後までご覧いただき、ありがとうございます。お疲れ様でした。
コメント