小峯 祥平 / Shohei Komine

自己紹介

2021年8月LayerX入社。
バクラク事業部でバクラク申請・経費精算のEngineeringManager/TechLeadを担当。クラフトビールと日本酒と静的型付け言語(GoやKotlinなど)とDDDが好き。LayerX入社前はEC系の会社を3社経験。業務としてはアプリからバックエンド開発、ベトナム駐在まで幅広く経験があります。LayerXには行動指針に惹かれて入社しました。特に好きな行動指針は『徳』。最近は「お客様に向き合い、組織としてどう事業を育てるか?」というテーマに関心が高いです。

コンテンツ

【GraphQL × Go】gqlgenの基本構成とオーバーフェッチを防ぐmodel resolverの実装 - LayerX エンジニアブログ
こんにちは。SaaS事業で LayerX ワークフローの開発を担当している@sh_komineです。 この記事は、 LayerX Advent Calender 2021 の16日目の記事です。 LayerX ワークフロー ではGoとGraphQLをフル活用して開発を行なっています。 GraphQLの良さはいろいろと語られていますが、「Goで実際にどう実装するんだ?」と言うところは、 gqlgenの簡潔な Get Started があるくらいでなかなか手で動かさないと理解できないなという思いがありましたので、graphqlのプロジェクトの基本構成に触れながら、オーバーフェッチを防ぐ実装の仕方について書いていきたいと思います。 本記事は実際の事例ではなく、gqlgen 初学者の全体把握、gqlgenの仕組みについての理解に焦点を当てた記事になります。 以下の流れで話をします。 graphqlの基本構成 オーバーフェッチングを防ぐためのmodel resolverの実装 補足 graph/schema.graphqls の分割 フロントエンドと組み合わせた全体の話や、DBなどの処理も含めた全体を通した話はしません。 実装例については、尊敬する同僚の@mosaさんや@anagoさんが過去に書いた記事がありますので、そちらをご覧ください。 graphqlの基本構成について理解するために、以下の流れで見ていきます。 運用しているとどんどんファイルは大きくなり、全体像の把握が難しくなってくるので、一番最初のシンプルな構成から内容を見ていきます。 1-1. スケルトンプロジェクトを作る 1-2.