4

CakePHP を使用したサーバー側 MVC アプリ開発の経験が数年あり、さらにバニラ PHP を使用した経験もあります。残念ながら、Mootools を使用して静的ページにスパイスを加えた経験はありますが、JS アプリについては同じことは言えません。

だから今、私はクライアント側のアプリ構築を研究しようとしていますが、これまでの成功はそれほど大きくありません. 私が触れた MVC は CakePHP だけなので、すべての JS MV* フレームワークはせいぜい理解できないようです。きれいな CakePHP と Mootools クラスのコードを書くことに慣れすぎて、JS コードの大きなブロックが無秩序に感じられるようになったことは、まったく役に立ちません。

私は、CakePHP を模倣して、主に学術的な使用のために、独自の単純な MVC のようなライブラリを作成しようとさえしました。言うまでもなく、私はそれで本当にどこにも行きませんでした。

自分の MVC を勉強して書いているときに気付いたことがいくつかあります。

  • Js は非同期です。PHP は同期的であるため、CakePHP はそのように動作します。JS には、別の方法で実装する必要があることの無限のリストと、非同期のおかげで別の方法で実行できることの長いリストがあります。サーバー側 MVC (またはその CakePHP 実装) とクライアント側 MV* の最も重要な違いは何ですか?
  • 私はまだクライアント側モデルの概念をよく理解していません。Cake では、データ検証とデータベース接続を処理します。一方、クライアントは安全でない環境であるため、クライアント側のモデルは基本的なデータ フィルタリング、事前検証、およびデフォルト値しか実行できません。ここで私は完全に間違っていますか?
  • 一部のアプリには、対応するサーバーが必要です。サーバーもMVCにする必要がありますか?
  • クライアント側の MV* では、複数のコントローラーを同時に持つことができるようです。用途があることはある程度理解できますが、現時点での私の知識は非常に少なく、「それは何の役に立つのですか?」よりも適切な質問を思いつくことさえできません。

また、 TodoMVCをダウンロードして、さまざまなフレームワークを調べようとしましたが、ほとんど成功しませんでした。それの主な問題は、それが単一ページ(アクションは異なるURLで発生しますが、レイアウトは同じままです)であり、実装が非常に異なるため、最適なフレームワークを見つけることは言うまでもなく、基本を理解することさえ困難です。私のため。また、サーバーとはまったく通信しません。これは、さまざまなフレームワークがどのように通信するかを確認したかったので、非常に残念です。

したがって、この質問に対する最適な答えは、Client-side JavaScript MV* For Dummies (サーバーサイド MVC の経験しかない)という本へのリンクです。これにより、通常の StackOverflow に加えて約 500 のインターネットを獲得できます。報酬。

私のとりとめのない質問のトピックに関する洞察(完全なリンク)に非常に感謝します。あなたには通常の +1 が与えられます。さらなるインセンティブとして、あなたのニックネームをポストイットに書いて、翌月まで私のモニターに保管することをお約束します。もちろん、最も役立つ回答をした人は承認され、さらに、ニックネームに沿って印刷する写真を提供して、私のモニターに添付することもできます.

4

1 に答える 1

0

I'm interested to know where you ended up on this one. PHP was my first love, and while I still enjoy the ease of the language, it's hard to really take it seriously when it so clearly is being phased out for faster, more scalable technologies.

You hit it on the head that javascript's asynchronousness complicates things, but it definitely opens the doors for performance increases. There are quite a few libraries (more for node.js than client side work) that aim to make javascript written as if it's synchronous - again I don't see it helping with your current ask, but it's good to know other's share your pain.

I think MVC in javascript can be thought of like this:

M: the models are simply an explanation of your data. So if you have a person, you can say that every person has a first name that's a string, an age that's an int and so on. Now whenever you create a new person, you can have validation. Models, client side, tend to be very simple, I've found.

V: views are another interesting thing. Some like to have a big set of render functions that contain strings of HTML (ew). Other's like to have the views just be a wrapper for a templating engine like handlebars.js (probably a better solution).

C: functions pretty much identically to a controller in PHP.

My advice for you would be to NOT write you own, but rather take Backbone.js (quicky becoming the industry standard), learn it inside and out, and perhaps build on top of it.

Good luck!

于 2013-03-27T20:01:45.263 に答える