アプリケーションに関するドキュメントを書こうとしていますが、アーキテクチャをどのように説明すればよいか混乱しています。
私が行った調査に基づいて、プレゼンテーション層は React アプリケーション、ビジネス/アプリケーション層は Spring Boot アプリケーション、データ層は MySQL であると考えました。
これは私にとって論理的であるように思えましたが、私はこのチュートリアルに遭遇しました
https://www.youtube.com/watch?v=xJC7ItRoEbw&ab_channel=Amigoscode
彼は 10:38 あたりで、コントローラーはプレゼンテーション層の一部であると言っていますが、これは私がすでに知っていることと結びついていないように思えます。
私の最初の考えを表現した別のチュートリアル https://www.youtube.com/watch?v=udzBtJv2uls&ab_channel=Izenda があります。
また、Spring Boot アプリケーションにはコントロール、サービス、リポジトリ (または DAO) の複数の層があることはわかっているので、これらの情報をすべて結合したいのですが、何かを書くかどうかはわかりません問題があれば大変です
私のプロジェクトに基づいてこれらを説明してもらえますか?フロントエンドには、一般的なコントローラーに get リクエストを送信する React アプリがあります。このコントローラーは、データベースと通信してクエリを実行するリポジトリ メソッドを呼び出すサービス メソッドを呼び出します。
P粉2880690452024-04-04 09:29:27
ビデオでは、プレゼンターは非常に非公式で、レイヤーを何度も同じ意味で使用しています。多くの人がこれを行っていますが、コンテキストの意図を理解する必要があります。
私にとって、層とは通常、異なるマシンへの分散を意味します。 MySQL の React コード、スプリングブート アプリケーション、クライアント ブラウザーは通常、すべて異なるマシン上で実行されるため、異なるレイヤーになります。
ただし、「レイヤー」という用語はそのような配布を意味するものではなく、SpringBoot アプリケーションには、同じアプリケーション アーティファクトの一部である Web コントローラー レイヤー、サービス レイヤー、およびデータ アクセス レイヤーを含めることができます。この用語は、アプリケーション内のロジックがどのように編成されるかを説明するために使用されます。
Spring は、アプリケーションは、別個のクラスターでホストされ、ネットワーク経由で通信される ejb サーバーと呼ばれる Web アプリケーションを介してレイヤー内で構築される必要があるという一般的な想定に応えるものとして始まりました。 Spring の創設者は、アプローチを説明しやすくするためにレイヤーを区別しました。 Spring の主なアイデアを紹介するロッド ジョンソンの著書 One on One では、この表現が使用されています。コントローラーがプレゼンテーション層の一部であるかどうかについては議論の余地があります。私にとってプレゼンテーションとは、エンドポイントの公開やパラメーターの検証などの Web 固有のアクションをコントローラーが実行するルック アンド フィールを意味します。しかし、特に SPA では、プレゼンテーションはフロントエンド コード内にあり、サーバー側はデータを提供するだけです。 SPA コントローラーが登場する前は、コントローラーはサーバー上で HTML をレンダリングするビューに転送されていたため、コントローラーとプレゼンテーションはより密接に関連していました。