Nodejs-introduction
Node.js-はじめに
Node.jsとは何ですか?
Node.jsは、Google ChromeのJavaScriptエンジン(V8エンジン)上に構築されたサーバー側プラットフォームです。 Node.jsは2009年にRyan Dahlによって開発され、最新バージョンはv0.10.36です。 公式ドキュメントで提供されるNode.jsの定義は次のとおりです-
'_Node.jsはhttps://code.google.com/p/v8/[ChromeのJavaScriptランタイム]上に構築されたプラットフォームであり、高速でスケーラブルなネットワークアプリケーションを簡単に構築できます。 Node.jsは、イベント駆動型のノンブロッキングI/Oモデルを使用するため、軽量で効率的であり、分散デバイス間で実行されるデータ集約型のリアルタイムアプリケーションに最適です。_
Node.jsは、サーバーサイドおよびネットワーキングアプリケーションを開発するためのオープンソースのクロスプラットフォームランタイム環境です。 Node.jsアプリケーションはJavaScriptで記述されており、OS X、Microsoft Windows、およびLinux上のNode.jsランタイム内で実行できます。
Node.jsは、Node.jsを使用したWebアプリケーションの開発を大幅に簡素化するさまざまなJavaScriptモジュールの豊富なライブラリも提供します。
Node.js = Runtime Environment + JavaScript Library
Node.jsの機能
Node.jsをソフトウェアアーキテクトの最初の選択肢にする重要な機能の一部を以下に示します。
- 非同期およびイベント駆動-Node.jsライブラリのすべてのAPIは非同期、つまり非ブロッキングです。 これは本質的に、Node.jsベースのサーバーがAPIがデータを返すのを待たないことを意味します。 サーバーは次のAPIを呼び出した後、次のAPIに移動します。Node.jsのイベントの通知メカニズムは、以前のAPI呼び出しからの応答を取得するのに役立ちます。
- 非常に高速-Google ChromeのV8 JavaScriptエンジン上に構築されているNode.jsライブラリは、コード実行が非常に高速です。
- シングルスレッドですが、高度にスケーラブル-Node.jsは、イベントループを備えたシングルスレッドモデルを使用します。 イベントメカニズムは、サーバーがノンブロッキング方式で応答するのに役立ち、リクエストを処理するための限定されたスレッドを作成する従来のサーバーとは対照的に、サーバーを非常にスケーラブルにします。 Node.jsはシングルスレッドプログラムを使用し、同じプログラムはApache HTTPサーバーのような従来のサーバーよりもはるかに多くのリクエストにサービスを提供できます。
- バッファリングなし-Node.jsアプリケーションはデータをバッファリングしません。 これらのアプリケーションは、単にデータをチャンクで出力します。
- ライセンス-Node.jsはhttps://raw.githubusercontent.com/joyent/node/v0.12.0/LICENSE[MITライセンス]でリリースされます。
Node.jsを使用するのは誰ですか?
以下は、Node.jsを使用しているプロジェクト、アプリケーション、および企業の包括的なリストを含むgithub wikiのリンクです。 このリストには、eBay、General Electric、GoDaddy、Microsoft、PayPal、Uber、Wikipins、Yahoo !、およびYammerが含まれます。
- https://github.com/joyent/node/wiki/projects,-applications,-and-companies-using-node [ノードを使用しているプロジェクト、アプリケーション、および企業]
概念
次の図は、後続の章で詳細に説明するNode.jsの重要な部分を示しています。
Node.jsを使用する場所
以下は、Node.jsが完璧なテクノロジーパートナーであることを証明している分野です。
- I/Oバウンドアプリケーション
- データストリーミングアプリケーション
- データ集約型リアルタイムアプリケーション(DIRT)
- JSON APIベースのアプリケーション
- シングルページアプリケーション
Node.jsを使用しない場所
CPUを集中的に使用するアプリケーションにNode.jsを使用することはお勧めできません。