アンチパターンの概要

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

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

アンチパターンの概要

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

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

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

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

アンチパターンとは

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

format_quote

ソフトウェア開発におけるアンチパターンとは、必ず否定的な結果に導く、しかも一般的に良く見られる開発方式を記述する文献形式を言う。

format_quote

つまりアンチパターンとは、ソフトウェアにおいてユーザーが実行できるにもかかわらず、機能、サービス性、パフォーマンスに悪影響を及ぼす可能性のある開発パターンを意味します。

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

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

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

図 1: God クラス

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

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

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

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

対象

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