Node.jsとかよく分かんないから調べる
業務で後輩に上手いこと説明できなかったので調べる。
Node.jsってなんだ
今までのイメージ
- なんか裏で勝手に動くやつ。(ウイルスみたいな扱いすぎる)
- .jsって付いてるしたぶんJavaScriptと思うけど、正体不明。
- サーバっぽいが、サーバじゃないかもしれない。正体不明。
- npmとかyarnがよしなにしてくれたりしてくれなかったりするが、正体不明。
調べる
公式より
Node.js はスケーラブルなネットワークアプリケーションを構築するために設計された非同期型のイベント駆動の JavaScript 環境です
なんのこっちゃ。
スケーラビリティとは、機器やソフトウェア、システムなどの拡張性、拡張可能性のこと。スケーラビリティの高いことを「スケーラブルな」(scalable)と表現することもある。
「非同期型のイベント駆動」の意味については、こちらが分かりやすかった。
- 非同期について
同期型が処理を順番にこなしていくイメージに対し,非同期型は重い処理を後から実行するイメージになります.HTTPのリクエストやデータベース処理,タイマー処理やイベント処理などには必ず必要になります.理解しておきましょう.
- イベント駆動について
イベント駆動型とは,何かしらのイベントが発生した時に特定の処理を実行するものです.フロントエンドではボタンがクリックされた時,画面をスクロールした時,カーソルが乗った時,ページをロードした時など様々です.
JavaScript環境ってどういう意味なの
まんまの意。もっというと、「JavaScriptを実行するための環境」らしい。
JREがJavaを動かせるように、Node.jsはJavaScriptをOS上で動かせる。
元々JavaScriptはブラウザ上で動作する言語だけど、Node.jsが出てきたおかげでOS上でも動けるようになった。
Webサーバと勘違いしてたのはなんでなの
元々の開発目的が↑で書かれてた通りの「Node.js はスケーラブルなネットワークアプリケーションを構築するため」なので、サーバサイドで使われるのが多い。だけど、サーバサイドだけに使われるわけでもない。
npmってなんなの
Node.js用のパッケージ管理ツール。Node Package Manager
の略。(パッケージ:ライブラリとかフレームワークとかモジュールとか…)
npm install 〇〇〇
でパッケージをインストールできる。
インストールしたパッケージはpackage.json
に自動で書き込まれる。
gitとかでNode.jsを利用したアプリケーション開発を行うときは、cloneしたプロジェクトのルートディレクトリでnpm install
を実行することで、package.jsonに書かれたパッケージを一括でインストールできる。
yarnってなんなの
npmと同じく、パッケージ管理ツール。npmと互換性があるので、同じpackage.jsonを使うことができる。
npmと比較すると、利点は以下の通り。
- インストール時間が短い
- チェックサムでライブラリの整合性をチェックできる
-
yarn.lock
なるファイルに、パッケージの依存プログラムのバージョンが書き込まれる。これによって、パッケージの再インストール時にバージョンが不一致になる…ということがなくなる
どっちを使ってもそんなに違いはないので、プロジェクトの規約に則って使い分ければいい感じっぽい。
まとめ
Node.jsくんはすごい。
Discussion