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、Hasura
Search
Yudai Shinnoki
April 21, 2021
Programming
2
4.6k
組織戦略と GraphQL、Hasura
Yudai Shinnoki
April 21, 2021
Tweet
Share
More Decks by Yudai Shinnoki
See All by Yudai Shinnoki
AWS “““触って””” みた
shinnoki
0
93
体に馴染む開発環境 ~ghqはいいぞ~
shinnoki
0
1.6k
Hasura とは何者か メリット・デメリット
shinnoki
10
2.7k
TypeScript と React Hooks と GraphQL のステキな関係性
shinnoki
2
440
リリース前に知りたいネイティブのあれこれ
shinnoki
0
1.4k
外部委託の立場から半ば強引にLaravelを導入した話
shinnoki
0
650
Other Decks in Programming
See All in Programming
Package Traits
ikesyo
1
210
Оптимизируем производительность блока Казначейство
lamodatech
0
950
技術的負債と向き合うカイゼン活動を1年続けて分かった "持続可能" なプロダクト開発
yuichiro_serita
0
300
テストコード書いてみませんか?
onopon
2
340
PSR-15 はあなたのための ものではない? - phpcon2024
myamagishi
0
400
はてなにおけるfujiwara-wareの活用やecspressoのCI/CD構成 / Fujiwara Tech Conference 2025
cohalz
3
2.7k
ASP.NET Core の OpenAPIサポート
h455h1
0
110
AWSのLambdaで PHPを動かす選択肢
rinchoku
2
390
Flatt Security XSS Challenge 解答・解説
flatt_security
0
730
良いユニットテストを書こう
mototakatsu
11
3.6k
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
6
700
責務を分離するための例外設計 - PHPカンファレンス 2024
kajitack
9
2.4k
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
137
6.7k
The Invisible Side of Design
smashingmag
299
50k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
GitHub's CSS Performance
jonrohan
1030
460k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Unsuck your backbone
ammeep
669
57k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
The World Runs on Bad Software
bkeepers
PRO
66
11k
How to train your dragon (web standard)
notwaldorf
89
5.8k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3.1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
173
51k
How STYLIGHT went responsive
nonsquared
96
5.3k
Transcript
組織戦略と GraphQL、Hasura 2021/04/21 iCARE Dev Meetup #20 shinnoki (@konoki_nannoki)
今日話すこと - スタートアップで1年間GraphQL、Hasuraを採用してみてわかったこと - CTOという立場でやっているのでちょっとメタな視点から話してみます - ...準備してみたらGraphQL成分少なかったので補うためにデモします
- しんのき (Yudai Shinnoki) - https://twitter.com/konoki_nannoki - https://github.com/shinnoki - WASD
Inc. CTO - React / React Native / GraphQL / Hasura - GraphQL Asia 2021 でスピーカーやりました 自己紹介
会社紹介 店舗接客のオペレーションを効率化 売り上げアップ・人件費を削減 https://digichime.com
技術スタック React React Native Learn once, write anywhere GraphQL TypeScript
Hasura GraphQL Engine Generate types from GraphQL schema Generate GraphQL API from PostgreSQL tables
システム構成図
Hasura概要 - Hasura Inc. が作っている Hasura GraphQL Engine というツール -
PostgreSQL テーブルから CRUD の GraphQL API を自動生成してくれる - 使い勝手はAppSync、Firestoreなどに近い https://speakerdeck.com/shinnoki/hasura-tohahe-zhe-ka-meritutodemerituto user テーブル query { user } mutation { insert_user update_user delete_user } subscription { user }
Hasuraの便利な機能 - リッチなダッシュボード - JWTベースの認証、認可 - リアルタイム通信(GraphQL Subscription) - Serverless
Functionを使ったビジネスロジック(Hasura Actions) - GraphQLクエリのホワイトリスト(Allow List)
Hasura + GraphQL Codegen - Hasura と GraphQL Codegen を組み合わせて
TypeScript コードまで生成 - 自分で書くコードが少ない → バグを生む可能性が少ない - デモします - 補完がきく、テーブルを消すと Codegenがコケる
スタートアップのジレンマ - とにかくスピード! - 作る → 触ってもらう → 改善 の繰り返し
- プロトタイプでもいいが、動くものはもっといい - テックリードがガガッと作ることも
スタートアップのジレンマ - とにかくスピード! - 作る → 触ってもらう → 改善 の繰り返し
- プロトタイプでもいいが、動くものはもっといい - テックリードがガガッと作ることも - テックリードがボトルネックになる - 運用やセキュリティ診断などに時間を取られる - 採用しようにも結局はテックリードの時間が取られる - 日々共有が行われる仕組みが重要(スクラム、ペアプロ、コードレビュー) 数カ月後...
「ソフトウェアの構造は開発組織の構造を反映する」 コンウェイの法則
「ソフトウェアの構造は開発組織の構造を反映する」 コンウェイの法則 - 組織をスケールさせるにはマイクロサービス化が有用 - GraphQLスキーマを共有することでチーム間のやりとりがスムーズに - 逆にモノリスな構成にすることで密なコミュニケーションを 取る戦略は初期のスタートアップにおいては有用 -
そのために Rails などの Web フレームワークがとても良い - ネイティブアプリやリッチな SPA を作るのがスコープに入っていれば、 最初からフロントエンドの作りやすさを前提に技術選定したほうがよい
- 専門領域が分かる人が1人だと、そもそもペアプロやレビューができない - React、React Native、Hasuraの学習コストであれば全員が触れる - 学習コストは低ければ低いほどよい - AppSync や
Firestore などでもよい - No Code ツールが成熟すればそっちのほうが理想 React + Hasura Frontend Backend iOS Android 全員がフルスタックエンジニア React + Hasura React + Hasura React + Hasura
国内事例 https://note.com/dinii/n/n9be778bd7da3 (2020/09/20)
- ピンポイントでGraphQL経験者を採用するのは難しい - 経験がないと、まず最初にスキーマ設計について 勉強しなければいけないのがハードルが高い 採用、教育、キャリア
- ピンポイントでGraphQL経験者を採用するのは難しい - 経験がないと、まず最初にスキーマ設計について 勉強しなければいけないのがハードルが高い - バックエンドエンジニアがRDB設計のノウハウを活かし活躍できる - フロントエンドエンジニアもRDBの設計を学ぶことができる 採用、教育、キャリアの観点
Hasuraを使うと
- 自動生成のAPIで本当に使えるの? - 複雑になってくると辛いこともあるけど大体の場合これで十分 - 枯れてない技術を使って大丈夫? - DBとGraphQLスキーマがあれば、バックエンドは再実装も不可能じゃない - どんな技術も辛くなったら
- Hasuraやめる場合はまたどこかで情報発信していきます - 情報が少ない - がんばる Hasura Q&A
- 立ち上げ期のスタートアップと GraphQL の親和性は高い - 特に立ち上げ期は Hasura がオススメ! - ただしドキュメントを読んで頑張ることは必要
- やっていきましょう 💪 まとめ
この発表に興味を持たれたらご連絡ください!