SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers CAREER Boost セッションレポート(PR)

あなたの仕事を楽にする「スキーマ駆動開発」とは?──自動化ツールも導入してさらに楽に

【A-3】Schema As Codeで実現する最速のスキーマ駆動開発

  • このエントリーをはてなブックマークに追加

クライアント側とサーバー側が非同期で開発を進めることができる

 土田氏はOpenAPIを利用したこのような開発スタイルの最大の利点として、「クライアント側とサーバー側が非同期で開発を進めることができる」点を挙げる。API仕様の確認のために打ち合わせを繰り返す必要がなくなるため、それぞれのペースで開発を進めることができるのだ。実際に土田氏は、さらなる利点として「サーバー側とクライアント側の開発者間のコミュニケーションコスト削減」を挙げている。

 そして土田氏は3つ目の利点として、自動生成を挙げた。OpenAPI形式でAPIの定義文書ができれば、必要なライブラリなどを自動的に生成できるのだ。コードを人間が実装する工数を削減できるだけでなく、決まった形式の定義文書からコードを自動的に生成するため、間違いも減らせる。

 OpenAPI形式の定義文書から自動的に生成できるものとしては、まずクライアント用のライブラリが挙げられる。これによってHTTPの通信を開発者が自身で実装する必要がなくなり、より抽象度の高いライブラリのAPIを呼び出して機能を実装できる。

 次に、サーバー側APIのモックが挙げられる。クライアント側がサーバー側との通信を試すとき、実際にサーバー側のAPIと通信してみるのが最も確実な手段だが、サーバー側APIの実装が完了するのを待たなければならない。これではクライアント側とサーバー側が非同期で開発を進めるという利点がなくなってしまう。そこで、APIの名称と呼び出し方と戻り値を再現するモックを利用するのだ。

 さらに最近では、OpenAPI形式の定義文書からサーバー側のコードを自動生成することができるようになってきている。これでサーバー側もAPIの定義と実装がずれることがなくなり、工数を削減できるのだ。

OpenAPIだけでは解決しない問題もある
OpenAPIだけでは解決しない問題もある

 ただ、土田氏によるとOpenAPIファイルを利用するだけでは、解決しない問題があり、新たな問題を起こすこともある。よくある問題として土田氏は3点挙げた。1つ目はYAMLやJSONのファイルが開発者にとって読みやすいものではないということ。メンバー全員でOpenAPIファイルをレビューするときに、手間と時間がかかる。

 2つ目はAPIの定義がデータベース設計に強く依存すること。途中でデータベース設計を変更すると、APIの定義も修正が必要になるが、修正が漏れてしまうことが長期的なプロジェクトではよくあると土田氏は指摘する。3つ目は、データベースを操作するCRUD(Create:データの作成、Read:読み出し、Update:更新、Delete:削除)のAPIの定義を書くのに大きな労力がかかるということだ。

次のページ
コードとしてスキーマを記述し、DB設計も自動化

関連リンク

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Developers CAREER Boost セッションレポート連載記事一覧

もっと読む

この記事の著者

笹田 仁(ササダ ヒトシ)

 フリーランスのライター、編集者。IT、特にソフトウェア開発の話が好きです。 趣味はドラムを叩くこと。コロナ騒ぎでリハーサルスタジオに入りにくくなり、ちょこちょこと楽器を買うことでストレスを解消していたら、いつの間にか置き場所に困るほどになってしまいました。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/17115 2023/01/23 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング