Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GraphQLの社内ドキュメントを作った話
Search
teppeita
July 06, 2023
Programming
0
280
GraphQLの社内ドキュメントを作った話
2023/07/06 tsukiji.graphqlで発表したLTのスライドです
teppeita
July 06, 2023
Tweet
Share
More Decks by teppeita
See All by teppeita
フロントエンドのディレクトリ設計思想
teppeita
26
34k
Other Decks in Programming
See All in Programming
Javaのルールをねじ曲げろ!禁断の操作とその代償から学ぶメタプログラミング入門 / A Guide to Metaprogramming: Lessons from Forbidden Techniques and Their Price
nrslib
3
1.9k
AIエージェントによるテストフレームワーク Arbigent
takahirom
0
370
関数型まつり2025登壇資料「関数プログラミングと再帰」
taisontsukada
2
800
Elixir で IoT 開発、 Nerves なら簡単にできる!?
pojiro
1
120
ASP.NETアプリケーションのモダナイズ インフラ編
tomokusaba
1
220
型付きアクターモデルがもたらす分散シミュレーションの未来
piyo7
0
770
赤裸々に公開。 TSKaigiのオフシーズン
takezoux2
0
130
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
1
660
ReadMoreTextView
fornewid
1
380
Enterprise Web App. Development (2): Version Control Tool Training Ver. 5.1
knakagawa
1
110
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
230
カクヨムAndroidアプリのリブート
numeroanddev
0
410
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
92
6.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
Into the Great Unknown - MozCon
thekraken
39
1.8k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Music & Morning Musume
bryan
46
6.6k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
43
2.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Six Lessons from altMBA
skipperchong
28
3.8k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Transcript
GraphQLの社内ドキュメント を作った話 2023-07-06 tsukiji.graphql 株式会社マイベスト 竹尾 哲平(@_teppeita)
• 竹尾 哲平 • @_teppeita • フロントエンドエンジニア • 株式会社マイベスト •
人の選択をサポートするサービス • 商品を自社で検証してランク付け 自己・自社紹介 ドキュメント作成の背景
今日伝えたいこと GraphQLは 社内向けのドキュメントを整えると 運用コストが減るので オススメ
今日話すこと ▶ 作成の背景と解決したかった課題 ▶ ドキュメント作成の進め方 ▶ 成果物(=ドキュメント)の紹介 ▶ 結果どうなったか
GraphQLは2019年に導入 バックエンドはRailsなので、graphql-rubyを使用 クライアントはApolloClientを使用 ここ1年で、 フロントエンドの構成を、Rails/一部Reactから、ほぼ全画面をNext.jsに置き換え それに併せて、GraphQLのAPIも全面的に実装 GraphQLの使用場面が急増した結果、いくつかの課題が顕在化した マイベストとGraphQL 作成の背景と解決したかった課題
• 入社後に初めてGraphQLを触る人が多い • 概念的な説明から具体的な実装方針まで理解が必要 • 毎回誰かが時間をかけて説明しなければならない 課題①:オンボーディング 作成の背景と解決したかった課題
• 設計・実装方針を共有しきれていなかった • コードレビューで都度コメントして共有する必要があり負荷が高 かった • ルールを決められていない箇所で、統一感の無いコードがどんどん 増えていった 課題②:設計方針の共有 作成の背景と解決したかった課題
→結果 「大まかな方針は分かったけど、具体的な実装はどうすれば良い?」 「今回読んだ人と読んでない人の格差が出るのでは?」 まずトライしたこと 作成の背景と解決したかった課題
課題を解決するには、 社内向けのドキュメントが必要 だと判断
今日話すこと ▶ 作成の背景と解決したかった課題 ▶ ドキュメント作成の進め方 ▶ 成果物(=ドキュメント)の紹介 ▶ 結果どうなったか
枠組みを整理 ドキュメント作成の進め方 ページ構成 フォーマット トピック
「手が空いた時に書く」だとなかなか進まないので、 毎週1時間MTGをセットして、その中で作業を進めることに。 議論しながらルールを整理する会を実施(勉強会も兼ねて) ドキュメント整理会を実施 ドキュメント作成の進め方
今日話すこと ▶ 作成の背景と解決したかった課題 ▶ ドキュメント作成の進め方 ▶ 成果物(=ドキュメント)の紹介 ▶ 結果どうなったか
- 全体像 - GraphQLについて学ぶ - マイベストでの使われ方のポイント - 設計思想 - バックエンド
- キャッシュ - ページネーション - N+1 - フロントエンド - ファイルの命名と配置 - 型の自動生成 - Fragment Colocation ページ構成(一部抜粋) 成果物(=ドキュメント)の紹介
ドキュメントの例① 成果物(=ドキュメント)の紹介
ドキュメントの例② 成果物(=ドキュメント)の紹介
ドキュメントの例③ 成果物(=ドキュメント)の紹介
今日話すこと ▶ 作成の背景と解決したかった課題 ▶ ドキュメント作成の進め方 ▶ 成果物(=ドキュメント)の紹介 ▶ 結果どうなったか
オンボーディングでの 個別フォローが 最小限で済むように😃
コードレビューも 方針が明文化されているので 負荷が激減😁
設計で悩んだら 「整理してドキュメントに書きましょう」 という流れができた🤩
結論 社内ドキュメントを整理したら GraphQLの運用がスムーズになった
これからも GraphQLと仲良く🤝 ご清聴ありがとうございました