第15章 私のアプリケーションはAPI呼び出しだらけです
API呼び出ししかないシステムは難しくなる
API呼び出ししかないため、大抵は構造を良くする方法を調べるのが難しくなる
APIが自分たちの所有物ではないので、インターフェースやクラス・メソッドの名前を変更ことや、メソッドを追加できないこと
設計を改善する方法
- APIをラップする
- そっくりAPIを模したインターフェスを用意してラッパーを作る
- 本番は本物のAPIに処理を委譲し、テストコードでは擬装オブジェクトが使える
- そっくりAPIを模したインターフェスを用意してラッパーを作る
- 責務をもとに抽出する
- コードの責務を識別し、その単位でメソッドの抽出をする
感想
マイクロサービスとかは、API呼び出しの塊な気がするけど、それはAPIが全部自分たち所有のものだから関係ないのか?(もしくは年代的にそういった思想が広まる前?)
APIをラップするのは、別の互換性のあるAPIを使うときにも役に立つ
APIを直接呼び出すのではなく、ラップ部分を呼び出しているのでラッパーを変更すれば良い状態になるため(APIに限らずライブラリとかにも使うことがあったりする)