スキーマ駆動開発実践入門

By Junki Kaneko

Elevator Pitch

このセッションはスキーマ駆動開発をミニマムで一人で試しに実践してみたい人向けのセッションです。 一つのリポジトリ内でProtocol Buffersのワークフローやビルド管理、go:embedを利用して全て一つのバイナリにまとめるミニマムな構成についてご紹介するセッションです。

Description

モチベーション

スキーマ駆動開発、と言いますと大規模な開発をする際に必要な開発手法だと想像する方も多いと思います。 しかし、最近はそれを簡単に実践するための周辺ツールも揃ってきているので、小さなプロダクトにも浸透させていきたいという思いも込めてお話しします。

対象者

Goで簡単なWebアプリケーションを開発したい人

アジェンダ

今回お話しするアーキテクチャについて

クライアントサイドをSPAとして、gRPC-Webを使ってサーバサイドとAPI通信を行います。 今回扱うアーキテクチャや構成について簡単に解説します。

スキーマ駆動型開発のメリット

Protocol Buffersを最初に決めてから開発すると、スタブを自動生成してサーバとクライアント開発をそれぞれ並行して進めることができます。 その他、スキーマ駆動開発におけるメリットについてお話しします。

Protocol Buffersのワークフロー管理

Protocol Buffersをbufbuild/bufでワークフロー管理をし、gRPCサーバとクライアントの自動生成する方法について、具体的なコードも交えて解説していきます。

アプリケーションのビルドについて

アプリケーションのビルドとgo:embedを組み合わせて一つのGoバイナリにまとめる方法についてお話しします。

WebサーバとgRPCサーバ

Webアプリケーション(HTML)を返すHTTPサーバと、gRPC-Webサーバを同時にGoの中でListenするテクニックや注意点について、具体的なコードも交えて解説していきます。

まとめ

最後に、今回ご紹介したアーキテクチャやワークフローを俯瞰的に振り返ります。