NestJSの特徴

NestJSは2017年にKamil Mysliwiecによって開発されました。 簡単に言えば、NestJSはExpress同様にNode.jsのフレームワークの一種です。 強力なWebフレームワークで、効率的でスケーラブルなアプリケーションを簡単に構築できます。TypeScriptで開発されているので、JavaScriptが実行できるすべてのブラウザ、コンピュータやOSで動作します。オープンソースなので無料で公開されています。 主な特徴は以下の通りです。
  • TypeScriptで開発されたバックエンドのフレームワーク。デフォルトでTypeScriptをサポート
  • デフォルトでExpressを活用。Fastifyも活用できる
  • Expressのミドルウェアをそのまま転用できる
  • OOP(オブジェクト指向プログラミング)、FP(関数型プログラミング)、FRP(関数型リアクティブプログラミング)の要素をフル活用できる
  • DIコンテナをデフォルトで活用できる
  • テストが簡単で疎結合であり、スケーラブル。専用のテストフレームワークが用意されている
  • アーキテクチャはAngularの影響を受けている
  • GraphQLとREST APIの開発を両方ともサポートしている
  • モジュール構造により、プロジェクトを個別のブロックに分割できる。これによって、プロジェクト内で外部のライブラリを簡単に活用できる
  • すぐに利用を開始できるCLIツールがある。コマンド一つで開発に必要な雛形を簡単に作れる
  • マイクロサービスを開発しやすい
  • WebSocketと連携できる
  • 拡張性が高い
このように、ExpressなどのNode.js製のアプリケーションをさらに抽象化した仕組みになっており、バックエンドアプリケーションを開発する上で役立つ機能を豊富に提供しています。さらに、TypeScriptをデフォルトでサポートしているので、フロントエンドとの連携もスムーズにできます。
また、NestJSはModule単位でコードをまとめて整理できます。これによってSOLID原則を遵守でき、より保守性の高いコードを書くことができます。
あと、NestJSはAngularの影響を強く受けて開発されているので、Angularを経験したことがあるなら習得がスムーズに進む可能性が高いです。(より簡単に言えば、Angularの概念や設計思想をバックエンドに転用した感じ)