Web アプリケーションが 100% クライアント側のコードでない限り、フロントエンドとバックエンドを分離する必要があります。現実の世界では多くの調整が必要になることが多いため、またはアプリケーションが小さすぎるため分離する必要がないため、API とクライアント アプリケーションを個別に開発するのに時間を費やす必要はないという罠に陥ることがよくあります。
この種のアプリケーションを私はオールインワン アプリケーションと呼んでいます。この種のアプリケーションでは、ビジネス ロジックとユーザー インターフェイスはサーバー上で実行される 1 つのエンティティです。ただし、フロントエンドとバックエンドが独立した Web アプリケーションを持つことには多くの利点があります。
1. モジュール化
アプリケーションをフロントエンド アプリケーションとバックエンド アプリケーションに分割することの利点の 1 つは、モジュール化です。アプリケーション ロジックはユーザー インターフェイスから完全に分離されているため、Web アプリケーションはすでに基本的なモジュール構造を備えている可能性があります。モジュール性は、テスト、読みやすさ、保守性など、さまざまな面で役立ちます。
2. 再利用性
単一の API を使用すると、アプリケーション ロジックを多くのアプリケーションで再利用できます。つまり、API を使用するモバイル アプリを作成したり、まったく別のアプリで API を使用したり、他のユーザーが API (無料または有料) にアクセスできるようにしたりすることができます。
3. コンテンツ配信
クライアント アプリケーションは完全に独立したエンティティであるため、UI をサーバー側でレンダリングする必要があるアプリケーションでは利用できない高度な静的ファイル サービス技術を扱うことができます。たとえば、NGINX といくつかの簡単なルールを使用して、クライアント アプリケーション全体をキャッシュに置くことができるようになりました。
4. 応答性
「オールインワン」サーバーサイド アプリケーションの最大の欠点の 1 つは、フィードバック ユーザーの応答性の側面です。サーバー側アプリケーションでは、ユーザーがボタンをクリックしてデータを取得します。
1. ユーザーがボタンをクリックしてデータを取得します。2. ブラウザーがサーバーにリクエストを送信します。
3.サーバーはデータベースにクエリを実行します
4. アプリケーションはデータに対して論理処理を実行します
6. サーバーは、ページが表示されるのを待った後、ユーザーに応答を返します
ロードすると、フィードバックが表示されます
8. 別のクライアント アプリケーションを使用すると、ローダーやプログレス バーの使用など、さまざまなフィードバック メカニズムを利用できます。リクエストが (AJAX 呼び出しなどを介して) 返されたら、表示を更新できます。
5. バージョン管理
はい、5を追加しました。 API プロジェクトと UI プロジェクトを別々にすると、2 つのアプリケーションを同時に更新またはデプロイする必要がなくなりました。新しくデプロイされた UI で重大な問題が発生した場合は、API プロジェクトで行ったパフォーマンス向上のための調整への影響を心配することなく、UI をロールバックできます。
全体的なアーキテクチャの利点は何ですか?
この分離されたアーキテクチャには多くの利点があります。ただし、モノリシック アーキテクチャを使用することにはいくつかの利点があります。たとえば、アプリケーションがプロジェクトに含まれている場合、開発作業をより速く完了できます。 UI と API を別々にすると、より多くのコーディングが必要になることは周知の事実です (ただし、多くのフレームワークによりこれが簡単になります)。セキュリティ上の利点もいくつかあります。たとえば、実際には API をまったく公開しません。 API を保護する方法はありますが、公開しない方が賢明です。他にもメリットがあると思われる場合は、コメントを残してそれについて話し合ってください。
結論
これは、多くのソフトウェア開発者にとってごく普通の選択のようです。ただし、この概念に慣れていない、または単に怠けているため、このアーキテクチャをまったく採用しない人もいます。全体的なアーキテクチャに関しては、この構造を使用していないものの、非常に成功している例がたくさんあります。しかし、私がさらに感じているのは、API と UI を分離することが将来的に多くのメリットをもたらすということです。この概念をまだ試したことのない開発者は、試してみて、フロントエンドとバックエンドの分離の利点を自分で感じてみることをお勧めします。
以上がWeb APP UI と API を分離する 4 つの理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。