問題タブ [dependency-injection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
9126 参照

java - PowerMock を使用するか、テストが設計にどの程度影響するか?

私は長年 EasyMock のファンであり、SO のおかげで、PowerMock への参照に出くわし、コンストラクターと静的メソッドをモックする機能に出会いました。どちらも、テストをレガシー コードベースに後付けするときに問題を引き起こします。

明らかに、単体テスト (および TDD) の大きな利点の 1 つは、それが (力?) よりクリーンな設計につながる方法であり、PowerMock の導入はそれを損なう可能性があるように私には思えます。これは主に次のように現れます。

  1. コラボレーターを注入するのではなく初期化することに戻る
  2. メソッドを共同作業者が所有するのではなく、静的を使用する

これに加えて、自分のコードがテスト用にバイトコードで操作されていることについて、何かがうまくいきません。具体的な理由は言えませんが、本番用ではなくテスト用なので少し不安です。

私の現在のギグでは、人々がコーディングの実践を改善する方法として、単体テストを本当に推進しています. PowerMock を方程式に導入すると、人々はそのステップをいくらかスキップできるようになるので、私はそれを使い始めるのが嫌です. そうは言っても、それを利用することで、クラスのテストを開始するために必要なリファクタリングの量をどこで削減できるかがよくわかります。

私の質問は、これらの機能に PowerMock (または他の同様のライブラリ) を使用した人々の経験は何ですか?それらを利用しますか?また、テストが設計にどの程度影響を与えることを望んでいますか?

0 投票する
2 に答える
1410 参照

c# - 依存性注入によるリポジトリと特殊なリポジトリのデコレーターチェーン

今、私は物事をよりスマートに行う方法を見つけようとしています. そうする過程で、私ができたのは、1日でフルボトルのエクセドリンを使用することだけです.

IRepository というインターフェイスがあるとします。

そして、私は次のような実装を持っていると仮定します

さて、すべて問題ありません。リポジトリに対してすべての基本操作を実行して、すべての CRUD 機能をサポートできますが、特殊な操作が必要な場合があるため、次のようなインターフェイスがあると仮定します。

そして、そのような実装:

オーケー、これで基本的なセットアップは完了です。次に、やりたいことがもう 1 つあります。ロギングやトランザクションなどをすべて透過的にしたいと考えています。そこで、Castle Windsor や StructureMap などの依存性注入フレームワークを使用して、IRepository を要求すると、LoggingRepository と TransactionRepository によってラップされるようにします。どちらも IRepository を実装しています。

だから、私がやりたいことは次のようなものです:

Logging および Transaction デコレーターにラップされたユーザー リポジトリを返すようにしますが、これが機能する方法が思い浮かびません。これを機能させると考えることができる唯一の方法は、次のように UserRepository を実装することです。

これは、依存性注入を使用して装飾されたリポジトリを作成し、それを UserRepository のコンストラクターに渡し、それを操作を実行するリポジトリとして使用することを意味します。これは機能しますが、まだ理想的ではないと思います。

したがって、私の質問は、これがこれを行う唯一の方法であるという点で正しいのでしょうか、それともこれを正しく理解していないのか、単に何かを見逃しているだけなのかということです。また、以前にこの問題に遭遇したことがある場合、この問題をどのように解決しましたか?

0 投票する
2 に答える
380 参照

dependency-injection - 構造マップの構成

次のクラスを検討してください

そしてコンテナ構成

ただし.WithCtorArg、プリミティブに対してのみ機能するため、上記の初期化は機能しません。

非プリミティブパラメータでコンストラクタを構成する方法はありますか?

0 投票する
3 に答える
2606 参照

asp.net - HTTPModule を注入する依存関係

Google/MyBrain が失敗しています。フレームワークを使用せずに (私は同僚を追い越すことはありません)、あなた (プログラマー) がインスタンスの作成を制御できない場合、HTTPModule に依存関係をどのように注入しますか?

カスタムの web.config セクション + リフレクションをハックするつもりですか、それとも私が見ていないよりクリーンなものがありますか?

たとえば、Karl Seguin のサンプルモジュールをベースとして使用し、ILogger の実装を想定しています。.Net 2.0 fwiw

このようなことで、私がどれだけ MSDN を軽蔑しているかを思い知らされます。

0 投票する
2 に答える
561 参照

iis - おそらくUnityを使用して、HTTPモジュールを動的にロードしますか?

IIS の HTTP モジュールを動的にロードする方法について、ハウツー、ドキュメント、またはその他を見た人はいますか?

基本的に私がやろうとしているのは、HTTP モジュールをロードすることです。これを HTTPModuleA、HTTPModuleB、および HTTPModuleC と呼びます。ただし、モジュールは、HTTPModuleD、HTTPModuleE、または HTTPModuleF を使用していつでも変更できます。私は基本的にそれらを構成ファイルに入れたいと思っていますが、参照などはしたくありません。それらを特定のパス(つまり、アセンブリのdll)にドロップし、ファイル/パスの構成ファイルエントリを設定し、Unityまたは他のフレームワークでそれらをピックアップして、それらをロードします。おそらく2〜3分ごとに変更をスキャンしています。

これを行う方法についてのアイデアは大歓迎です。どうも!

0 投票する
4 に答える
1827 参照

.net - Compact Framework をサポートする IoC/DI コンテナ

.NET Compact Framework で動作する IoC コントローラーはありますか?

0 投票する
2 に答える
1733 参照

c# - レガシー コードへの IC コンテナの導入

依存関係の挿入を通じて IoC を使用する、社内で使用する新しい .NET ライブラリを作成しています。当然、IoC コンテナーを使用してインスタンスを解決すると、このライブラリーははるかに使いやすくなります。

ただし、このライブラリを呼び出すコードは現在、依存性注入を一切使用しておらず、DI を使用するようにレガシー コードをリファクタリングすることは、私のプロジェクトの範囲外です。では、このレガシー コードでコンテナを使用して新しいライブラリからインスタンスを取得するにはどうすればよいでしょうか?

可能であれば、選択した IoC コンテナーへのハード参照を使用して、前述のレガシー コードを散らかさないようにしたいと思います。私は DI に比較的慣れていないので、ある時点でどのコンテナを使用したいか考えが変わる可能性があります。

CodePlex のCommonServiceLocatorライブラリのようなものでコンテナをラップする場合、それは合理的なアプローチでしょうか?

他の人々は何をしましたか?

0 投票する
6 に答える
1344 参照

.net - 構成よりも規約を優先する .NET IoC はありますか?

簡単に言えば、IoC/DI コンテナを使用する必要がある場合、デプロイが簡単で (すべてに config/xml ファイルを使用するのはあまり好きではありません)、安定しており、適切なドキュメントがあり、.net をサポートしています。

それは私だけかもしれませんが、アプリ用に 1 つ、ORM 用にいくつか、別のコンポーネント用にいくつかのような xml ファイルが多すぎると、圧倒されることがあります。また、私の見方では、物事を行う方法 (慣例) が 1 つあれば、物事が台無しになる可能性は低くなります。

あなたの提案と、可能であれば経験を楽しみにしています。私の主な関心事は、保守性と展開の容易さです。

0 投票する
4 に答える
615 参照

java - Guiceを使用した依存性注入を使用した閲覧可能なソースを使用したプロジェクト?

依存性注入についてよく読んで、グーグルで調べて、理論的には何ができるのか、どのように機能するのかを理解していますが、それを使った実際のコードベースを見たいです(Java / guiceが望ましいです)。

誰かが私にオープンソースプロジェクトを教えてもらえますか?そこで私はそれが実際にどのように使用されているかを見ることができますか?コードを参照してセットアップ全体を見ると、Webで見つけた紹介記事の通常のスニペット以上のものが表示されると思います。前もって感謝します!

0 投票する
1 に答える
1549 参照

java - Felix/OSGi: OSGi サービスではない SCR コンポーネントを使用するには?

Apache Felix の SCR を使用すると、インスタンス化され、依存関係に接続され、OSGi サービスとして登録されるコンポーネントを (注釈または XML を介して) 宣言できます。

サービス登録の部分をスキップして、SCR にコンポーネントを作成させることもできます ( @scr.component を指定し、 @ scr.serviceを省略します)。これは (バンドル内の) 依存性注入だけに役立つかもしれないと考えていましたが、コンポーネントをどのように消費するのでしょうか? サービスはscr.referenceを使用して注入できますが、これは非サービスでは機能しません (または機能します)?

SCR API に直接アクセスすることはできますが、コンテナー サービスと直接対話することは、DI の目的を無効にします。