1つ目はパフォーマンスです。Node.jsのパフォーマンスは想像よりも良くないように感じます。メモリ使用量は Ruby とほぼ同じレベルで、Python や PHP よりも多くなっています。コンピューティングのパフォーマンス (つまり CPU 使用率) の点では、純粋なコンピューティングにはそれほど利点はありませんが、非同期プロセスを適切に制御できるため、全体的なパフォーマンスは PHP よりも優れています。個人的には、Node.js にはパフォーマンスの面で大きな可能性があると感じています。なぜなら、JavaScript 仮想マシンのパフォーマンス向上に特化した大規模なプロジェクトが数多く存在するからです。同時に、JavaScript は単純な構文を備えた言語であるためです。 a オープン標準は、Python や PHP とは異なり、互換性への懸念から、パフォーマンスを向上させるために大幅な再構築を実行することが困難です。
次に、パッケージ マネージャーとライブラリがあります。Node.js には npm が組み込まれています。npm は非常に使いやすいパッケージ マネージャーであり、JavaScript を記述する敷居が低く、JavaScript には優れた機能が数多くあるためです。エンド ライブラリがバックエンド エンドに移植されているため、NPM 上のパッケージの数は PyPI や RubyGems の数を超え、PEAR や Composer のパッケージの数をはるかに上回っています。Node.js の開発において PHP と異なる点の 1 つは次のとおりです。依存関係を追加することを誰も恐れず、あらゆる小さな要件が NPM にあり、これを実装するための既存のライブラリがあり、それらは頻繁に見つかります。したがって、Node.js の開発は基本的に依存関係を結合し、小さな独立した要件もライブラリに書き込む傾向があります。これは UNIX の考え方に似ています。一方、Node.js コミュニティはオープンソースに対して非常に友好的であり、ここでいうフレンドリーとは、ほとんどのライブラリがオープンで Github 上で開発されており、MIT などの「オープンソース」ではない非常に緩やかなプロトコルを使用していることを意味します。 GPL。攻撃性」。
コミュニティでは、ほとんどの Node.js アプリケーションは依然として Web バックエンドであり、Web バックエンド関連のライブラリは基本的に TJ 率いる Express、jshttp、jade、mocha、koa などの少数の大手によって作成されていました。リーダーを中心に4~5人で開発するというのは面白い現象です。 ——もっとも、Master TJ は最終的に Node.js コミュニティからフェードアウトすることを決めましたが。
ツール チェーン、Node.js は比較的新しく、プリコンパイルされた方言、単体テスト、シミュレーション テスト、ビルド ツールなど、多くの便利なツールがここ 2 年間に登場したばかりです。それは可能ですが、PHP よりもはるかに優れている必要があります。その理由としては、第一に、これらのライブラリがフロントエンドとバックエンドの両方で使用できることが主な理由であり、第二に、Web フロントエンドの要件が厳しいため、Node.js の利点が挙げられます。 JavaScript は柔軟でシンプルな構文であるため、これらのライブラリ ツールは非常に賢くてエレガントな方法でこれを実行できます。 IDE に関しては、Web フロントエンドの恩恵を受けているため、まだ利用可能な IDE がいくつかありますが、JavaScript 言語自体は静的分析にはあまり適していません。
文法について、重要な点は、JSON が Web 分野でほぼ最も一般的なデータ形式であり、JavaScript が JSON をネイティブでサポートしていることです。 JavaScript のすべてのデータ構造は、配列、関数、オブジェクト、クラスなど、JSON のスーパーセットである Object を中心に構成されています。もちろん、これには問題もあります。つまり、書き方の制約が少ないため、どのように書いたらよいのかわかりません。学習を始めた当初は、メリットとデメリットを理解するために何度もリファクタリングする必要がありました。 Node.js は簡単に始めることができますが、大規模なプロジェクトを構築するには開発者のスキルが試されます。歴史的な問題により、JavaScript の構文は美しくありませんが、幸いなことに、Coffee Script、TypeScript、Dart、LiveScript、ClojureScript など、さまざまなプリコンパイル済みの方言があり、常に最適なものが見つかります。
使用シナリオ: JavaScript は一般的なプログラミング言語であり、Web のフロントエンドとバックエンドについて話す必要はありません。他の側面を見てみましょう。個人的には、Node.js は依然としてサーバー ツールや運用および保守ツールを作成するのに非常に適していると思います。運用および保守の多くの状況が非同期で動作する可能性があり、JavaScript は定期的なサポートが比較的充実しているため、置き換えるのに大きな問題はありません。 bash と Python ; Node.js はインタープリターをインストールするだけで済み、依存関係が生じることを恐れずに気軽に使用できます。デスクトップおよびモバイル デバイスのプログラミング用に、Node.js には、node-webkit やその他のさまざまなシェルがありますが、現在のユーザー エクスペリエンスはあまり良くありませんが、開発コストを大幅に削減でき、容易にクロス プラットフォームに対応できる可能性があります。
最後に、Node.jsの学習についてですが、私が考えるNode.jsの学習のポイントは2つあり、1つはNode.jsの「イベントコールバックによる非同期IO」を明確にすることです。 Node.js とその他の主流のプログラミングは、言語に関して最も異なります。次に、NPM の上位 100 のライブラリをすべて確認します。詳しく読む必要はなく、各ライブラリの用途を理解する必要があります。これら 2 つの手順を完了すると、おめでとうございます。あなたはすでに Node.js 開発者です。