BFFの導入、1画面1APIにするメリット
- 通信コストが減る
- クライアントのロジックが簡潔になる
- AndroidとiOSで同じ画面構成なら、表示用データを作るためのロジックをAPI層1箇所にまとめられる
問題となりがちな点
- 画面用APIは、クライアントの開発者が開発する(それができないと間に一層挟まるため開発が遅くなる)ことになるが、問題ないのか?
- BFF層のサーバーメンテナンスは誰がやるのか?
- 今現在使っているAPIへの新機能追加は止められない。並行してBFFの開発できるのか?
- クライアント開発者のスキルの問題、やる気の問題、キャリアの問題は解決されているのか?
- 上記のような問題点があるけど、手間暇かけてAPI層を作り変えるメリットある?
個人の感想
技術選定、APIの設計・開発、ドキュメントツール、インフラ構築、体制構築、クライアント開発者の意思確認、クライアント側の開発、やることの多さのわりにメリットが最初に上げた点だけだと辛い
自分自身過去にレガシーAPIのリプレイスをやったりしたが、かけた工数に比べての見返りは小さいと思う
APIが3桁単位で乱立しててそれぞれがスパゲッティに絡まってるとか、レガシーシステムのリプレイスのついでにやるとかならありかなと思う
プロダクト作って2~3年目とかで手を出すようなことではないと思う
BFFの資料とか結構出てきているけど、やることは多いけど考えることは単純ではあるので、たぶん走り出してしまえば上手く行くとは思う
でもかけた工数分のメリットは出ているのかなあとつくづく気になる
BFFは技術視点のメリットである部分が大きいので、プロダクトを熟知していなくても提案することができる
今思うと、大して自社のプロダクトに興味なかった&最新の技術触ってたかったからやってたような気もする
自分のために作った仕事になってないか、よく考えたい