問題タブ [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.
c# - DCI:依存性注入を使用してコンテキストを実装する方法は?
DCIコンテキストのほとんどの例は、コマンドパターンとして実装されています。ただし、依存性注入を使用する場合は、コンストラクターに依存性を注入し、パラメーターを実行メソッドに送信すると便利です。コマンドパターンクラスを比較します。
依存関係が注入されたクラスの場合:
最後のものは少し良いように見えますが、私はそれがこのように実装されているのを見たことがないので、考慮すべきことがあるかどうか興味があります。
dci - DCI コンテキストの責任?
methodful ロールには実際のアルゴリズムが含まれていますが、Contexts 実行メソッドはこれらのメソッドの 1 つを実行する以外に何をすべきでしょうか?
非常に単純に思えるので、たとえばデータベース ルックアップを Context が担当する必要があると考えています。それは几帳面な役割を単純化するのではないでしょうか?
architecture - 複雑なユースケースを推進するためのアーキテクチャ
私は、何人かの開発者によって実装されるソフトウェアを設計しようとしています。
このソフトウェアには、UIからのいくつかの手順とコマンドを含む多くの複雑なユースケースがあります。UIとBussinessロジックから明確に分離したいので、各ユースケースのさまざまな状態をUIによって駆動/制御するのではなく、下位層で実行して、UIを本質的に「ダム」にする必要があります。
これを解決するために、DCIパターンとStateパターンの混合を検討しました。
同様のアプリケーションでの経験を知り、可能であればアドバイスを受け取りたいと思います。
ありがとうございました!
dci - DCIコンテキストでバインドされていない役割を持っていても大丈夫ですか?
私はCreditCardPaymentコンテキストに取り組んでいますが、一部のコンテキストメソッドにすべてのロールが必要なわけではないというこの可能性を発見しました。たとえば、メソッドにCreateSecurityHash
はすべての役割が必要な場合がありますが、VerifyHash
必要なのは1つだけです。すべての役割をバインドしなくても大丈夫ですか?もしそうなら、複数のコンストラクターを導入し、次のように必要なものだけをバインドするのはどうですか?
これを行うときにどのコンテキストメソッドを呼び出すことができるかを知ることは難しいと感じます。だから私は知りたいです:
- これはまだ大丈夫ですか(もしそうなら、なぜですか?)、または
- シナリオ全体は、別のコンテキストが必要であることを示していますか、それとも
- コンテキストを維持し、役割に必要なすべてのオブジェクトを常に提供する必要がありますか?
ruby - CarrierWave をロードするための ruby 固有クラスの拡張
更新:質問を簡略化しました。私の編集リビジョンをチェックアウトすることで、完全な履歴を見ることができます。私をここまで導いてくれたiainとbernarkに感謝します。
モデルのインスタンスに 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_uploader
inHasAnAvatar
が の固有クラスで適切に呼び出されていないため、user
ハッシュが入力されていないことにあると思われます。uploaders
これを機能させる方法について何か考えはありますか?
この問題の Rails アプリの例を次に示します: https://github.com/neezer/extend_with_avatar_example
ruby-on-rails - Rails 4 で懸念事項を使用する方法
デフォルトの Rails 4 プロジェクト ジェネレーターは、コントローラーとモデルの下に "concerns" ディレクトリを作成するようになりました。ルーティングの問題の使用方法についてはいくつかの説明がありましたが、コントローラーやモデルについては何も見つかりませんでした。
コミュニティの現在の「DCI トレンド」と関係があると確信しているので、試してみたいと思います。
問題は、この機能をどのように使用すればよいか、それを機能させるために命名/クラス階層を定義する方法に関する規則はありますか? モデルまたはコントローラーに懸念事項を含めるにはどうすればよいですか?
ruby-on-rails - Ruby の例での DCI の Thread.current は何ですか?
Thread.current
このコードの目的は何ですか? Rails アプリケーションで DCI を使用するこの例を見ています。lib/context.rb には、次のようなものがあります。
app/contexts のさまざまなコンテキストで使用されます。例:
ブロックでコードを実行in_context
し、現在のスレッドでキーと値のペアを設定する利点は何ですか?