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