Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
組織戦略と GraphQL、Hasura
Yudai Shinnoki
April 21, 2021
Programming
2
3.2k
組織戦略と GraphQL、Hasura
Yudai Shinnoki
April 21, 2021
Tweet
Share
More Decks by Yudai Shinnoki
See All by Yudai Shinnoki
AWS “““触って””” みた
shinnoki
0
35
体に馴染む開発環境 ~ghqはいいぞ~
shinnoki
0
620
Hasura とは何者か メリット・デメリット
shinnoki
9
1.6k
TypeScript と React Hooks と GraphQL のステキな関係性
shinnoki
2
320
リリース前に知りたいネイティブのあれこれ
shinnoki
0
910
外部委託の立場から半ば強引にLaravelを導入した話
shinnoki
0
480
Other Decks in Programming
See All in Programming
スモールチームがAmazon Cognitoでコスパよく作るサービス間連携認証
tacke_jp
2
340
ゴーファーくんと学ぶGo言語の世界/golang-world-with-gopher
iwasiman
1
150
Securing Kafka Connect Pipelines with Client-Side Field Level Cryptography @ Kafka Summit London 2022
hpgrahsl
0
310
Enterprise Angular: Frontend Moduliths with Nx and Standalone Components @jax2022
manfredsteyer
PRO
0
290
Nix for Scala folks
kubukoz
0
120
microCMS × Shopifyで、ECサイトがリニューアル後急成長した話
microcms
0
470
Is Rust a great language for building Kubernetes ecosystem
deepu105
0
140
LOWYAの信頼性向上とNew Relic
kazumax55
4
350
TechFeed Conference 2022 - Kotlin Experimental
jmatsu
0
720
もしも、 上司に鬼退治を命じられたら~プロジェクト計画編~
higuuu
0
270
質とスピード(2022春版、質疑応答用資料付き) / Quality and Speed 2022 Spring Edition
twada
PRO
28
18k
Unity Localization で多言語対応実装しよう / xrdnk-yokohamaunity-lt10-20220513
xrdnk
0
110
Featured
See All Featured
Infographics Made Easy
chrislema
233
17k
Side Projects
sachag
449
37k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
151
12k
A Modern Web Designer's Workflow
chriscoyier
689
180k
Thoughts on Productivity
jonyablonski
43
2.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
4
2k
Designing for humans not robots
tammielis
241
23k
Gamification - CAS2011
davidbonilla
75
3.9k
Git: the NoSQL Database
bkeepers
PRO
415
59k
The Language of Interfaces
destraynor
148
20k
Three Pipe Problems
jasonvnalue
89
8.6k
How to name files
jennybc
39
58k
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 がオススメ! - ただしドキュメントを読んで頑張ることは必要
- やっていきましょう 💪 まとめ
この発表に興味を持たれたらご連絡ください!