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