モノレポ設計とGraphQLのサンプル作成

サービス開発作業をする上で毎回repositoryを設計する作業にだいぶ工数が取られると思い、今流行ってる技術を利用したモノレポを改めて整備しました。repositoryの設計は凝り始めるとキリがない。。。

作ったもの: https://github.com/pigooosuke/mymonorepo

技術要素

  • Frontend
    • NextJS
    • TailwindCSS
  • Backend
    • NestJS
    • prisma(GraphQL)
  • Database
    • MySQL

言語を統一して開発できるようにTypescriptだけ構成されてます。(実務ではあまり使わない言語なのに。。。)

CI/CD, Iacなどの要素は追加していないです。

実装内容

よくあるTodoアプリだけを実装してあります。

React hooksによるState管理versionと、DBをGraphQL連携管理versionの2種類をサンプルとして載せてあります。

my image

GraphQLを実際に実装したのは初めてでしたが、GraphQLのエコシステムがかなり整備されている印象です。

https://graphql.org/code/#javascript-tools

また、Mutation(データ更新)した後に、データの再取得する処理をcallback的に登録できる優しい設計になっていて感動しました。

https://www.apollographql.com/docs/react/data/refetching/

N+1問題に対応させるDataLoader実装も後で挑戦してみたいですね。