問題タブ [dependencies]
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.
c# - テスト以外でモックオブジェクトを使用するのは悪い習慣ですか?
私は、外部サービスのメッセージングが多いプロジェクトに取り組んでいます。少しだけ「双曲線」の方法で説明すると、システムが Flicker API、Facebook API、および Netflix API にメッセージを送信する必要があるアプリケーションになります。
切断されたシナリオ、ログの懸念事項、開発者の使いやすさ、構成などをサポートするために、ジェネリックと式ツリーを多用するアプローチを使用して実験しました。最終結果は次のようになります。
全体として、最終結果には満足していますが、テストと接続されていないシナリオに関して、どこかで間違いを犯したか、設計原則を見落としているように感じます。
テスト中に、自動、ユニット、または人間ベースのいずれであっても、最初は DI を使用して「ライブ モード」で正しいアクションを実行するオブジェクト ファクトリを実装し、モックを使用して、何もしない無菌メッセンジャーのようなものを提供しました。テストモードの場合はすべて。
モックが純粋な TDD モードで使用されており、一種のダムオブジェクトとして使用されていないことについて、私は見たり読んだりしただけです。私が見たアプローチは、私が使用しているすべての API が依存している HTTP 通信機能をスタブ化またはモックアウトすることを中心に展開していました。
私の主な懸念は、私が接続すると予想されるすべての異なるサービスが、特定の HTTP 実装を置き換える多くの詳細な作業を行う必要があり、スタブアプローチを使用した場合、これらのサービスごとに 3 つのクラスがあることです。 ( IService、ConcreteService、StubService ) であり、新しいメソッドを実装したり何かを変更したりするときにそれらを維持することは、実際の PITA になります。
現在の実装では、モックを使用して「無菌モード」を無料で取得していますが、特定のテスト プリンシパルに準拠するためだけに余分なものを実装する必要はほとんどありません。
問題は、私が何か不足しているのでしょうか? より便利な方法でモックを使用して、設計原則に違反しましたか?
多くのフープを飛び越えることなく、多くの異なる外部サービスから無菌モードを取得する方法について、誰かアドバイスを提供できますか?
この質問は理にかなっていますか?
すべての答えをありがとう。
編集#1:
元の質問では明確ではありませんでした。null またはモック オブジェクトは、開発/デバッグ/テスト環境でのみ使用されます。本番環境では、これらのメッセージを送信するコードが実際の実装になります。
この問題にはさまざまな解決策があるようで、それぞれを調査する予定なので、全員に投票しました。
この質問はまだ回答されていないと考えてください。できるだけ多くのアドバイスをいただければ幸いです。
.net - インターネットから依存関係アセンブリを読み込むことは良い習慣ですか?
.net Windows クライアント アプリケーションをデプロイするには、いくつかの方法があることを知っています。
Windows Installer、Click Once、簡単なダウンロードと実行、および Internet Explorer での Windows フォーム / WCF アプリケーションのロードがあります (後者を WCF/E - Silverlight RIA アプリケーションと混同しないでください) 。
それで...本当のWindowsクライアントアプリケーションについて考えてみてください-本当に明確にするために:ファイルシステム内の.exeで構成されるもの--インターネットからその依存関係の一部またはすべてをロードすることは良い考えですか?
明らかにいくつかの重大な欠点があります:ロード時間は言うまでもなく、常に接続されている必要があり、クライアントのCAS構成 (インターネットの依存関係はInternet_Zone コード グループにあります)。
しかし、いくつかの利点も考えられます。
問題は何ですか?誰かが実際のプロジェクトでこれを使用しましたか?
.net - 出力ディレクトリにコピーされない参照の依存関係
私はCommonUtils libを持っており、いくつかのプロジェクトからファイル参照するdllに組み込みました。CommonUtils は、ファイル参照として設定された log4net.dll と、CommonUtils.dll のビルド時に copy-local=true に依存します。log4net.dll と CommonUtils.dll は GAC にありません。
CommonUtils.dll へのファイル参照しかない MyWorkingProject ですべて正常に動作します。log4net.dll が出力ディレクトリに表示されます (CommonUtils.dll の依存関係ですが、MyWorkingProject からは参照されないため)。ただし、新しいプロジェクトを作成していくつかのユニットテストを追加する場合: MyWorkingProjectTest とプロジェクトが MyWorkingProject を参照し、ここで CommonUtils.dll をファイル参照し (CommonUtils の一部を使用したい)、両方のプロジェクトで依存関係にある log4net.dll をビルドすると、参照とファイル参照も出力ディレクトリにコピーされません。
ここで何が起こっているのか誰でも明確にできますか? コンパイラは、取得する必要がある log4net.dll ファイルを認識していませんか? ここで私が間違っていることはありますか?log4net.dll を明示的にコピーするには、他の方法でこれを行う必要がありますか? log4netを明示的に参照しなければならないというのは意味がありますか?
maven-2 - Maven : OSGI、バンドル、およびマルチモジュール プロジェクト
私は現在、OSGi + Equinox で見つけた Web チュートリアルを Mavenize しようとして、OSGi ベースのアプリケーション (Equinox を使用) を開発しています。このプロジェクトでは、他のバンドルに依存するバンドルがあります (見積もりサービスは見積もりに依存します)。コンパイル フェーズは成功しますが、パッケージ フェーズは成功しません。Mavenは次のように不平を言います:
私は問題を理解していますが、それを機能させる方法がわかりません。これは引用のポンです:
および見積もりのバンドル マニフェスト:
次に、quote-service の pom :
最後に、quote-service のマニフェスト:
何か問題がありますか?前もって感謝します !
unit-testing - ユニット/統合テストにおけるファイルシステムの依存関係のベストプラクティス
たくさんのコードのテストを書き始めたところです。ファイルシステムに依存するクラスがたくさんあります。つまり、CSVファイルの読み取り、構成ファイルの読み取り/書き込みなどです。
現在、テストファイルはプロジェクトのテストディレクトリ(Maven2プロジェクト)に保存されていますが、いくつかの理由でこのディレクトリが常に存在するとは限らないため、テストは失敗します。
ユニット/統合テストでファイルシステムの依存関係に対処するためのベストプラクティスを知っていますか?
編集:私は上で説明したその特定の問題の答えを探していません。それはほんの一例です。ファイルシステム/データベースなどへの依存関係を処理する方法についての一般的な推奨事項をお勧めします。
sharepoint - SharePoint Web パーツ管理
多層アプリケーションとして設計された、Sharepoint と Project Server で開発されたかなり大規模なプロジェクトがあります。特定の Web パーツ ページの Web パーツをプログラムで管理しています。いずれかの Web ページでのユーザーの選択に従って、適切な Web パーツが別の Web パーツ ページの Web パーツ コレクションに追加されます。私の問題は、Web パーツを管理する場所がわからないことです。BLL で管理し、ビジネス ロジックを含むアセンブリで Web パーツがある UI アセンブリを参照する必要がありますか? (Web パーツ dwp を表すハードコードされた文字列を使用したくないため、Web パーツをコレクションに追加するときにインスタンス化する必要があります。)
maven-2 - maven-camel ビルドの問題
私は、開発にnetbeansを使用し、その他を構築するためにmavenを使用する単純なアプリケーションを持っています。私のアプリケーションは camel を使用し、Spring XML が構成されています。依存関係のある実行可能なjarを構築したかったので、「jar-with-deps」記述子でmaven-assemblyプラグインを使用しています。jar は正常にビルドされていますが、すべての依存関係がアンラップされ、これらの一部は他のリソースと同じパスに同じリソースを持っているため、互いに上書きしていると思います。winrar で jar を参照してこれを確認したところ、多くの場所で同じファイルが複数出現することがわかりました。別の依存関係でも使用される特定のパスでリソースを必要とする依存関係を停止できないため、これはいくつかの単純な Maven 構成では解決できないと考えています。ところで、アプリは netbeans 内で問題なく動作します。また、アプリケーション クラスが複数出現することもわかりました。
全体として、次のことを知りたい:
そのような競合を見つけて、少なくともそれらを修正しない場合は報告する簡単な解決策はありますか? (そしてどうやって)
depsをアンラップせずに親jarにjarを含めてから、マニフェストクラスパスにjarを含めるように(mavenで)アーカイバに指示できますか? これで問題は解決しますか、それとも同じ結果になりますか?
同じパスにアプリケーション クラスが複数出現するのはなぜですか?
問題の全体像を示すために、現在の結果の jar を WinRAR で表示すると、ルート パスに「log4j.properties」の 3 つのインスタンスがあり、meta-inf/ パスにファイル「spring.schemas」の 7 つのインスタンスがあります。いくつか。
c - C でシンボルの起源を特定するツール
私は、C が少しあれば、特定のヘッダー ファイルからどのシンボル (型、プリコンパイラ定義、関数など) が使用されているかを教えてくれるツールを探しています。私は、Solaris から Windows への大きなドライバーの移植を行っていますが、どこから来たのかを理解するのが難しくなってきているので、これは大きな助けになるでしょう。何か案は?
編集: 絶対的な要件ではありませんが、Windows で動作するツールはプラスになります。
編集#2:私がやろうとしていることを明確にするために、移植しようとしているコードベースがあり、多数のヘッダーが含まれています。私が欲しいのは、foo.c が与えられたときに、bar.h からどのシンボルを使用しているかを教えてくれるツールです。
c# - Maven for .NET / Windowsフォームプロジェクトに代わるものはありますか?
C#WindowsフォームプロジェクトでMavenの代わりに使用されるものは何ですか?
私たちは世界中に開発者を抱えており、クリーンでシンプルかつ高速な依存関係管理システムを考え出そうとしています。
sql - EntLibキャッシングブロックを使用したSQLキャッシュの依存関係
エンタープライズライブラリアプリケーションブロックを使用してSQLキャッシュの依存関係を実装する方法は?