Node.jsとTypeScriptによるプログラミング入門

2019-03-14 11:05:18

 Node.jsはサーバサイドのプログラミングをJavaScriptで行うためのフレームワークです。このフレームワークの特徴はランタイムライブラリが非同期を前提に作られていることです。そのため、直列に逐次実行していくプログラミング言語にをやってきたプログラマにとって、慣れるまでは不便や回りくどさを感じることになります。逆にプログラミングを全くやったことのない人間がNode.jsに手を出すのは無謀としか言い様がないので、他の言語を選択することをおすすめします。


 Node.jsの特徴である非同期のメリットは、周辺へのデータアクセスが効率的になること、デメリットはプログラムが複雑化しやすいことです。複雑といっても大規模な範囲が複雑化するわけでは無く、個々の部分の記述量が増えるというだけなので、それほど致命的な問題にはなり得ません。

 また、Node.jsはシングルスレッドを前提としており、マルチCPU環境での性能を出せないと言われることが多いですが、これはプロセスを複数立ち上げれば解決します。他のスクリプト言語でマルチスレッドに対応しているものもありますが、結局のところインタプリタ上でリソース共有のためのロックがかかってしまい、性能が発揮できない結果になります。ということでスクリプト言語系は、マルチCPUはマルチプロセスを使うことになります。

 性能的を重視するのであればスクリプト言語はやめて、C/C++、golang、Java辺りを使いましょう。

TypeScriptに関して

2019-03-14 11:25:11

 Node.jsはJavaScriptによってプログラミングを行うフレームワークですが、TypeScriptを使用することも可能です。TypeScriptはJavaScriptのトランスコンパイラなので、実行時はTypeScriptをJavaScriptに変換する必要があります。しかしNode.jsにモジュールを追加することによって、コンパイルを挟まずに直接実行している感覚で使うことが可能です。


 言語としての使い勝手を考えると、Node.jsにおいてTypeScriptを使わないという選択肢はあり得ないと言って良いほどです。モジュールを組み込むだけですぐに使えるので、必ず入れましょう。

プロセスマネージャに関して

2019-03-14 11:34:42

 Node.jsをアプリケーションサーバとして利用する場合、プロセスマネージャを挟むのが一般的です。プロセスマネージャの仕事はNode.jsのプログラムを起動すること、何らかの問題によって停止してしまった場合の再起動、起動プロセス数の管理などが挙げられます。


 プロセスマネージャは色々なパッケージが存在しますが、ここでは使い勝手の良いpm2を前提とします。