ウィキペディアによると:
MVCは、データベース、ユーザー、およびデータ処理コンポーネントのフロントエンドとバックエンドを提供します。ソフトウェアシステムをフロントエンドとバックエンドに分離することで、開発が簡素化され、メンテナンスが分離されます。
model-view-controllerの原則と、フロントエンドおよびバックエンドの概念との関連性はまだわかりません。データベースにアクセスできるモデルをバックエンドと見なし、ビューをフロントエンドと見なすことができますか?
ウィキペディアによると:
MVCは、データベース、ユーザー、およびデータ処理コンポーネントのフロントエンドとバックエンドを提供します。ソフトウェアシステムをフロントエンドとバックエンドに分離することで、開発が簡素化され、メンテナンスが分離されます。
model-view-controllerの原則と、フロントエンドおよびバックエンドの概念との関連性はまだわかりません。データベースにアクセスできるモデルをバックエンドと見なし、ビューをフロントエンドと見なすことができますか?
OK ..最初の用語:
GUIアーキテクチャを読み、MVCパターンを一般的に調査すると、 MVCはバックエンドとフロントエンドの分離に関するものではないことがわかります。特にMVCに着想を得たパターンに関しては、Webアプリケーションに使用します。
MVCおよび関連するパターンの目標は、プレゼンテーションをドメインビジネスロジックから分離することです。
MVCパーツの基本的な責任は次のとおりです。
例を見てみましょう:
これはすべて、クライアント側のJavaScriptで実行できます。「フロントエンド」を実行するMVCトライアドを持つことができます!同時に、RESTAPIを提供する「バックエンド」はMVCのような構造です。今回のみ、ビューはHTMLではなくJSON応答を生成します。
*結論: MVCパターンはバックエンドとフロントエンドの両方で使用できます。**
Railsを使用していくつかのアプリケーションを構築しているため、MVCの理解は歪んでいる可能性があります。私がこれを言う理由は、RoRが最初にプロトタイピングフレームワークとして作成されたため(使い捨てコードを生成するためのすべてのスキャフォールディングおよびその他の機能に注意してください)、その起源のために、Railsは実際には非常に貧血のバージョンのMVPを実装しているためです。
ビュー(単純なテンプレートではなく、MVPのパッシブオブジェクトである必要があります)とモデルレイヤー(はい、ORMインスタンスのコレクションではなく、複雑なレイヤーであると想定されています)の両方を弱体化させたため、これを「貧血」と呼びます。
このテーマをよりよく理解するために、2つの出版物を読むことをお勧めします。
2つ目は、パターンの初期定義にできる限り近いものです。それは、「GUIアーキテクチャ」の記事と合わせて、このテーマに関する確固たる基盤を提供するはずです。そして、PoEAAの本(ハードリード、ところで)はあなたにそれを拡張するための文脈を与えるでしょう。
たぶん、下の図が役立つでしょう。
MVC Human language backend/frontend
--------------- --------------- ---------------
model -> data -> backend
controllers -> actions -> backend/frontend (depends on implementation)
views -> GUI -> frontend
フロントエンドは、ユーザーに表示されるビューです。バックエンドはコントローラーとモデルです。
この場合、バックエンドとは、従来、より深いOSコード、またはユーザーに表示/制御されていないコードを意味します。
フロントエンドは、ユーザーが実際に見ているビューです。