タグ

DIに関するyajamonのブックマーク (3)

  • RustのDI | κeenのHappy Hacκing Blog

    κeenです。Rustその2 Advent Calendar 2017が空いてたので小ネタをば。1日目の記事です。 Dependency Injectionの話。 例えば3層アーキテクチャで組む時には以下のような依存関係が発生します。 [user interface(web)] | V [logic(service)] | V [database access(dao)] これを他の実装に依存せずにそれぞれの層を書きたい、どうしようという問題設定です。 ナイーブな実装 簡単に考えたらRustならトレイトで抽象化してあげればよさそうです。 コードにするなら共通インターフェイスにトレイトを定義してあげて pub trait UserDao { fn find_user(&self, id: i32) -> Result<Option<User>>; }

    RustのDI | κeenのHappy Hacκing Blog
  • Rust で DI する時の小技 · ryym.log

    最近 Rust に触るのがすごく楽しいです。 で、書いているうちに Rust ではどんな風に DI するのが良いか気になったので、 試したり調べたりした事を簡単にまとめておきます。 Rust の DI に関しては次の記事がとても参考になりました。 https://keens.github.io/blog/2017/12/01/rustnodi/ なお、以降では DI の対象となるコンポーネントをざっくり「サービス」と呼んでいます。 概要 Rust で DI するには。 struct ベースで DI する方法 trait ベースで DI する方法 trait ベースだと他の trait への依存関係があるとモックしづらい。どうするか? struct ベースの DI サービスのインターフェイスを trait で定義し、 実装は struct で行う。 struct はフィールドに依存関係を持ち

  • DIについてあれこれ - tototoshi の日記

    Dependency Injectionとはコンポーネント間の依存関係をプログラムのソースコードから排除し、外部の設定ファイルなどで注入できるようにするソフトウェアパターンである ってwikipedia先生が言ってました。 Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita を読んでいろいろ考えたので、なんで今さらって感じのことを書きます。 ScalaでDIというとDIコンテナとかCake PatternとかReader Monadとかって話になっちゃうんですが、これらはいかにかっこよくDIするかの話であって、別にこういった道具やパターンを使わなくてもDIは可能という話です。 Constructor Injection 簡単な例で考えます。今ここにUserRepositoryにべったり依存し

    DIについてあれこれ - tototoshi の日記
  • 1