TypeScriptによるGraphQLバックエンド開発 ─ TypeScriptの型システムとデータフローに着目した宣言的プログラミング
2022年10月14日に開催されたオンラインイベントのアーカイブ動画となります。
イベントページ:https://techplay.jp/event/873259
-------------------------
▼イベント概要
近年、Web フロントエンド開発は React / Vue が普及したことにより、
煩雑なユーザーインタフェースの状態管理を、
その複雑性を抑えながら記述することができるようになってきました。
このフロントエンドの状態管理モデル ・・・ イベントを契機に遷移する時系列の状態を宣言的プログラミング
によって記述する考え方は、果たしてフロントエンドにのみ有効な手段と言えるのでしょうか?
もしフロントエンド開発だけでなくバックエンド開発にも同様の考え方を適用することができるなら、
双方のアーキテクチャギャップが埋まり、開発コンテキストの違いを
少なくすることはできるのでは ないかと考えました。
フロントエンド開発とバックエンド開発の距離を近づけることができれば、
開発における知見の共有およびディスカッションの密度が上がり、
よりよいプロダクト開発に繋げることができるのではないかと考えています。
グルメサイトのWeb予約を一元管理できる飲食店向けの SaaS「RESZAIKO」は
少人数のチームで開発をスタートしました。
ユーザーインタフェースが重要になる本プロダクトでは、
快適なユーザー体験を提供するべくフロントエンド開発に注力する必要がありました。
React 18 / Relay / Recoil を採用したフロントエンド偏重の開発プロジェクトにおいて、
どのような GraphQL バックエンドアーキテクチャを採用すれば
よりスムーズに開発することができるかを考えた結果、
従来手法とはやや異なる手法を採用するに至り、
結果としてより少ない記述量で堅牢なアプリケーション開発を実現することができています。
本イベントでは、このチャレンジをリードするCTO伊藤氏より、
新しい開発手法の着眼点、その採用理由
Typescript の言語特性を活かした設計 ・・・
タグ付きユニオンでモデルの状態遷移を型で宣言する / Result 型を用いたデータフロープログラミング
新しい開発手法を取り入れたことで解決できた課題や得られたメリット
などについて、取り組みの全貌とそのアーキテクチャについてお話します。
<Chapter>
00:00:17 オープニング
00:01:39 Teammate Advanced Driveについて
00:56:03 Q&A
01:19:41 クロージング