拡張性の定義
拡張性とは、基盤となる基盤を変更することなく、新しい機能や機能を追加できるシステムの能力です。 拡張可能なシステムでは、開発者はモジュール式のコンポーネントを追加したり、カスタムコードを作成して機能を拡張したりできます。
拡張性の仕組み
- ホワイトボックス:最も柔軟で最も制限の少ない形式の拡張性であるホワイトボックス拡張性は、ソフトウェアシステムのソースコードを変更することで拡張することができます。
- ブラックボックス:ブラックボックスの拡張性(「データ駆動型フレームワーク」とも呼ばれます)では、利用可能なソースコードを変更せずにソフトウェアシステムを拡張できます。 追加されたものは、元のシステムに影響を与えることなく、元のシステムと相互作用できる必要があります。
- グレーボックス:グレーボックスの拡張性は、ホワイトボックスとブラックボックスの拡張性の哲学の混合です。 グレーボックスの拡張性では、システムは開発者がカスタム関数を追加するためのインターフェースを提供し、その内部動作へのアクセスを提供します。
拡張性の実際の例
- モジュールアーキテクチャ:モジュールアーキテクチャでは、システムは独立したモジュールのセットに分割されており、他の部分に影響を与えることなく追加または削除できます。
- スクリプト言語:スクリプト言語(PythonやJavaScriptなど)を使用すると、開発者はシステム用のカスタムコードを作成できます。 これらのスクリプトは、基礎となるコード(システムの他の部分と共有されている)に触れることなく、システムの動作を変更したり、新しい機能を追加したりできます。
- API(アプリケーションプログラミングインターフェイス):開発者は、公開されたAPIを介してシステムと相互作用するアプリケーションまたはツールを作成し、システムの機能を拡張できます。
- プラグインと拡張機能:開発者は、システム用の個別のプラグインまたは拡張機能(Chrome、Edge、Firefoxブラウザ用の拡張機能など)を作成して、ユーザーがエクスペリエンスをカスタマイズできるようにします。