patorashのブログ

方向性はまだない

スキーマ駆動開発は依存関係逆転の原則を適用したものだと気づいた

ここ最近、チーム内で設計力強化のためにクリーンアーキテクチャ読書会をしているのだけれど、そこで気づいたことがあるのでメモとして残しておく。

18章の境界の解剖学を読んでいた際に、クライアントとサービスの図があったのだが、下位レベルのクライアントから上位レベルのサービスへの呼び出しとなっていた。しかし、ここでサービスのインターフェースを挟むことで、上位レベルのクライアントから下位レベルのサービスへの流れとなっていた。

このサービスのインターフェースこそが、Swagger Editor等で作るWebAPIのスキーマであり、バックエンドはこのスキーマをインターフェースとして捉えてこれをimplementする形で実装する。フロントエンドは、WebAPIのスキーマをインターフェースとして呼び出すことを前提として作れば、フロントエンドとバックエンドは疎結合となる。

スキーマ駆動開発はフロントエンドとバックエンドを疎結合にして実装できる、とは以前から認識していたのだけれど、依存関係逆転の原則を適用したものだとは本を読むまで気づいてなかったので、気づいたときはすごく嬉しかったというか、ワクワクした。

一回読んだだけだと全然よくわかってなかったんだけれど、色々見えるようになってきてから読むと、また気づきがあるなと思えた。