私の開発作業で繰り返されるテーマは、社内プラグインアーキテクチャの使用または作成でした。構成ファイル(XML、.confなど)、継承フレームワーク、データベース情報、ライブラリなど、さまざまな方法でアプローチするのを見てきました。私の経験では:
- データベースは、構成情報を保存するのに最適な場所ではありません。特に、データが混在しています。
- 継承階層を使用してこれを試みるには、プラグインについての知識が必要です。つまり、プラグインアーキテクチャはそれほど動的ではありません。
- 構成ファイルは単純な情報を提供するのに適していますが、より複雑な動作を処理できません
- ライブラリはうまく機能しているようですが、一方向の依存関係は注意深く作成する必要があります。
私がこれまでに使用したさまざまなアーキテクチャーから学びたいと思っているので、コミュニティーに提案を求めています。SOLIDプラグインアーキテクチャをどのように実装しましたか?あなたの最悪の失敗は何でしたか(またはあなたが見た中で最悪の失敗)?新しいプラグインアーキテクチャを実装する場合はどうしますか?あなたが使用したどのSDKまたはオープンソースプロジェクトが、優れたアーキテクチャの最も良い例を持っていますか?
私が自分で見つけたいくつかの例:
- Perlの依存関係注入のためのPerlのModule :: PlugableおよびIOC
- 依存関係注入のためのさまざまなSpringフレームワーク(Java、.NET、Python)。
- SOの質問(含むJava用のリストとサービスプロバイダインタフェース)
- ドブス博士の記事を指すC ++ に関するSOの質問
- SOの質問 ASP.NET MVCのための特定のプラグインの考え方について
これらの例は、さまざまな言語の強みを発揮するようです。優れたプラグインアーキテクチャは、必ずしも言語に関連付けられていますか?ツールを使用してプラグインアーキテクチャを作成するのが最適ですか、それとも自分の次のモデルで作成するのが最適ですか?