タグ

diに関するkrrrrのブックマーク (5)

  • Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita

    DIを使わない状態ではUserRepositoryというインターフェースが定義されているのにもかかわらず、UserServiceはUserRepositoryImplの参照も持っていました。 これではせっかくインターフェースを分離した意味がありません。 UserServiceがUserRepositoryインターフェースだけを参照(依存)するようにすれば、具体的な実装であるUserRepositoryImplの変更に影響されることはありません。 この問題を解決するのがDIの目的です。 それではDIのインジェクタを加えて、上記のクラス図を修正しましょう。 謎のインジェクタの登場によりUserServiceからUserRepositoryImplへの参照がなくなりました。 おそらくインジェクタは何らかの手段でサービスであるUserRepositoryImpl(Dependency)をクライアン

    Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita
    krrrr
    krrrr 2015/12/02
  • [Scala]implicit parameterを使ったDI - Qiita

    ScalaでDIを行う方法はいろいろありますが、最近お気に入りのDIのやりかたの紹介です。 implicit defと、implicit parameterを組み合わせて必要なコンポーネントの受け渡しをコンパイラーに任せてしまいます。 利点 Scalaの標準機能のみで簡単に実装できてライブラリ不要 全てコードで記述できるので、XML地獄や新しいDSLを覚える必要がない 使いたいコンポーネントをコンストラクタに追加するだけで使えて楽 欠点 コンストラクターDIしか出来ない 手順 インジェクションしたいコンポーネントをimplicit defで列挙したクラス(トレイト)を作る コンポーネントを使うクラスで、使いたいコンポーネントをimplicit parameterで定義 コンポーネントを使うクラスを生成する際にコンポーネントを列挙したクラスのフィールドをimportする のが、実装の大まかな

    [Scala]implicit parameterを使ったDI - Qiita
    krrrr
    krrrr 2015/07/16
  • static問題とDIコンテナ - kanizaのブログ

    しばらく前に、GoogleのDIコンテナであるGoogle Guiceを紹介するプレゼンテーションがGoogle Videoで公開された。 はじまって3分ほどのところに、「A Problem」として、Javaでstaticを使うことに対する次のような指摘がある。 Using static references comes with big problems! Tight coupling: depending on implementation, not interface Not polymorphic! Not OO! It's extremely global (no scoping) Leads to "all-or-nothing" testing And it's viral! It gives you "static cling!" そうなんだよねぇー。特に最後がデカい。st

    static問題とDIコンテナ - kanizaのブログ
    krrrr
    krrrr 2015/06/07
  • 心地良すぎるDependency Injectionライブラリ Guice - nodchipの日記

    etc9さんの"心地良すぎるモックライブラリ Mockito"がとても勉強になったので、似たような形式でGuiceの紹介をしてみます。 Dependency Injection きちんと勉強したわけではないので間違っていたらごめんなさい。Dependency Injection (DI)はユニットテストを書きやすくするためのクラスの書き方の一つです。クラスAが内部でクラスBを使うとき、Aの中でBをnewする代わりに、AのコンストラクタやsetterでBのインスタンスを外部から渡せるしておきます。こうしておくとAのユニットテストを書くとき、Bの動作を真似るモックオブジェクトを渡すことで、Bの中身を考えずにAをのテストを書けるようになります。これはAとBの動作を同時に考えてテストを書くよりずっと楽だと思います。依存性注入とかレポジトリパターンとも呼ばれているっぽいです。 GuiceはDIの補助

    心地良すぎるDependency Injectionライブラリ Guice - nodchipの日記
    krrrr
    krrrr 2015/04/10
  • Originate

    Agile Innovation Built for Your Business For the past 15 years the world's most admired companies have looked to Originate to help them innovate with the latest technologies What We Do We’re a US-based agile innovation firm that works with clients to develop their digital product strategies and roadmaps, accelerate development with advanced technologies and best-in-class integrations; we deliver p

    krrrr
    krrrr 2015/01/26
  • 1