開発効率UPを実現する「スキーマ駆動開発」

こんにちは、開発本部長の徐(ジョ)です。
今後、テック系の記事を少しずつ更新していきたいと思います。
今回のテーマは、Webinar Room の開発に一部導入した「スキーマ駆動開発」です。

スキーマ駆動開発とは

スキーマ駆動開発とは、OpenAPIのスキーマ(仕様書)を最初に定義し、その定義をもとにバックエンドとフロントエンドの開発を同時に進めるという開発手法です。

バックエンドでは、仕様書に書かれたリクエストがきた時に、どうデータを返すかを考えてAPIを作ります。
フロントエンドでは、仕様書に書かれたデータが返ってくるという前提で、画面を作ります。

ドキュメント記述方法の標準化(OpenAPI)や、プロトコル(GraphQL、 gRPC)が開発され、スキーマからドキュメントまで自動生成が可能になったことで注目され始めた、新しい開発手法です。

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

1.バックエンドとフロントエンドの同時開発ができる

OpenAPIのスキーマ(仕様書)をもとに開発を進めるため、バックエンド先行の開発を行う必要がなく、フロントエンドも同時並行で開発を進めることができます。

2.自動でドキュメントが生成される

仕様書からドキュメントを自動生成することができます。手作業でドキュメントを作成する必要がないので、ドキュメント作成のコスト削減ができます。

ヒトクセでの導入

当社では、Webinar Room というサービスにおける管理画面の開発にこの開発手法を導入しました。

【課題】
もともと仕様書の記述は行っていましたが、コードの更新を仕様書に反映しておらず、うまく利用できていませんでした。
また、バックエンドの開発が完了しなければフロントエンドの開発ができないため、開発サイクルが遅くなってしまっていました。

【スキーマ駆動開発の導入】
上記の課題を解決するために導入したのが、スキーマ駆動開発です。
まずはじめに、ビジネスサイドとコミュニケーションを取り、実現したいことのイメージのすり合わせを行いました。
それをもとに、OpenAPIのスキーマ(仕様書)を作成し、作成したスキーマをバックエンドとフロントエンドで相互レビューを行いました。仕様書が固まったら、いよいよ開発スタートです。

先日導入したばかりではありますが、OpenAPI周りのツールやライブラリを利用することで、全体の開発効率が良くなっている実感があります。
また、最新の仕様書を常に確認できることと、自動テストが可能なことから、仕様書とコードのズレもなくなりました。
仕様書からの開発コード自動生成については、現在試行錯誤しています。これから自動生成できるようにしていきたいと考えています。

おわりに

今回は当社で導入したスキーマ駆動開発の紹介をしました。少しでも皆さんの参考になれば幸いです。

ヒトクセでは、新しいことに興味を持って変化を楽しめるエンジニアを募集しています。
少しでもご興味をお持ちいただけた方は、採用ページからお問い合わせください。
採用ページはこちら