6

NodeJSを使用してRTWebアプリを構築することを楽しみにしています。Railsから来て、NodeJSとAsyncJSプログラミングが大好きだと感じました。

Nodeを使っていくつかの実験を実行し、慣れるためのツールやリソースを検索すると、そこにあるたくさんのものに圧倒されました。

そこにはたくさんのライブラリとコンポーネントがあり、大規模で適切に記述され、実装されたRTWebアプリをどのように構築するかについてかなり混乱していました。

そのため、アプリはフレームワークNodeJSを使用して実行されExpressます。

自動UI更新などのリアルタイム機能を提供するクライアント側ライブラリについて読んだknockout.jsのですが、jQueryと組み合わせることができると思います。また、私は見つけましsocket.ioた。著者は次のよう に述べています。Socket.IO aims to make realtime apps possible in every browser and mobile device, blurring the differences between the different transport mechanisms. It's care-free realtime 100% in JavaScript. つまり、socket.ioは互換性に関するものです。どうbackbone.jsですか?どこに行くの?

たくさんのもので、私はショックを受けました。私は何を学ぶべきですか?勉強する価値のあるモジュールはどれですか?私はNodeJSとExpressに焦点を当てていますが、ほとんどの本/スクリーンキャストは古いバージョンのnodejsをカバーしています。そのため、公式APIに導かれています。今ここであなたのアドバイスを求めて、そこにあるすべての情報をどうにかして整理するためにここにいます。私の仮定が正確でない場合は私を訂正してください。正しい方向を示してください。私の学習に役立つ可能性のある他のモジュールを自由に提案してください。

前もって感謝します

4

2 に答える 2

7

node.jsサーバー側ライブラリ(npmなどを介して)をすべてのクライアント側(ブラウザ)ライブラリおよびjquery、バックボーン、ノックアウトなどのテクノロジーから分離すると便利な場合があります。 。(ポーリングを回避するために)ブラウザーとサーバー間の永続的なソケット接続を公開するsocket.ioでさえ、使用するクライアント側のテクノロジーを指示しません。

サーバーから堅実なWebAPI(ランダムな例)を公開することに焦点を当てると、サーバーに影響を与えることなく、クライアントテクノロジーを交換したり、拡張したりすることができます。それらが交差する唯一の場所は、Jadeのようなビューテクノロジーを使用している場合です。また、サーバーがクライアントファイルを提供しているだけで、クライアントがより厚いjavascriptアプリケーション(ノックアウト、jqueryなどを使用)であり、優れたサーバーWeb APIを呼び出す、純粋な分離を行うオプションもあります。

一部の人々は、クライアントモデルとサーバーモデルを統合しようとします。たとえば、この記事ではバックボーンとノードを使用しています。それが実行可能かどうかを判断するために使用するデータの量によって異なりますが、クライアントとサーバーを結合し、サーバーをステートフルにします。これにより、欠点(スケールアウト、アフィニティが必要など)が発生する可能性があります。個人的に、私はその多くの魔法(バインド、状態、同期など)に警戒します。ノードとは、物事をシンプル、軽量、高速に保つことです。これは高速のフロントエンドネットワークサーバーです。

私の2セント(そして一部は同意しないかもしれません)。サーバー上のノードから開始し、ストレージ(mongoDbなど)を選択します。堅実なRESTful(ハイパーメディア)APIを設計します-クライアントに関係なく優れたWebAPIです。次に、基本的なhtml / css / js、おそらくjqueryクライアントから始めて、クライアントのスキルを拡張しながらノックアウトなどを追加します。これにより、新しいテクノロジーの風が変化したときに、サーバーから独立してクライアントテクノロジーを置き換えることができます(そしてそうなるでしょう)。

これは、適切に設計されたシステムの特徴です。すべてを書き直すことなく、コンポーネント/サブシステムを置き換えることができます:)

それが霧の一部を取り除くのに役立つことを願っています:)

于 2012-09-25T02:41:22.923 に答える
0

リアルタイムのJavascriptアプリに焦点を当てている場合は、Meteorを確認することをお勧めします:http://meteor.com/

于 2013-06-28T04:01:39.413 に答える