0

MVCについて学ぶのは初めてです。

特に backbone.js のようなフロントエンド ライブラリを使用する場合に、バックエンドではなくフロントエンドでどのようなロジックを使用するかを分割して決定するためのヒューリスティック (プログラム的に話さない) があるかどうか疑問に思っています。

つまり、backbone.js のようなライブラリはデータを DOM 要素から分離するため、サーバー側で実行されていた洗練されたクライアント側のロジックを作成するのに役立ちます。

前もってありがとうジョーイ

4

3 に答える 3

2

モデル - ビュー - コントローラーを実行する「古典的な」方法は、サーバー上に 3 つすべてを配置することです。次に、HTML および一部の JS のビュー レイヤー出力がブラウザーによってレンダリングされます。

Rails はその好例です。

「新しいクールな」方法は、ブラウザーをメインのコンピューティング エンジンとして扱い、バックエンド サーバーがservicesAPI を介して提供することです。

この場合、モデル、ビュー、およびコントローラー ソフトウェアはすべてクライアント上で (Javascript または coffeescript として) 実行されます。Backbone は多くの場合、ブラウザ側のソリューションの一部ですが、spine、angularJS などの代替手段があります。

バックエンド サーバーでは、dbms と適切な API システムを実行します。Ruby/Rack で構築されている優れたフレームワークがいくつかあります。Daniel Doubrovkine による code.dblock.org の投稿を参照してくださいここには多くの選択肢があります。

クライアントでの MVC の利点

  • ユーザー向けのレスポンシブ ユーザー インターフェイス
  • クールな Ajaxy 単一ページ効果
  • 単一ページの Web アプリケーションは、通常の Web サイトよりもはるかに高速な UI をユーザーに提供できます
  • 優れたアーキテクチャ、iPhone/Android アプリの構築を目的とするイネーブラー
  • アプリによっては、ネットワーク接続なしで動作するスタンドアロンの Web アプリを作成するために使用できます。
  • これは、多くのクールな子供たちが最近やっていることです

短所

  • 古いブラウザー、IE などへのアプローチを決定する必要がある
  • コンテンツを検索エンジンで利用できるようにするのは難しい場合があります。検索エンジンのためだけにシャドウ Web サイトが必要な場合があります
  • テストは困難な場合があります。ただし、AngularJS などのテスト容易性に重点を置いた新しいライブラリを参照してください。
  • このアプローチにはより多くのソフトウェアが必要であり、作成とテストに時間がかかります。

選ぶ

それはあなた次第です。決定は、時間枠、リソース、経験、ニーズなどによって異なります。バックボーンなどを使用する必要はありません。そうすることはトレードオフです (上記を参照)。使用しない方が常に高速/簡単ですが、使用しない (または同様のもの) と目標を達成できない場合があります。

Rails だけで、またはアドオン ライブラリを使用した PHP やその他の MVC ソリューションから、優れた MVC アプリを構築できます。

于 2012-05-07T21:50:47.707 に答える
1

プログラム以外の意味でヒューリスティックという言葉を使用していると思いますか?つまり、「経験則」に沿って何かを意味するためにそれを使用していますか?

経験則として:

  • UX と SEO の理由から、サーバーに最初のページ読み込みをレンダリングさせたい。
  • 同じ理由で、サーバーによって後続の AJAX 部分ページ読み込みがレンダリングされることもあります。プロファイリングして、どちらが高速かを確認します。サーバーに余分なデータ (マークアップ) をレンダリングして転送させるか、より簡潔なペイロード (JSON を使用) を送信してクライアントにレンダリングさせるか。クライアントでのレンダリングが遅くなる可能性があるモバイル デバイスを考慮する場合は特にトレードオフがありますが、インターネット接続が遅いモバイル デバイスもあります...
  • あらゆるクライアント サーバー アーキテクチャと同様に、クライアントで高速な応答性を必要とする処理をクライアントに実行させてから、同じタスクを実行するサーバーに非同期操作を送信する必要があります。

結論は漠然としていますが、真実です。すべてはトレードオフであり、製品に必要なものを決定する必要があります。

于 2012-05-07T21:34:37.060 に答える
0

最初に頭に浮かんだのは、セキュリティと検索の 2 つです。

  • サーバーでの読み取り/書き込みアクセスを常に制限する必要があります。
  • ほとんどの場合、検索機能をできるだけデータに近づけたいと思うでしょう。
于 2012-05-08T10:00:34.560 に答える