今回は、Node.jsについて解説します。
Node.jsとは一体何ができて、使う上でどんなメリット・デメリットがあるのか気になる方もいるでしょう。比較的新しい技術ですが、Netflixなど有名なサービスでも採用されています。
エンジニアでなくてもどんな技術が理解しておくことをおすすめします。
なお本記事は、TechAcademyのNode.jsオンライン講座の内容をもとに作成しています。
目次
Node.jsとは
Node.jsとはサーバーサイドのJavaScriptです。
Node.jsはJavaScriptを使用して処理しています。したがって、Node.jsを操作する上で使用する言語はJavaScriptです。
ただし、フロントエンドのJavaScriptではなく、サーバーサイドのJavaScriptです。
フロントエンドとは、HTMLやCSSと組み合わせて、ブラウザ上にグラフィカルに表示する部分を操作するためのJavaScriptです。一方、サーバーサイドとは、インターネット上のデータが保存されているコンピューター上で動作する処理系の事です。
最近で言うとクラウドと呼ばれるような、データセンター内のコンピューターをサーバーと呼びます。
Node.jsは、PHPやRubyやPythonやJava等のプログラム言語と同様に、サーバーで動作するJavaScriptです。
また、Google Chromeに搭載されているV8というレンダリングエンジンをコマンドラインから使用することができます。
Node.jsのバージョン
Node.jsの最新バージョンは、推奨版が8.9.3で、最新版が9.3.0です。
ただし、通常使用する場合は推奨版の8.9.3のように先頭の数字が偶数の物を使用します。
最新版のように先頭の数字が奇数の場合は、新しい機能を追加して、問題がないかを確認しているバージョンになりますので、Node.jsでの先進的な開発を行う上級者向けのバージョンになります。
Node.jsのインストール方法もぜひチェックしておきましょう。
また、Node.jsをコマンドラインから使用する場合は、次のように記載します
node 対象ファイル名.js
Node.jsの使用用途
メモリ消費量が少ないため、小さな規模の開発・運用時に、他の環境と比べるとよりパフォーマンスを出すことが可能です。同時に大量のトラフィックを捌くことができ、動画配信やチャットアプリ、ゲームの開発で使われることが増えてきています。
Webアプリ
これまでのプログラミング言語同様にWebアプリケーション開発時に使用されます。
Webサーバー
これまでのでのプログラム言語とは異なり、Webサーバーとしても使用されます。
スマホアプリ
ネイティブアプリやハイブリッドアプリの開発に使用できます。
Node.jsのメリット
C10K問題の解決につながる高速性能
C10K問題とは、従来のサーバーで発生していた問題で、サーバーへの接続台数が10,000台を超えると、表示が遅くなるという問題です。
もちろん、技術的に解決することが可能ですが、Node.jsのノンブロッキングI/Oという処理により、Node.jsを使用するだけでC10K問題を解決することができます。
Node.jsのデメリット
Node.jsは当初、フロントエンドとサーバーサイドを同じJavaScriptを使用して、連動して処理させることも目標の1つでした。
しかし、最終的に、サーバーサイド(Node.js)のJavaScriptとフロントエンドのJavaScriptとの処理上の互換性はありません。
そうは言っても、JavaScriptで有ることは変わりないため、フロントエンドで習得したJavaScriptに関する基本知識は非常に役立ちます。
Node.jsを学習できるサービス
ドットインストール
動画を見ながら学習する形式のサービスです。
1つの動画が3分くらいで見終わることができるので、スキマ時間にサクサク進めることができるはずです。
基本的な文法を理解し、使い方を学習できます。
Udemy
こちらもドットインストール同様、動画の学習サービスとなっています。
英語の内容のものが多いですが、非常に実践的な内容が多いので、Node.jsを使ってアプリケーションを開発したい人におすすめです。有料の動画はキャンペーンなどで格安で手に入る時期などもあるので、ぜひチェックしておきましょう。
SMART Node.js入門
インストールする手順やNode.jsを理解する上で知っておきたい知識を学べます。
Expressというフレームワークも学べるので、アプリを開発するイメージがつかめるはずです。数時間・数日で終わる内容なので、これからNode.jsを学びたい方は最初に目を通しておくと良いでしょう。
もっと多くのサービスを比較したい人は、Node.jsの学習サービスまとめを参考にしてみてください。
Node.jsを学習できる本
いまどきのJSプログラマーのためのNode.jsとReactアプリケーション開発テクニック
いまどきのJSプログラマーのための Node.jsとReactアプリケーション開発テクニック
React.jsとNode.jsを使用して実際にWebアプリケーションを開発する流れを学べます。
どちらもモダンな技術で多くの企業で使い始めているので、これからエンジニアを目指す方であれば就職や転職で有利に働くはずです。
Node.js超入門
Node.js超入門
HTML/CSSをある程度理解し、初めてプログラミングの技術に触れる方は基礎から学べます。
後半ではExpressというフレームワークを使って実際にWebアプリケーションの開発を学べます。入門から実践的な内容まで学習できる本になっています。
JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック
JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック
クローリングやスクレイピング、APIの使い方などいろんなサイトの情報を集めて1つのサービスを作りたい方におすすめです。
ある程度JavaScriptの知識がある方は、手を動かしながら自分の作りたいものを形にすることができるでしょう。
もっと多くの本を比較したい人は、Node.jsを学習できる本まとめを参考にしてみてください。
今回はNode.jsについて解説しました。
有名なサービスやゲームにも使われていて、今後ますます需要が増す技術になるでしょう。Node.jsの習得を目指したい方はぜひ全体像を理解しておきましょう。
また、オンラインのプログラミングスクールTechAcademyでは、Node.jsオンライン講座を開催しています。
Node.jsを使ってWebアプリケーションを開発することができます。
現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。
独学に限界を感じている方はぜひご覧ください。