タグ

DIに関するyuguiのブックマーク (16)

  • PPAPで学ぶDaggerによるDI - きしだのHatena

    Daggerってありますよね。コンパイル時に依存性を解決するのでパフォーマンス的に有利なDIコンテナです。 https://google.github.io/dagger/ 依存関係の不備がコンパイル時にエラーになって発見できるのも、実行時にエラーが出たときの修正の難易度が高いAndroidアプリにはありがたいということで、Androidでよく使われてるようです。 基的なオブジェクトの定義 I have a pen. public class Pen { @Override public String toString() { return "ペン"; } } I have an apple. public class Apple { @Override public String toString() { return "アッポー"; } } Ohh!!! Apple Pen!!! p

    PPAPで学ぶDaggerによるDI - きしだのHatena
    yugui
    yugui 2017/01/08
  • Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita

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

    Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita
    yugui
    yugui 2015/12/02
  • Re: @Inject Injector is injecting root injector rather than child injector

    I ran into a similar issue, where I was using child injectors to build contained environments with certain classes acting as singletons within those environments, and needing the injector to instantiate classes by name within those environments.My injection of Injector was getting the parent rather than the child. The solution was a bit bizarre... As I understand it, when you inject Injector, the

    yugui
    yugui 2015/07/20
  • Ruby/Rails 用 DI コンテナ Dee をつくった、あるいは Ruby のカルチャーについて | Born Too Late

    あけましておめでとうございます。 大晦日は実家でプログレ聞きながらコード書いてました。 今さらながら Heldon の Stand by とか聞いてたんですが、Tangerine Dream を思わせるミニマルなシンセサイザーの反復と、リシャール・ピナスによるロバート・フリップばりの暴力的なギターソロが絡みあっており、大変良いですね。 作ったもの また説明長くなりそうなので、はじめに作ったものの紹介です。 dee dee-rails この Dee というのが DI コンテナの体です。 名前は Ozzy Osbourne ソロ 1st Blizzard of Ozz におけるランディ・ローズのギター曲からです。 50 秒と短く、メタルアルバムの中にあってクラシック風の静かなギター曲ですが、同時にアルバムから欠かせない存在感を放つ名曲です。 何が言いたいかというと、Dee はコンパクトな実装

    yugui
    yugui 2014/01/01
  • C++ と DI - steps to phantasien t(2007-08-17)

    Java と DI (Dependency Injection) の世界から C++ に戻ってくると気が滅入る. すべてがくっついている. ああ... "Working Effectively With Legacy Code" に従ってバリバリと依存を引き剥がすことになるんだけれど, もうウンザリ. せめて新たに書くコードはレガシー風味とさよならしたい. DI したい. C++ にも少しは DI コンテナの実装がある. Autumn Framework とか. ただリフレクションのない C++ では DI コンテナを使う有難味が薄い. Autumn Framework のチュートリアルを見ると無力感に襲われる. 閉じた型システムの再発明. C++ の限界もあるだろうから, あまり責める気は起きない. COM のような既存のオブジェクトシステムに DI を載せることはできるかもしれない.

    yugui
    yugui 2007/08/17
  • ひがやすを blog - [DI]DIって本当に必要?

    http://www.commonsmedia.jp/cm/JavaAndSolarisCampaign blogでNetBeansやJavaEEについて書いて、トラックバックしたら先着100名にAmazonギフト券3000円分をプレゼントするそうです。id:nowokayさんのためのような企画です。 id:taediumさんもid:da-yoshiさんもぜひどうぞ。ただし、Seasar固有のことはできれば避けてねということです。 DIって当に必要?たまにそう思うときがあります。DIによって開発は当に楽になったのか。 DIのメリットでよく語られることとして、インターフェースと実装を分離し、機能の利用者側はインターフェースを通じて機能を利用することで、実装に直接依存しなくなり、後で実装を変更しても影響を受けなくなるということがあります。 実際後から、実装クラスを変更するということはめった

    ひがやすを blog - [DI]DIって本当に必要?
    yugui
    yugui 2007/04/17
    続きが気になるが。DI Containerのありがたみは、依存性を知ってて、コンポーネントに対する超越的立場から解決してくれることにあると思ってたり。
  • やっぱりDIの良さがわからない | スパムとか

    GoogleGuiceというDIコンテナをリリースし、素早く紹介記事があがったわけだけど、やっぱりDIの良さがわからない。 はてなで貰ったコメントに突っ込んでみる。 Yoshioriさん。「AOPいいよ!!トランザクションとか自分で実装するのメンドイよ!!」 おいら「Djangoでトランザクションスコープをリクエストにしとけばいいんで…」 nekoraさん 「スクリプト言語で間に合う程度の小規模・低負荷・単純な案件ならばスクリプトで済ませるべきであるという話の一例。時に「動的言語」って何だろ」 おいら「「動的型付言語でした」。スクリプト言語で間に合わない程度というと、世界数カ所で同時にコミットするような案件位だよね。みんな凄いのやってるねぇ。とはいいながら、確かにへぼを集めてもある程度きちんと書けるのがJavaとかの良さだというのは分かってるぞ。あれ?DIの話関係無い

    yugui
    yugui 2007/03/16
  • google-guice - Google Code

    Put simply, Guice alleviates the need for factories and the use of new in your Java code. Think of Guice's @Inject as the new new. You will still need to write factories in some cases, but your code will not depend directly on them. Your code will be easier to change, unit test and reuse in other contexts. Guice embraces Java's type safe nature. You might think of Guice as filling in missing featu

    google-guice - Google Code
    yugui
    yugui 2007/03/14
  • 2007-02-07

    デブサミ-VisualBasic, Delphiから10分でJava+Flex2にポーティング http://d.hatena.ne.jp/higayasuo/20070118#1169099987 携帯用のコンテンツを開発するときに、ドコモ、AU、ソフトバンク用にテンプレートは異なるけど、サーバサイドのロジックはいっしょということもあるでしょう。そんなニーズに応えるのが、1ページ複数テンプレート機能です。 例えば、HogePage.javaがあった場合に、hoge_i.html, hoge_a.html, hoge_s.htmlの3つのテンプレートを用意しておきます。HogePage.javaに次のようなdoメソッドがあった場合、次にどのページに遷移するのでしょうか。 public Class doAction() { return Hoge2Page.class; }hoge_i.ht

    2007-02-07
    yugui
    yugui 2007/02/11
  • 2007-01-29

    デブサミ-VisualBasic, Delphiから10分でJava+Flex2にポーティング http://d.hatena.ne.jp/higayasuo/20070118#1169099987 Flex2では、モデルとUIコンポーネントと間の自動バインディングがサポートされています。自動バインディングとは、モデルの値が更新されたら自動的にUIコンポーネントの表示が更新されたり、UIコンポーネントに入力している値が変わったら、自動的にモデルの値を更新する機能です。 デフォルトではバインディングは単方向です。基的には、モデルの変更をUIコンポーネントが検知するだけ。例えば、次のようなMXMLがあったとします。 <?xml version="1.0" encoding="utf-8"?> <![CDATA[ [Bindable] private var hoge:String; ]]>

    2007-01-29
    yugui
    yugui 2007/02/01
    「ドメインモデル貧血症」への反論
  • 規約ベースのフレームワークのほうが覚えることが増える? - ひがやすを技術ブログ

    設定の記述量を減らす→規約ベースになる→覚えないといけないことが増える(ように見える)、という図式ですね。ただ、規約がないF/Wでは設定を記述するための書式を覚えないといけないので実は覚えないといけないことの量は大して違いはないのかもしれませんが、設定はIDEやプラグインなどによって補完可能だけれども規約は補完されにくいため、結局は規約ベースのF/Wの方が覚えないといけないことが多くなるという気はしています。 よく規約を覚えるのが大変と言う意見を見ますが、規約は、規約ベースのフレームワークを使う使わないに関わらず(ほとんどの場合)必要です。一人で開発していれば別ですが、複数の人数で開発している以上、規約を守って開発する必要があると思います。 各プロジェクトごとに、規約を考えて、それをいちいちソースコードや設定ファイルに書くのは、大変なので、あらかじめ妥当だと思われる規約をフレームワーク側で

    規約ベースのフレームワークのほうが覚えることが増える? - ひがやすを技術ブログ
    yugui
    yugui 2007/01/10
    Conventionの訳語 ... 「空気嫁」じゃだめかなぁ。空気。ノリ based framework
  • 【ハウツー】Spring 2.0を早速使う - どのくらい簡単になった? (1) 待望のSpring Framework 2.0リリース (MYCOMジャーナル)

    The Spring Framework Projectは3日(米国時間)、DI(Dependency Injection)を実現するJ2EEアプリケーションフレームワーク「Spring Framework 2.0 (以下Spring 2.0)」を公開した。 Spring 2.0では、設定ファイルをXMLスキーマベースの文法で記述できるようになったことや、AOP(Aspect Oriented Programming)が拡張されてAspectJとの連携がより緊密になったことなどが主な変更点として挙げられている。その他、Java Persistence APIのサポートやスクリプト言語のサポートなど多くの新しい機能が追加された。 稿では、Spring 2.0における変更点の目玉となるXML設定ファイルに焦点を当て、XMLスキーマを用いたBean定義の方法などを紹介する。

  • 今のDIが3年後に叩かれるとしたら - 極北データモデリング

    半年前のエントリにトラックバック。 インタフェースの多用 最近DIばやりしていてインタフェースを多用する事例を良くみますが、どうなんでしょうかね。 1インタフェース=1クラスになっていて、機能追加があったときにわざわざインタフェースと対応するクラス両方 直すようなことになっていたりすることはないのかな。そもそも密なものを疎に扱っているようなケースも多いような。 これ、3年後に絶対アンチパターン扱いになってると思う。 JavaWorld Online に「特集 DIを超えるホニャー」ていう記事が載って、そこで「従来のDIには、以下のような問題があった...」て指摘されると思う。 みんながめんどくさいなあと思っている手法も、代案が出るまでは生き延びる。 Spring が EJB にトドメを刺したときのような、すごい切れ味の代案が出てくるまでは、ツールなり人力なりで地味にシグニチャの同期を取って

    今のDIが3年後に叩かれるとしたら - 極北データモデリング
    yugui
    yugui 2006/10/06
    Dependency Injection Anti-pattern. 暗黙的interfaceなんかバイトコード生成すればいいじゃん。Seasarになかったっけ? ありそうだけど。なかったらあとで書く。
  • Dependency Injection再訪――なぜ仕事で使うとうれしいのか (recompile.net)

    Rubyの入門記事である「Part1 なぜ仕事で使うとうれしいのか」を読んでブロック構文すげー!Javaなんてう(ryって感動したあとに、おもむろに // Base.java package sample; import java.sql.Connection; import java.sql.SQLException; public class Base { public static void transaction(Block block) { Connection conn = null; try { block.execute(conn); } catch (SQLException e) { try { conn.rollback(); } catch (SQLException inner) { } } finally { if (conn != null) { try {

  • DI(依存性注入)を白紙から説明してみる - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「DI(依存性注入)からどこへ行こうか その1」において: DI(依存性注入)については、雑誌や書籍で随分紹介されているので、そういうのを見てください。 こんなこと[注:DI化]して何がうれしいかって? それは、ファウラー先生とかその他エライ人とかエラクない人とかに聞いてください。 と書きましたが、DI(Dependency Injection; 依存性注入)そのものについても説明を試みてみましょう。具体的なサンプルを使うことにします。そのため、サンプルの説明が長くなってしまうのが困ったことですが、まー、単なる能書きよりはサンプルがあったほうがいいでしょ。 内容: サンプルはテンプレート処理系 レクサー(字句処理系) レクサーをインターフェース経由で使う サービス・ロケーター 依存性が消えてない! DI(依存性注入)登場 DIが、かつてIoC(制御の逆転)と呼ばれていた理由 ●サンプルはテ

    DI(依存性注入)を白紙から説明してみる - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • DI(依存性注入)からどこへ行こうか その1 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    このエントリーは、ウチの工作員ショー君への業務連絡とか、新たな工作員勧誘とかの目的もあるのですけど、ふつうにソフトウェア関連ネタとして読めます。ソフトウェアのコンポネント化とコンポネント群の複合方式の話題です。 随分と長いので、2回(か3回)に分けてポストします。 ※印刷のときはサイドバーが消えます。 内容: DI(依存性注入) ポートベース・コンポネント 再びDI:フィールド・インジェクション ポート(あるいは男と女)を繋ぐワイヤー(あるいは赤い糸) 要求ポートと提供ポート これがポートベースHelloWorld それから その2 関連: ポートベース・コンポネント:ケーススタディ ポートベース・コンポネント:補足 DI(依存性注入)を白紙から説明してみる DI(依存性注入) DI(依存性注入)については、雑誌や書籍で随分紹介されているので、そういうのを見てください。Web上の解説記事「

    DI(依存性注入)からどこへ行こうか その1 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yugui
    yugui 2006/09/14
  • 1