18

backback.jsは、JavascriptのMVCフレームワークとして話されています。しかし、それはそうですか?

これがモデルの説明です。http://documentcloud.github.com/backbone/から

モデルはJavaScriptアプリケーションの心臓部であり、インタラクティブデータと、それを取り巻くロジックの大部分(変換、検証、計算されたプロパティ、アクセス制御)が含まれています。ドメイン固有のメソッドを使用してBackbone.Modelを拡張すると、Modelは変更を管理するための基本的な機能セットを提供します。

さて、それはMVCのモデルについての私の理解ではありません。私の理解では、モデルはドメインをモデル化するクラスにすぎないため、Student、School、Teacherがオブジェクトになります。コントローラはそれらに対してビジネスロジックを実行し、ビューと対話して入力を表示および受信します。

この理解は、私がWebで見つけたさまざまな定義、IE http://en.wikipedia.org/wiki/Model_view_controller:と一致しています。

Model–View–Controller(MVC)は、アプリケーションを3つの責任領域に分割するコンピューターユーザーインターフェイスのデザインパターンです。

モデル:アプリケーションの状態を表すドメインオブジェクトまたはデータ構造。

だから、私の質問は、backbone.jsは本当に何らかの意味でMVCフレームワークなのか、それともすべてを接着するのに役立つ一般的な方法なのかということです。

ちなみに、backbone.jsのFAQからのモデルの定義は、上記で引用したものとは異なるようです(backbone.js http://documentcloud.github.com/backbone/#FAQ-mvcからも) :

Backbone.Model –Railsモデルからクラスメソッドを除いたものに似ています。データの行をビジネスロジックでラップします。

では、backbone.jsは実際にMVCであるかどうか、どのような意味でしょうか。

(警告:現在、backbone.jsを評価しています。)

4

6 に答える 6

19

バックボーンはそれらのMV*(MV-star)の1つです。アプリを操作するロジックがビューにあるため、コントローラーはありません(代わりにM(V + C)のようなもの)。

また、「モデル」は、異なる言語の異なるフレームワーク間で異なる方法で使用されるため、統一された定義はありません。ただし、一般的に、モデルはデータストレージを抽象化したものであり、オプションで、検証、フォーマット、状態変更フックなどのロジックが少し含まれています。

于 2012-05-24T21:54:05.067 に答える
11

「 M」(モデル)、「V」(ビュー)、「C」(コントローラー)を見つけようとすると、少し混乱します。

そのようにして、私たちは常に用語について議論することができますが、重要なのは意図です。

「用語」と「意図」の交差:

彼ら" :

バックボーンモデルコレクションはモデルに関連付けられています。

V" :

デフォルトのUnderscore.jsテンプレートは、標準MVCの「ビューインテンション」を表します

「C」:

バックボーンビューコントローラーです。レンダリングを処理するため、バックボーンでビューと呼ばれます( Djangoなどの他の多くの場合と同様)。MVCの観点からは、そのコントローラーです。ルートはビューと結びついています

現在、MVCの略語を満たすために、「モデルビューコレクション」と呼ばれることもあります。しかし、それは言われるべきではないことです。

于 2013-02-20T11:38:25.590 に答える
2

名前にこだわっていると思います。すべてのMVCフレームワークが同じ命名規則に固執するわけではありません。たとえば、Djangoでは、コントローラーはビューと呼ばれ、ビューはテンプレートと呼ばれます。バックボーンも同様の命名パターンに従います。バックボーンはビュー部分で非常に柔軟性があり、特定のテンプレートライブラリを適用しないことに注意してください。

すでに述べたように、バックボーンモデルに含まれるロジックは、モデルの関心事であるロジックです。モデル(テーブル)のコレクションである標準のリレーショナルデータベースは、通常、列のデータのタイプを考慮します。

通常、コントローラー(Backboneの「ビュー」)に含まれるロジックは、一時的なセッションデータの処理、ユーザーの状態の確認(たとえば、jsでは認証されません)、ビューのモデルへのバインド(Backboneは行います)などです。まさにこれで、モデルの変更時に更新するためのユーザーアクションとバインディングテンプレートに基づいて、モデルが保存/作成される場所とタイミングを管理します)。

したがって、要約すると、Backboneは実際にはMVCに非常によく準拠しており、通常は実際には「PAC」フレームワークであるほとんどのサーバー側の「MVC」フレームワーク(Presentation-Abstraction-Control)よりもはるかに優れています。

于 2012-05-24T21:57:50.317 に答える
2

両方の種類。モデルの厳密な意味を見ている場合; つまり、モデルは単なるデータであり、そうではありません。ただし、Backboneはかなりモデル中心であるため、検証や変換などが行われています。私自身の経験から、モデルはバックエンドデータストアのアプリケーション表現であり、そのデータを操作するためのアクセサーメソッドしかないという点で、通常、バックボーンモデルを従来の意味で扱います。

重要なのは、アクセス制御などを検証または実行する機能は存在しますが、より古典的なMVCパターンに従うことを選択できるということです。それは完全にあなた次第です。私がBackboneで気に入っているのは、アプリケーションアーキテクチャ全体を構築するためのMVCエンジンを提供することです。従来のMVCデザインパターンに従いたい場合は、確かにそれを行うことができます。乾杯!

于 2012-05-24T22:00:46.590 に答える
1

バックボーンで。JSMVCはMODELVIEWCOLLECTIONの略です..。

于 2012-05-24T22:46:13.153 に答える
1

Backbone.jsでコントローラーを探す場合は、おそらくこれを確認する必要があります:http: //chance-an.github.com/backbone-mvc/

于 2012-08-12T19:43:55.280 に答える