なぜNestJSを使うべきなのか?

本ページでは、簡潔にNestJSをバックエンド開発で使うべき理由を話していきます。
主な理由は以下の通りです。
  • 明確な設計
  • デフォルトでTypeScriptが活用できるから
  • マイクロサービスを開発しやすいから
  • REST APIとGraphQL両方とも開発できるから
  • 拡張性が高いから
  • コマンド一つで簡単に雛形を設計できるから

明確な設計

NestJSはNode.jsベースで新しいプロジェクトを開発する際、いくつかのコンポーネント(ControllersModulesProviders)を持つ明確な設計に基づいて構築されているので、柔軟性の高いExpressよりも簡単にバックエンドを開発できます。

デフォルトでTypeScriptが使えるから

NestJSはデフォルトでTypeScriptを使えます。
TypeScriptはAltJS(JavaScript代替言語)を代表する言語です。2014年にMicrosoftによって開発されました。簡単に言えば、TypeScriptはJavaScriptの完全上位互換で、JavaScriptに型が追加されます。そおため、コンパイルするときにエラーを未然に発見できます。この機能のおかげで、プログラマーはコーディング量を大幅に削減できます。
Web開発において、バグやエラーなどの欠陥は発見が遅れるほどデバッグのコストが高くなります。TypeScriptではコーディング中に頻繁にプログラムをチェックできるので、バグの早期発見でデバッグのコストを抑えられます。Airbnbによれば、TypeScriptを導入したらアプリの38%のバグを未然に防げたという分析が発表されています。さらに、SlackはTypeScriptを今後の開発で積極的に活用することを公式ブログで発表しています。
TypeScriptはプログラマの間でも非常に人気の高い言語の一つです。Stack Overflowが発表した2021年の人気なプログラミング言語のランキングによると、TypeScriptは歴史のあるC言語(C#やC++)を抑えて8位にランクインしています。これとは別の調査に、世界中のJavaScript開発者およそ2万人を対象に行なったアンケート調査"The State of JavaScript 2021"があります。こちらによると、TypeScriptの満足度が94.2%という高い数字を出しています。
利用者人口が多く満足度の高いプログラミング言語を選択することには、様々なメリットが存在します。最大の利点は、情報量が豊富だということです。これは新しい言語を勉強する際にも、トラブルシューティングやデバッグ作業の質や難易度にも多大な影響を与えることは言うまでもないでしょう。
このように、TypeScriptは現在世界中で数多くのプログラマから支持されている言語です。NestJSは設定不要でTypeScriptが活用できます。これは最大の利点と言えるでしょう。

マイクロサービスを開発しやすいから

NestJSはマイクロサービスのサポートが豊富です。
マイクロサービス(Microservice)とは、DX(Digital Transformation)時代のシステム開発手法として注目を集めているアーキテクチャです。マイクロサービスとは、アプリケーションが持っている機能を細かい「サービス」に分割し、それぞれのサービスを連携させてシステムを動かすという考え方になります。マイクロサービスは、従来のモノリシック(「一枚岩」という意味)とも呼ばれる開発アプローチに比べて、拡張性と柔軟性両方に優れているのが特徴です。
NestJSは@nestjs/microservicesというライブラリで簡単にマイクロサービスを構築できます。

REST APIとGraphQL両方とも開発できるから

NestJSはREST APIとGraphQL API両方ともサポートが手厚いです。
両者ともWeb APIの規格で、様々なWebサービスに活用されています。最近はGraphQL APIがREST APIよりも活用されている機会が増えています。GraphQLを導入しているかどうか迷っている人や、両者の違いが理解できない人も少なからずいるかと思います。
NestJSは両者の開発をデフォルトでサポートしているので、同じ機能のプロジェクトをREST APIとGraphQL APIそれぞれで試しに開発してみてそれぞれの挙動を確認できます。両者の違いを開発を通して手を動かして理解するためにも、NestJSは最適だと思います。

拡張性が高いから

NestJSは拡張性が高いです。ライブラリが豊富なので、簡単にアプリケーションに様々な機能を追加できます。

コマンド一つで簡単に雛形を設計できるから

NestJSはコマンド一つで開発に必要な雛形(プログラムのファイル群)を簡単に生成できます。そのため、バックエンドアプリケーションの開発をスムーズかつ高速に行うことができます。