https://hasura-tokyo.connpass.com/event/268144/ で発表したものです。
2023/01/19Development Division / Lead EngineerSeiya Ishikawa (@yutorinD)新卒でサービス立ち上げからHasuraを使って3年経った振り返りHasura User Group Tokyo Meetup #2
View Slide
2- WASD Inc. Lead Engineer- 創業と同時に最初のエンジニアとして新卒でジョインした- 趣味: PCゲーム、ピアノ、ウイスキー、甘いもの- 中2の頃にPC自作してから洋ゲーばかりやってます- 初めての登壇です自己紹介Seiya Ishikawa( Yutorin : @yutorinD )
3Hasuraのすごい使い方の話とかは話しません話さないこと
4自分語りします話すこと
5もくじ● Hasura is 何● 弊社・サービスの紹介● 運用について● 開発の歴史● Hasuraのよさみ● 苦労していること
6- Hasura GraphQL Engineのこと- DBからGraphQL APIを自動生成してくれるGraphQLサーバー- フロントエンドから色々データを扱える- DB操作がHasura上で出来るHasura is 何
7弊社・弊サービスについて
8弊社についてMission意思疎通をもっと便利に
9サービス紹介どこからでもかんたん呼び出し お困りごとがすぐ伝わる
10使い方スマホで二次元コードを読込み呼び出しかけつけ、遠隔等適切な手段で接客ブラウザやアプリで呼び出しを受信接客を評価お客様の行動 スタッフの行動 スタッフの行動 お客様の行動1 2 3 4
全国の様々なゲームセンターや小売店などに導入されています11使ってみてね
12実際の画面呼び出し画面
13実際の画面管理画面 端末
14伸びてます
15運用
16運用方法TypeScriptを主軸にフロントは Next.jsサーバーサイドは Node.js でやっています組織戦略と GraphQL、Hasurahttps://speakerdeck.com/shinnoki/zu-zhi-zhan-lue-to-graphql-hasura?slide=9
17main / develop にマージされるとAllow List が更新されたりmigration や metadata が反映されますCI / CD
18開発の歴史
19● Apexをしていたら現CEOに誘われた● ちょうどReact, TypeScriptやGraphQLを触っていた● 2020/1にジョインして開発開始始まり
20- Firebase上にあげてモックを用意していた- DBはFirestoreでやる?とか悩んでいた開発開始管理画面 呼び出し画面
メンターだった@shinnoki(現CTO)がHasuraを紹介21ここで登場NoSQLで開発してしまうとDB設計が複雑化してきたときにツールや知見が世の中に転がっていなくて大変。Hasuraを使えば開発効率もいいし、SQLも使えるし、仮にHasuraをやめてバックエンドを書くことになってもDBはそのまま使えるからリスクが少ないよ。
環境整備もラクだし運用もすごく簡単22Hasura👍
231ヶ月しないうちに基本的な機能が揃ってPoC予定のお客様に見せることができたほめられた🎉
24店舗従業員向けのアプリを作る話になりReact-Native / Expoでゼロから2週間弱でストアリリース🎉アプリも作った
25半年経って二人エンジニアがジョイン🎉コーディング経験はあるが弊社の技術スタックはほぼ未経験人が増えた
262週間ほどで本番にPull-Requestが出せるように初学者にもいい
27Hasuraは学習コストが低く初めての人に教えるのも良い初学者にもいい
28そして現在・・・
29人も増えました
30追加サービスも増えてます
31ベータリリースから導入店舗数700店舗に至るまで長時間の障害もなくHasuraで運用し続けられています
32Hasuraのよさ
33爆速で開発できたHasuraのよさ
34docker compose upだけデジちゃいむリポジトリ内のREADME
35爆速で開発できた2- code-generatorで型安全につなぎ込める- 学習コストが低いため、GraphQL経験がない人でもすぐに開発に貢献できる- みんなフルスタックにできるようになる- 外部委託の方のキャッチアップも爆速で終わる- Migrationのおかげで環境を簡単に合わせられる
36Hasura-Consoleが見るだけですぐ使えるとりあえず使えるHasura - Quick Start with Dockerhttps://hasura.io/docs/latest/getting-started/docker-simple/#try-out-a-query
37よしなにやってくれる- n+1問題とかSQLインジェクション対策とか- Production Checklistに従えばより安全に- https://hasura.io/docs/latest/deployment/production-checklist/
38苦労していること
39ビジネスロジックについて- ビジネスロジックや状態管理が複雑になってくると辛い- ActionやRemote Schemaを使わないとフロントエンドに処理がばらけてしまい大変になる- デジちゃいむの場合、順番待ち機能の実装が思ったよりも大変- 呼び出し機能はビジネスロジックとしては簡単
40- Hasuraが便利すぎる- バックエンドの知見が深まりづらいかも?う~ん
41Hasura使ってよかった~おわりに
42