2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

NestJS について。

Product の技術選定を行なっている。

今後の開発を見据えて、技術選定を行う。
わたしが考えている技術選定の前提条件は以下の通りである。

  1. 少人数で適切なスピード感で開発できる。
  2. メンバーの共通の技術スタックである。
  3. (1)(2)を満たしつつ、アプリケーションの複雑さを将来に持ち込まない構成である。

現状の方針として考えられるのは

  1. Framework を活用する。
  2. 開発言語を最小限にする。
    • TypeScript
  3. DDD と modular monolith pattern を採用する。

❓ の Framework について検討した。

今回の code はこちら。

About NestJS

  • NestJS は Express をベースした Framework である。1
  • 今私が欲しい機能は、大体揃っている。

ChatGPT
NestJS は、Node.js のためのフル機能のサーバーサイドアプリケーションフレームワークです。Angular の開発者が使いやすいように設計されており、Angular のスタイルと構造にインスパイアされたものです。NestJS は、エクスプレスをベースにしており、エクスプレスのパワフルな機能を活用しながら、アプリケーションの構造化と保守性を向上させます。

NestJS の主な特徴や利点には以下が含まれます:

  1. モジュールベースのアーキテクチャ: アプリケーションをモジュールに分割し、それぞれのモジュールが独立して機能するように設計されています。これにより、アプリケーションが拡張可能でテストしやすくなります。

  2. 依存性注入 (DI): NestJS は、依存性注入を使ってコンポーネントやサービスを管理します。これにより、コードの再利用性とテスト容易性が向上し、コードの冗長性が減ります。

  3. ミドルウェア: NestJS は、エクスプレスのミドルウェアを簡単に統合できるため、リクエストとレスポンスの処理を柔軟に制御できます。

  4. WebSocketsのサポート: NestJS は、WebSocket のサポートも提供しており、リアルタイムな通信アプリケーションの開発が容易です。

  5. スケーラビリティ: NestJS は、標準的な Node.js のスケーラビリティ戦略に従っており、クラスタリング、ロードバランシング、マイクロサービスアーキテクチャなどの手法を使用して、アプリケーションのパフォーマンスを向上させることができます。

NestJS は、TypeScript で書かれており、静的型付け言語の恩恵を受けることができます。このため、開発プロセスがより安全で効率的になります。

Architecture

  • NestJS は module で構成できる。

  • API の雛形を generate してくれる。誰が実装しても構成を統一できることは大きなメリットだと思う。nest g resource [name]
  • Domain logic は xxx.service.ts に実装する。

Schema definition

  • NestJS は Web API を OpenAPI2 形式で共有できる。3
  • NestJS は Swagger を提供している。GraphQL Playground も。4
  • IMO, API は開発した後が重要だと思う。なぜなら、どの会社でも「API の仕様を教えてください。」というやり取りを目にするから。

The OpenAPI specification is a language-agnostic definition format used to describe RESTful APIs. Nest provides a dedicated module which allows generating such a specification by leveraging decorators.

OpenAPI仕様は、RESTful API を記述するために使用される、言語にとらわれない定義フォーマットである。Nestは、デコレータを活用してこのような仕様を生成できる専用モジュールを提供している。

alt text

BTW

新しい職場のオンボーディングや業務理解が落ち着いてきた

そして、気づけば GitHub の草が枯れ始めていた 🌱

事業ドメインへの理解(Why)を深めつつ、最適な課題解決の How を提供できるよう Engineer として学びを深めていきたい

  1. https://docs.nestjs.com/

  2. https://www.openapis.org/

  3. https://docs.nestjs.com/openapi/introduction

  4. https://docs.nestjs.com/graphql/quick-start

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?