【プログラミング言語】Node.js

当ページのリンクには広告が含まれています。

こんにちは、KiYOです。

システムエンジニア歴20年オーバー。製造現場に特化したシステム開発を主にやってます。

新しい物好きで色々なIT技術を勉強しては、仕事に使って行ってます。

KiYO
KiYO

今回はNode.jsについて紹介します。

Webサーバ上で動作するJavaScript実行エンジンのことをNode.jsと言います。正直よくわかってないので本やネットの情報を整理しつつ要点をギュギュっととまとめて行きていと思います。

この記事でわかる事
  • Node.jsの特徴
  • Node.jsの歴史
  • Node.jsの利用シーン

今回はこの本を参考に、私の独断と偏見で記事を書いています。

言語を5点中評価(JavaScriptと同じですね)

容易性容易に言語習得できるか?4.5
将来性将来性があるか?
普及度普及しているか?
保守性保守性が高いか?
中毒性ハマるか?
21.5
目次

Node.jsの特徴

JavaScript開発では欠かせない 高速実行環境

言語の特徴
  • Node.jsはJavaScriptの実行エンジン
  • Node.jsはGoogle Chromeに採用されているJavaScriptエンジンのV8を利用
  • ノンブロッキングI/Oとイベントループのモデルを採用(大量のアクセスに対応するWebアプリを作成しやすい)
  • Node.jsのライブラリを手軽にインストールできるパッケージマネージャのnpmは広く利用されている
  • Webサーバ以外にもローカルで開発ツールを動作させるのに使える

Node.jsの歴史

開発者Ryan Dahl(ライアン・ダール)、OpenJS Foundation
誕生2009年にV8エンジンを利用したNode.jsが誕生
公式サイトhttps://nodejs.org/
分類動的型付け、プロトタイプベースのオブジェクト指向
影響を受けた言語JavaScript
影響を与えた言語Deno

言語の歴史

2009年V8エンジンを利用したNode.jsが誕生
2012年プロジェクトから離れる
2018年V8で構築されたJavaScript /TypeScript実行環境であるDenoを発表
サーバーサイドJavaScript
  • Node.jsが採用される大きな理由の一つとして、ノンブロッキングI/Oとイベントループの仕組みがある
  • 大量のアクセスによる性能劣化、「クライアント1万台問題(c10k)」がNode.jsでは起こりません。
ノンブロッキング
  • Node.jsのライブラリの多くは、ノンブロッキングで命令が実装されている
  • ノンブロッキングとは、実行に時間がかかる処理完了まで待たず、次の処理を次々行い、処理が完了した時点で改めて完了時の処理を実行するというもの
  • ブログラム中の「待ち」の時間を減らせる
npm
  • Node.jsのパッケージマネージャがnpm
  • npmには様々なライブラリが登録されている
  • Node.jsだけでなく、Webフロントエンドの開発にも役立ちます
  • TypeScriptやWebpackといったツールもnpmから入手可能
  • yarnと呼ばれるnpm代替ソフトウェアも注目されている
コラム

Node.jsの登場以前は、JavaScriptでサーバー側のWebアプリを開発するのは無謀だと思われていた。しかしNode.jsを使うと効率よく大量のアクセスに対して応答を返せることが証明され、現在では多くのWebアプリケーション(サーバサイド)が開発されています。

Node.jsは、性能の高さ・効率の良さに加えて、ブラウザ側のプログラムとサーバー側のプログラムの両方をJavaScriptで記述できることもメリットです。

多くのライブラリも公開されています。

Node.jsの利用シーン

主にWebアプリケーション作成に用いられ、ExpressというWebフレームワークが有名。Webブラウザ向けのJavaScriptのプログラムを整形したり、圧縮したりするためのツール(CLIツール)としても利用します。TypeScriptのコンパイラの実行にもNode.jsが用いられています。

また、豊富なライブラリを活かして、バッチ処理にも利用されています。

npmのエコシステム
  • JavaScriptはライブラリの開発が非常に活発
  • パッケージリポジトリ(※)のnpmには日々、大量のパッケージ追加、ダウンロードが行われている
  • 人気ライブラリのReactnpmでの週間インストールが600万超

パッケージリポジトリとはオープンソフトウェアのパッケージ(ライブラリ)が集まるような図書館みたいな場所

Webフロントエンドの開発
  • Webフロントエンドの開発にも欠かせないものになりつつある
  • Webフロントエンドの開発では単体テストやバンドルなどのツールにNode.jsが用いられる
  • WebpackやBabel(仕様を先取りして実装するJavaScript⇨JavaScriptのトランスパイラ)、TypeScriptなどが有名
もう一つのパッケージマネージャYarn
  • Facebookが発表したYarnというパッケージマネージャも人気
  • Yarnは高速性やセキュリティに注目
  • npmと同じパッケージが利用でき、フロントエンド/Webサーバーどちらの開発にも使える

まとめ:サーバサイドはNode.js

今回はNode.jsについて解説しました。

Node.jsはJavaScriptをサーバサイドで動かせる言語です。JavaScriptの需要がここまで上がってたとは知りませんでした。

Node.jsの必要性
  • サーバで動くJavaScriptとして唯一無二の存在
  • ノンブロッキングI/Oとイベントループにより、大量アクセスによる性能劣化なし
  • パッケージリポジトリのnpmが活発に利用

言語を覚えたとしてもそれを使うシーンが少なければ、意味がありません。

やりたいことを実現するために、Node.jsの使い方をマスタしましょう。

以上、KiYOでした!

今回参考にさせていただいた本はこちらです。今回紹介した言語やその他言語も紹介されているので大変勉強になりました。

まとめページで、他のプログラミングも紹介していますので、ご覧ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ITの事や自分の経験談など綴っていきたいと思っています。

コメント

コメントする

CAPTCHA


目次