私が理解しているように、node.js
は、Java Scriptプログラマにとって役に立ちます。また、一部のJava Scriptコードをクライアント側からサーバー側に移植することもできます。他のウェブ技術と比べてnode.jsのメリット
node.js
には、他のサーバー側のテクノロジ(Java Webフレームワーク、RoR
、Django
など)と比較して、他に利点がありますか?
私が理解しているように、node.js
は、Java Scriptプログラマにとって役に立ちます。また、一部のJava Scriptコードをクライアント側からサーバー側に移植することもできます。他のウェブ技術と比べてnode.jsのメリット
node.js
には、他のサーバー側のテクノロジ(Java Webフレームワーク、RoR
、Django
など)と比較して、他に利点がありますか?
パッケージ管理は史上最高です。 私にはそれだけで十分であるはずです。パッケージには、私がチェックアウトすることをお勧めします:
をマングースnode_redis
node.jsは非常に高速で(イベントループ非ブロッキング)、非常に高速なネイティブバインディング(C)も備えています。例えばnode_redisベンチマーク(C結合):
PING: 20000 ops 46189.38 ops/sec 1/4/1.082
SET: 20000 ops 41237.11 ops/sec 0/6/1.210
GET: 20000 ops 39682.54 ops/sec 1/7/1.257
INCR: 20000 ops 40080.16 ops/sec 0/8/1.242
LPUSH: 20000 ops 41152.26 ops/sec 0/3/1.212
LRANGE (10 elements): 20000 ops 36563.07 ops/sec 1/8/1.363
LRANGE (100 elements): 20000 ops 21834.06 ops/sec 0/9/2.287
ライアン・ダールは、彼のプロジェクトに非常に非常に懸命に取り組んでいます。また、node.jsにはJoyentなどのアクティブなサポート(スポンサー)が追加されました。コミュニティが急速に成長しています
検索パッケージhttps://www.npmjs.com/ –
node.js
はイベント駆動型です。他のほとんどのフレームワークでは、このような機能がアドオンとして組み込まれています(イベントマシンなど)。これはnode.js
の「方法」です。イベント駆動型アーキテクチャーは、よりスケーラブルなアプリケーション(多くの場合、The C10K problemによって動機付けられる)につながる可能性があるという考えがあります。 2つ目は、JavaScriptで書かれているため、既にその言語の操作に慣れ親しんだフロントエンド開発者のほとんどが参入障壁になります。私の意見では、これもかなり面白いですが、トラフィックの多いアプリケーションのために展開したとは言えません。それはまたそれのために行く誇大宣伝機を持っています。最近私はliftとscalaで魅了されましたが、それは私の好みです。
*フロントエンド開発者がバックエンドで作業するのが簡単すぎるようにしたいですか?フロントエンドの開発者とバックエンドの開発者は、さまざまな考え方とアプローチを持っています。他人の作業に手間がかかりすぎるということは、良いことではないと私は確信していません。 –
私は本当に私が与えた議論のどちらかを買っていませんが、それらは最も一般的に列挙された2つです。私は、V8にはノード、特にスレッドモデルに問題があるいくつかの問題があると思います。 – bmatheny
@ChrisMorgen @bmathenyが侵入の障壁を下げることは偽です。 PHPを手に入れてnode.jsを学ぶ方が簡単です。フロントエンドとバックエンドの両方の開発に問題はありません。いずれのWeb開発者も両方を実行できるはずです(しかし、1つを専門にしてください)。 – Raynos
性能は主な利点です。node.jsは各接続ごとに小さなヒープを割り当てますが、他のサーバー側のソリューションは着信接続ごとに(2MB)スレッドを作成します。ヒープメモリを割り当てるよりも遅くなります。他の利点の中には、node.jsのイベント指向とノンブロッキングの性質があります。
はい、rcodeに同意します。また、開発者の観点からは、スレッドの同期やデッドロックの心配はありません。他の高水準言語に比べて少ないコードを書く必要があります。計算量の多い作業は、C++アドオンとして記述することができます。 – user644745
Webスタックに__new Runnable(){...} __を書くのを覚えていない。いつまでも:)特に私がPHPを使って作業していたときはありません:) – luigi7up
ノンブロッキングな性質をどういう意味ですか?私はPHPの背景から非同期でAJAXを呼び出してJSONを返すPHPのスクリプトにサービスを提供します – prince
アプリケーション開発者は、問題を解決するためにロジックを適用するのは私どもの責任です。フロントエンド開発者が持つすべての問題は、バックエンド開発において同様の問題を抱えています。はい、彼らは異なって表現されますが、基本的に同じ問題です。
ノードは、方法論を個別的かつ合理的な方法で統一することによって、この事実を単純に表現します。同じように書かれたバックエンドを有することにより
は、同じ論理パスを適用し、それが自分の仕事
多くの質問の重複を簡素化し、開発者への移行がはるかに透明になります。 node.jsタグの投票率の高い質問を検索してください。ノードはパフォーマンスの面で最も優れていますが、haskell/erlangほど良くはありません。それは確かにRoR/ASP.NET/J2EEに勝つ。 – Raynos