アンチパターンの概要

このセクションでは、Apigee Edge プラットフォームにデプロイされた API プロキシでよく見受けられる各種のアンチパターンについて説明します。

これらのアンチパターンのそれぞれを明確に特定することができ、推奨される適切な手法によって修正可能です。これにより、Edge にデプロイされた API は API 自体の本来の目的を適切に果たせるようになり、より高い性能を発揮します。

アンチパターンの概要

次のテーブルは、このセクションで説明するアンチパターンの一覧を示します。

カテゴリ アンチパターン
ポリシーに関するアンチパターン
パフォーマンスに関するアンチパターン
一般的なアンチパターン
バックエンドに関するアンチパターン
Edge for Private Cloud に関するアンチパターン

アンチパターンに関する電子書籍のダウンロード

上記のリンクに加え、各種のアンチパターンについての説明を電子書籍としてダウンロードできます。

アンチパターンとは

Wikipedia によると、ソフトウェアのアンチパターンは次のように定義されています。

ソフトウェア開発におけるアンチパターンとは、一般的によく使用されている、非効果的または効率を下げてしまうプラクティスの傾向です。

つまりアンチパターンとは、ソフトウェアのユーザーが所定の操作を実行できるとはいえ、機能性、サービス性、パフォーマンスに悪影響が及ぶ可能性のある開発パターンです。

たとえば、全能者のような響きがある「God クラス / オブジェクト」について考えてみましょう。

オブジェクト指向の用語で言えば、God クラスはある特定のアプリケーションにおいて、数多くのクラスを管理するクラスです。

例として、次のような参照ツリーを持つアプリケーションがあるとします。

図 1: God クラス

図からわかるとおり、God クラスが使用および参照するクラスの数は多すぎます。

このアプリケーションの開発に使われたフレームワークでは、このようなクラスの作成が禁止されてはいませんが、この設計ではあまりにも不便です。主な問題点は次のとおりです。

  • 管理が困難
  • アプリケーションの実行中に単一障害点が生じる

結果として、こうしたクラスの作成は避けるべきです。これがアンチパターンです。

対象

このセクションの主な対象読者は、サービス提供用の API プロキシを設計、開発する一連のライフサイクルを経験している Apigee Edge デベロッパーです。このセクションを、API 開発のライフサイクルで、またはトラブルシューティングでの参照ガイドとして使用するのが理想的です。