日本では仕事は少ないですがありです。
そもそもNode.jsはRubyやPythonとは一線を画す高速な言語で、
ES2015以降の流れでイケてる記述が出来るようになったので、PHPとかいうダサい言語より簡素なコードになります。
まぁ、上に上げた言語も全て採用する理由たりうる良さがあるのですが、
Node.jsもそれに負けていない中々バランスの取れた良い言語だと思います。
つまり新規にプロジェクトを立ち上げる際の言語選択として考慮に入れる価値はあるでしょう。
ただし、Node.jsはプロセスがしばしば落ちるので、
pm2等でゾンビのように復活するような仕組みを用意しておきましょう。
メリットに関して
Expressの利用を考えており、FWとしては非常に薄く必要な分だけ拡張しやすい、扱いやすい。
これはそうですね。
Webでの使用が一般的な他言語でもExpressレベルの簡素なフレームワークは当然作られてはいますが、
どれもマイナーなものといった印象があります。
それに比べればNode.jsにもRailsそっくりなSailsというフレームワークはあったりしますが、
知名度や使い勝手で言えばExpress一択に近いレベルで強く、
Node.jsが持つマイクロサービス アーキテクチャとよく馴染んでるといったところでしょうか。
GolangのWebフレームワークは結構シンプルだったような…
速度が欲しければGolangも一考の価値はあるでしょう。
因みにGolangもでかい規模のアプリを作るのが苦痛で、Node.jsのマイクロサービスという分野でのライバル的存在です。
JSだけで書ける
そうですね。
特にBrowserifyやWebpackを利用することで、バックエンドで作った関数をフロントエンドに持ち込むことが簡単に出来るのがNode.jsを書く最大のメリットです。
チューニングをしなくても同時接続に強い
チューニングをどの程度を指すのかがあれですが、
RailsのUnicornみたいなものを指していますか?
確かにNode.jsは単品で爆速ですが、プロセス管理のpm2とかないと話にならないので結構悩ましい所ですね。
デメリットに関して
基本非同期なのでI/O周り(特にDB)を同期処理で書くのが若干面倒
この感想が出る時点でES2016以降の構文を知らないのだと思います。
Promiseとasync/awaitを学習してください。
async/awaitまで学習が進めばほとんど同期的な構文のまま非同期を扱えるようになります。
Pure JSで書く場合動的型付けなので牢固なシステムを作るためには意識しなくてはいけない
まぁ、型を意識するのはどの言語でも同じことですし、何を今さらと言った所でしょうか。
他のPHP、Ruby、Python全てに共通する問題ですしね。
新しくスキルの著しく低いメンバーがジョインするとぐちゃぐちゃになるというリスクはありますが、
そういう場合はレビュー等で厳しくチェックしましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/21 04:45