Chapter 01無料公開

✅ガイドライン

たった
たった
2021.06.25に更新
  • 本書は、バックエンドアプリケーションの設計・プラクティスに主眼を置いています。そのためフロントエンド、インフラ、CI/CDパイプラインについては軽く触れる程度にします。
  • 使用する技術そのものの詳細な解説は公式ドキュメントに委譲します。
  • 本書の中でアプリケーションの設計に関する用語・考え方が登場します。これらについては、たくさんの良質な書籍・公開情報があるため、詳細な解説は省略します。
  • 本書で使用するサンプルコードはサニタイズされています。コピペしてそのまま動作するわけではないのでご了承ください。

書き出してみたら全部でChapter16に渡る長編となりました。

それぞれのChapterは1つのトピックだけを記述しているので、気になるトピックを見つけたら拾い読みしても良いと思います。

こちらのガイドラインは、本編のチャプターを読んでいてわからなくなった時に帰ってくると何かの助けになるかもしれません。

それでは!

執筆時の開発環境

ホストマシン
$ node -v
v15.14.0
$ yarn -v
1.22.10
$ docker -v
Docker version 20.10.5, build 55c4c88
$ docker-compose -v
docker-compose version 1.29.0, build 07737305

モジュールの依存関係

主要なライブラリの紹介

  • ApolloServer

    • GraphQLサーバを提供します。
    • エラー処理・認証など機能が豊富なので、様々な仕様に対応できます。
  • TypeGraphQL

    • TypeScriptでGraphQLを扱いやすくしてくれるライブラリです。
    • TypeORMと相性が良いです。
    • 関連ワード
      • Resolver, Mutation, etc...
  • TypeORM

    • TypeScriptで書けるORMです。
    • ドメイン層を定義します。
    • 関連ワード
      • Repository, Entity etc...
  • InversifyJS

    • 依存性の注入を実現します。
    • 関連ワード
      • DI, IOC, inject etc...
  • Dataloader

    • 処理のバッチ化とキャッシングを行います。
    • N+1問題の処理、外部APIとの接続時に便利です。
    • 本記事はtype-graphql-dataloaderというライブラリも使用します。
  • class-validator

    • classのプロパティにバリデータをアノテートできるライブラリです。
    • 随所で活躍します。
  • Jest

    • お馴染みのテストライブラリです。