Node.jsとSpringBootを実際に使ってみて分かった違い

投稿者:浦 周平(E) 社員投稿
今週は技術的にも学びを振り返るために2つ投稿します! 私のホームページはNode.js(JavaScript)でサーバーを動かしています。 Node.jsでは制作中に必要なミドルウェアをインストールし、その度コードを追加するという 悪く言うと行き当たりばったりな開発過程でしたが、それでも特に問題なく進められました。 今回ホームページの制作受注に当たり、同じ技術をSpringBoot(Java)でもできるように勉強しています。 ところが、SpringBootで同じような開発をやると、まあ問題だらけ! Node.jsに比べると、依存関係の追加によってディレクトリ構成やファイルの役割など 今まで作ったものを大きく作り変える羽目になりました・・・ つまり、SpringBootではある程度知識を持った上で 完成に必要な依存関係、ディレクトリ構造、ファイルの役割が最初から想像できてないと 効率的な開発はできないと実感しました。 要するに経験がある方が有利ということです! Node.jsとSpringBootのそれぞれの良さと悪さをまとめてみました。 Node.jsの良さ ・すべてapp.jsにサーバーの動きをまとめられる。1000行程度で1人で作るならこの方が管理しやすい。 ・ミドルウェアがいつ起動しているのかなど、すべて自分で書く。何が起きてるか分かりやすい。 Node.jsの悪さ ・規模が大きくなるとapp.jsが大量になる。app.jsだけだと複数人の開発で障害がある。 ・エラー監視やログ表示も自分で用意しないといけない。一応それ用のミドルウェアあり。 SpringBootの良さ ・ファイルごとに役割を細かく持たせられ連携できる。これによって開発者が複数いても、他者が作ったファイルに依存することなく開発ができる。 ・ある程度自動で動いてくれる部分があり、エラー監視、セキュリティ、SQLにおいて実装が簡単になってる。 SpringBootの悪さ ・「なんでこれで動くの?」となる。最初は「とりあえずそういうものらしい」と理解するしかない。 ・機能を追加しながらの開発も可能ではあるが、初めから必要な依存関係を決めておかないと効率が良くない。 ということで、私なりの結論は 1人で開発する→Node.js 複数で開発する→SpringBoot これで住み分けするのがいいと思います! SESで外注してる会社が作るシステムはほぼ中~大規模開発、チーム開発だと思うので 案件を受けるにはSpringBootを使える方が圧倒的に有利でしょうね! これから学ぶ人の参考になればうれしいです!