タグ

diに関するhiro360のブックマーク (70)

  • 作って理解するDIコンテナ - きしだのHatena

    DIコンテナ使ってるけど、アノテーションってなんなの!って聞かれて、作ってみたらわかるよと答えてみたので、自分でも作ってみました。 よくわかった。 「DIコンテナ使うと何がいいの?」ということも、作ってみるとわかります。あと「DIって何がいいの?」に関しては、「DIはちょっとコードを書くのが楽になるだけで、それだけあっても仕方ない、大事なのはコンテナ」と答えるようにしてますが、コード比率からもそれがよくわかります。 続編としてWebフレームワークも作っているので参考まで。 作って理解するWebフレームワーク - きしだのHatena まずはコンテナを作る とりあえず1ソースの状態で。 こんな感じで、管理する型を登録できるようにします。 static Map<String, Class> types = new HashMap<>(); static void register(String

    作って理解するDIコンテナ - きしだのHatena
  • DIコンテナの必要性 - ひがやすを技術ブログ

    DI コンテナの起動が遅いなら、起動が速いのを作ればいいじゃない 何度か書いているとおり、DIはテストをしやすくすることが一番のメリットであり、オンプレミスの世界では、今でもある程度有効です。ただ、appengineの世界では、テストする環境が整えられているので、DIを使う必要はないということです。 http://d.hatena.ne.jp/higayasuo/20091115/1258245284 DIを使ったことがある人はわかると思うけど、DIには、ある程度のめんどくささがあります。appengineの世界では、DIがなくてもテストが簡単にかけるので、わざわざめんどくさいことをする必要はないでしょう。 appengineの世界でテストがどれくらい書きやすいのかは、次のustをみればわかります。 http://www.ustream.tv/recorded/6377235 技術的には、

    DIコンテナの必要性 - ひがやすを技術ブログ
  • DIを意識させたらキャズムは超えられない - ひがやすを技術ブログ

    Java でも比較的先進的な考えを持つフレームワークがたくさんあります。そして、先進的なフレームワークは作者でさえ、流行っている、たくさん利用されていると錯覚する場合があります。利用者となるプロジェクトには大抵、新しいことが好きな先進的な人がいて、アーキテクチャを決めてしまいます。そういう人はよくネットなどで情報を発信します。また先進的であれば、記事や書籍でこぞって取り上げられ(もちろん中の人の努力もあります)、流行ってるように見えてしまいます。実際には出来れば新しいことには手をつけたくない人のほうが圧倒的に多いにも関わらず。 どこかの掲示板で、DIは疎結合のためにあるとか、そのためにインターフェースと実装を分離するんだとか、再コンパイルせずに、設定ファイルの変更のみで実装を変更できるんだとか、書いている人を見て、懐かしく思いました。 こんないいもの(たとえばDI)を理解できないのは、理解

    DIを意識させたらキャズムは超えられない - ひがやすを技術ブログ
  • 2008-06-23

    さん(id:iad_otomamay)さんコメントありがとうございます^^ 続きの意見をつらつら書きます。 続きを読む さすが高井さんwwwwww 笑った。 これ流行りそうだなあ。 http://recompile.net/2008/06/jruby-3.html 実はEnterpriseの真実の姿はやっぱりまだまだCOBOLじゃないかと思ったりする。 世界のトランザクション処理の7割がCOBOL当かどうか確かめる術はないけど。 続きを読む blogネタをblogで記録しておこ。どうやら熱にうなされて何かが一瞬おりてきたようで。 続きを読む 色々反響いただいてますm(_ _)m 続きを読む ちょっと見出しとかコメントの部分がもしかして見ていただいてる方がわかりにくいかなあと 思ったので、blogモードに変更してみました。 お、これはいい。 http://coliss.com/art

    2008-06-23
  • DIとSeasar2の話 - 都元ダイスケ IT-PRESS

    を色々書きました。わかりやすいと反響を頂き、喜んでいますw ポリモーフィズムの例をもうちっと実用的に書いてみた。 - 都元ダイスケ IT-PRESS DIのお話を書いてみる。 - 都元ダイスケ IT-PRESS http://d.hatena.ne.jp/daisuke-m/20080511/1210485490 さらにSeasar2を味わいまくってみる。 - 都元ダイスケ IT-PRESS 個人的には「Springや他のコンテナで書いたらどうなるのか?」って結構興味があったりします。その昔、を読んでみて、その感覚で「あ、おれはSeasar2が好き」と感じたまま、S2一辺倒で来てしまったもんでw 正直「Springの思想・良いところ」というのが把握しきれていないんだな、ぶっちゃけ(汗 見ての通り、自分は完全にS2寄りなんですが、あらためてSpringの考え方も見てみたいな、と思うのですが

    DIとSeasar2の話 - 都元ダイスケ IT-PRESS
  • Apache Composer (arclamp.jp アークランプ)

    なんか、面白そうなプロジェクトが始まりそうです。昨日付けでApache ComposerというプロジェクトがApacheに提案されました(提案なので、この後、Incubatorを通ってから正式プロジェクトなので先は長い)。 Apache Composer is an embeddable Inversion of Control (IoC) container for general components (Java initially). Its characterizing elements are that it is small, favors Dependency Injection (over other IoC variants) and tries to remain agnostic when it comes to the need for its components

  • Springは「2.0」でどんだけ便利になったの?

    前回の記事ではSpring IDE 2.0のインストールを行いました。 今回はSpring 2.0の新機能を紹介します。特に、XMLSchema(XSD)に対応した構成ファイルの記述方法を詳しく紹介していきます。

    Springは「2.0」でどんだけ便利になったの?
  • 第6回 DIフレームワークGuiceで,さらばXML!:ITpro

    株式会社DTS ネットワーク事業部所属。Struts/Springベースのフレームワークの研究開発を中心に業務を行っている。また,フレームワークの利用や開発プロセスに関する講師も行っている。 株式会社DTS ネットワーク事業プロジェクトマネージャ。Javaを中心にフレームワーク開発や開発プロセス定義など幅広く活躍中。StrutsIDEコミッタ。著書「まるごとEclipse! Vol.1」(発行:インプレスコミュニケーションズ)。 今回は,米GoogleJavaで開発したDI(Dependency Injection)フレームワーク「Guice(ジュース)」を取り上げます。単体で使用することはもちろん,Webアプリケーションに組み込む方法や,Spring FrameworkやDWRとの連携も解説します。 XML定義ってうれしいですか? Springをはじめとするフレームワークにより

    第6回 DIフレームワークGuiceで,さらばXML!:ITpro
  • 初心者のための DI 入門 - Aufheben - GLAD!! の日記

    社内で新人さん向けに使った資料を公開しておきます。 初心者のための DI 入門 また、実際に手を動かした方が良いと感じたので、演習問題も作ってみました。 Eclipse のプロジェクト付きです。よろしければ、ご利用ください。 初心者のための DI 入門 (実践編) DI4Beginners.zip

    初心者のための DI 入門 - Aufheben - GLAD!! の日記
  • ひがやすを blog - JavaからRubyへ -

    http://d.hatena.ne.jp/higayasuo/20070417#1176813784の続き。 前回のエントリーでDIContainerが提供する機能で重要なのは AOP スコープ管理 で、IoCがDIContainerの敷居を高くしていると書きました。それでは、どうしたらよいのでしょうか。 必要なオブジェクトは、自分から取りにいけばよいのです。たとえば、AOPとスコープ管理を低要するFactoryクラスがあるとします。 public class Factory { public static T getInstance(Class<? extends T> type) { ... } }使うときには、次のように呼び出します。 Service service = Factory.getInstance(Serivice.class);このFactoryクラスを使ったときのC

    ひがやすを blog - JavaからRubyへ -
  • ベンチマークを更新しました - あるまに

    SpringFramework 2.0.4で、ちょうどベンチマークに関係する部分のパフォーマンスチューニングを行ったとの事なので(詳しくは次のエントリ参照)、再度ベンチマークを行いました。Seasar2も最新版に入れ替えた上で、セットアップ処理コードを一部変更しています。 計測内容 バージョンは、Spring 2.0.4 / Guice 1.0 / Seasar2 2.4.12 インスタンス取得はAOP有りとAOP無しの両方を計測(前回は有りのみでしたが、今回は無しも計測しました) 全てプロトタイプ(毎回新しいインスタンスを取得) 取得したインスタンスの実行時間は、AOP有りのみ計測(AOP無しは変わらないはずなので) 留意して欲しい事項は前回の前置きにあります ベンチマーク結果 - get instance (NO AOP)- Spring: 24,336 creations/s Gui

    ベンチマークを更新しました - あるまに
  • ひがやすを blog - [DI]DIって本当に必要? その2

    http://d.hatena.ne.jp/higayasuo/20070416#1176719022の続き。 それでは、DIContainerの機能で当に必要な2つの機能って何でしょうか。一つは、インスタンスのスコープ管理です。スコープとは、singletonだとかprototypeのようにインスタンスが存在する範囲のことです。たとえば、singletonの場合は、いつ取得しても同じインスタンスが返ってきて、prototypeの場合は、取得するたびに新しいインスタンスが返ってきます。 このスコープ管理は、単純にオブジェクトをnewしているだけでは達成できません。以前のコードを見てみましょう。 Service service = new Service();これは、ある意味prototypeですが、これをsingletonにしたい場合、次のようなコードにする必要があります。 Servic

    ひがやすを blog - [DI]DIって本当に必要? その2
  • ひがやすを 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って本当に必要?
  • [JSUG]第2回勉強会の資料など (arclamp.jp アークランプ)

    arclamp.jp アークランプ ITアーキテクトが、ビジネス書とかデザインとか建築とかからシステム開発を妄想するブログ 4/13おこなわれたJSUG(日Springユーザー会)勉強会での発表内容を公開しました。「SpringでDAO」ということで、僕の周りでDAOを使った開発をするときに使っているテクニックや気にしていることを詰め込みました。 Google GroupのFileページにおいてあります。 発表資料:20070413-勉強会vol2-SpringでDAO_.ppt ソースコード:20070413-勉強会vol2-SpringでDAO_src.zip 発表ですが、時間が短かったこともあり特急モードで消化したため皆さんの理解もいまいちではないかと危惧しております。ぜひ資料とコードを眺めていただければと思います。 見所はspring-s2daoでしょうか(デモ失敗したけどw)

  • AS3版 DIContainer登場(AOContainer):nod::ぶろぐ:RIA::Flex/AIR/Flash

    FlashやFlex,(Ajax),S2Flex2,ActionScript3,yui-frameworks,Akabanaプロジェクトなどのメモ帳 AS3で書かれたDIコンテナ(AOContainer)がSparkProjectより登場していました。 設定は、現在のところXMLをソースに埋め込むようにしているようですが既に外部からのXML読み込み方法をmetatagを利用して実現している方もいらっしゃるようです。 FxUG勉強会でもmetaタグを使ってインジェクションするといったようなアプローチが紹介されていました。 [RemotingService(destination="addService")] public var service:RemoteService; flex2.0.1からのmx.modulesやmetaタグなどを組み合わせていくとよさそう。 すこしづつ勉強していこう

  • 負荷テスト結果 - 設計と実装の狭間で。

    ここから先が数字です。 補足や雑感をダラダラ書いたりもしています。 Requests per secondの数字は大きい方が、スループットが高く、より速いという事になります。 又、No.は、補足説明をする際に使用する項番です。 尚、スクリプトを見れば分るとおり、5回に渡って負荷をかけています。 それぞれの結果の中から、最も端的に結果を確認できる「Requests per second」を一覧化してみました。 No. (1) Struts + S2.4 + Kuina-Dao + JPA(Hibernate) 1075.44 [#/sec] 1107.79 [#/sec] 1105.82 [#/sec] 1108.95 [#/sec] 1188.89 [#/sec] (2) Struts + Spring2 + JPA(Hibernate) 974.94 [#/sec] 980.48 [#/

    負荷テスト結果 - 設計と実装の狭間で。
  • 負荷テストスクリプトについて。 - 設計と実装の狭間で。

    どの様な負荷をかける事によって得られた結果なのかについて、それなりに書いておきます。 負荷テストは、負荷のかけ方によって、180度違った結果が出る事があります。 今回は、Seasar2とSpring2の比較をしていますが、 僕がSeasar2寄りなモノの考え方をしているのは事実であり、その一点のみにおいて、Spring側は不利です。 例えば、Seasar2では、HotDeployと言う、パフォーマンスを犠牲にして開発効率を優先する機能がありますが、 当然の事ながら、この負荷テストを行うにあたって、当該機能はOFFになっています。 又、非常に単純な方法で負荷をかけていますので、現実の案件でやるべき負荷テストとは、 テストとしての品質において非常に劣っていると言わざるをえません。*1 基的には、これから負荷テスト的な事をやりたいと思っている人の参考に少しでもなれればイイなぁ…と、思います。

    負荷テストスクリプトについて。 - 設計と実装の狭間で。
  • 負荷テストの環境について。 - 設計と実装の狭間で。

    今回の負荷テストを行ったハードウェア及び一部のミドルウェアについてです。 CPU vendor_id : GenuineIntel cpu family : 6 model : 15 model name : Intel(R) Xeon(R) CPU 5160 @ 3.00GHz stepping : 6 cpu MHz : 3000.274 cache size : 4096 KBXeon 3GHz デュアルコアのCPUが2つのってるサーバです。 結局、コアは4個って訳です。 メモリ MemTotal: 2074780 kBんーと、つまり、2GBですな。 OS Linux version 2.6.9-34.ELsmp (bhcompile@hs20-bc1-7.build.redhat.com) (gcc version 3.4.5 20051201 (Red Hat 3.4.5-2))

    負荷テストの環境について。 - 設計と実装の狭間で。
  • (その14)トランザクション管理 - あるまに

    AOP用途の73%を占めるトランザクション管理*1。これが分かればとりあえずGuiceを使ってみようという人が増えるかもしれないので、ちょっと試してみます。 トランザクション機能は他ライブラリを使う Guiceはトランザクションに関する機能を一切持っていません。ドキュメントを見ると"@Transactional"とか書いてあって紛らわしいのですが、「そういうアノテーションを使えば?」という程度の話です。なので、実際にトランザクション管理を行う場合は、自力で実装するか、他のライブラリの機能を使う事になります。今回はSpringのTransactionInterceptorを使ってみますが、Sesar2でもたぶん同じような事が出来ますし、ちょっとインターセプタを書けばHibernateのトランザクション機能を使う事も出来るはずです。 今回の要件 メソッドに@Transactionalと書くと、

    (その14)トランザクション管理 - あるまに
  • OZACC.blog: Spark project

    Flash | Spark project BeInteractive! [Spark project 格運営開始!] スバラシイ! さすが未踏プロジェクトです。 AOContainerを早速テストしてみました。ページに掲載されているファーストステップをやっただけですが。SpringやSeasarでおなじみのDIコンテナなので、結果に対して今更物珍しくも何ともないのだけど、ActionScriptで実現できることについてはやはり新鮮です。 ただ、設定XMLがスクリプトの中に入るというのは、違和感を覚えるところ。ただ、この設定を外から読み込もうと思うと、その設定ファイルをどこに置くかという非常に悩ましいことになるので仕方ないんですが。設定スクリプト内で実装クラス宣言をコードに埋め込む必要があるのもあまり動的な感じがせず、これならプログラムでオブジェクトを生成してグローバル領域に置いた連想