問題タブ [dci]

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 投票する
1 に答える
1651 参照

c# - DCI:依存性注入を使用してコンテキストを実装する方法は?

DCIコンテキストのほとんどの例は、コマンドパターンとして実装されています。ただし、依存性注入を使用する場合は、コンストラクターに依存性を注入し、パラメーターを実行メソッドに送信すると便利です。コマンドパターンクラスを比較します。

依存関係が注入されたクラスの場合:

最後のものは少し良いように見えますが、私はそれがこのように実装されているのを見たことがないので、考慮すべきことがあるかどうか興味があります。

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

dci - DCI コンテキストの責任?

methodful ロールには実際のアルゴリズムが含まれていますが、Contexts 実行メソッドはこれらのメソッドの 1 つを実行する以外に何をすべきでしょうか?

非常に単純に思えるので、たとえばデータベース ルックアップを Context が担当する必要があると考えています。それは几帳面な役割を単純化するのではないでしょうか?

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

architecture - 複雑なユースケースを推進するためのアーキテクチャ

私は、何人かの開発者によって実装されるソフトウェアを設計しようとしています。

このソフトウェアには、UIからのいくつかの手順とコマンドを含む多くの複雑なユースケースがあります。UIとBussinessロジックから明確に分離したいので、各ユースケースのさまざまな状態をUIによって駆動/制御するのではなく、下位層で実行して、UIを本質的に「ダム」にする必要があります。

これを解決するために、DCIパターンとStateパターンの混合を検討しました。

同様のアプリケーションでの経験を知り、可能であればアドバイスを受け取りたいと思います。

ありがとうございました!

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

dci - DCIコンテキストでバインドされていない役割を持っていても大丈夫ですか?

私はCreditCardPaymentコンテキストに取り組んでいますが、一部のコンテキストメソッドにすべてのロールが必要なわけではないというこの可能性を発見しました。たとえば、メソッドにCreateSecurityHashはすべての役割が必要な場合がありますが、VerifyHash必要なのは1つだけです。すべての役割をバインドしなくても大丈夫ですか?もしそうなら、複数のコンストラクターを導入し、次のように必要なものだけをバインドするのはどうですか?

これを行うときにどのコンテキストメソッドを呼び出すことができるかを知ることは難しいと感じます。だから私は知りたいです:

  • これはまだ大丈夫ですか(もしそうなら、なぜですか?)、または
  • シナリオ全体は、別のコンテキストが必要であることを示していますか、それとも
  • コンテキストを維持し、役割に必要なすべてのオブジェクトを常に提供する必要がありますか?
0 投票する
5 に答える
581 参照

ruby - CarrierWave をロードするための ruby​​ 固有クラスの拡張

更新:質問を簡略化しました。私の編集リビジョンをチェックアウトすることで、完全な履歴を見ることができます。私をここまで導いてくれたiainbernarkに感謝します。


モデルのインスタンスに Carrierwave 機能をロードしたいと考えていますUser < ActiveRecord::Base

実行中:

結果:

NoMethodError: 未定義のメソッドnew' for nil:NilClass from /Users/evan/.rbenv/versions/1.9.3-p286/lib/ruby/gems/1.9.1/gems/carrierwave-0.6.2/lib/carrierwave/mount.rb:306:in アップローダ'

問題は、mount_uploaderinHasAnAvatarが の固有クラスで適切に呼び出されていないためuserハッシュが入力されていないことにあると思われます。uploaders

これを機能させる方法について何か考えはありますか?


この問題の Rails アプリの例を次に示します: https://github.com/neezer/extend_with_avatar_example

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

ruby-on-rails - Rails 4 で懸念事項を使用する方法

デフォルトの Rails 4 プロジェクト ジェネレーターは、コントローラーとモデルの下に "concerns" ディレクトリを作成するようになりました。ルーティングの問題の使用方法についてはいくつかの説明がありましたが、コントローラーやモデルについては何も見つかりませんでした。

コミュニティの現在の「DCI トレンド」と関係があると確信しているので、試してみたいと思います。

問題は、この機能をどのように使用すればよいか、それを機能させるために命名/クラス階層を定義する方法に関する規則はありますか? モデルまたはコントローラーに懸念事項を含めるにはどうすればよいですか?

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

ruby-on-rails - Ruby の例での DCI の Thread.current は何ですか?

Thread.currentこのコードの目的は何ですか? Rails アプリケーションで DCI を使用するこの例を見ています。lib/context.rb には、次のようなものがあります。

app/contexts のさまざまなコンテキストで使用されます。例:

ブロックでコードを実行in_contextし、現在のスレッドでキーと値のペアを設定する利点は何ですか?