タグ

ブックマーク / d.hatena.ne.jp/t_yano (7)

  • 互いに関連のないオブジェクトを1つのインターフェースにまとめて共通的にアクセス可能にするライブラリを作ってみた - 矢野勉のはてな日記

    Javaもともとやりたかったことは、 あるオブジェクト(インスタンス)がすでに手元にある そのオブジェクトのクラスは何らかの理由で継承不能 そのオブジェクトの一部メソッドをオーバーライドしたい そのオブジェクトにメソッドを1つ足したいという、JavaScriptならすぐにできちゃうことがしたかった。で、これって、オーバーライドしたいメソッドと、追加したいメソッドだけを持ったあるオブジェクトAを用意して、メソッド呼び出し時に該当メソッドの時だけAに委譲しちゃえばできるよね、と思った。他のメソッドはすべてもとのオブジェクトに委譲する。 で委譲コードを書いてみても、すんごいめんどくさい。たくさんのメソッドを定義して、ただ委譲するだけのコードをかかないといけない。でCGLibあたりにそういうのがあるだろうと思って見てみたのですが、どうもないみたい。なんかありがちな要望だと思ったんですが、もうちょっ

  • WicketのCPU負荷について調べてみた - 矢野勉のはてな日記

    Java, Wicketid:s-ishigamiさんがWicketのCPU負荷について調べていて、IMarkupSettingsのsetAutoLinkEnabled(true)をしていると負荷がとても上がって困るって話でした。いやいやそれはおかしいと思って調べてました。...と言ってる間に、id:s-ishigamiさんも継続調査していて似たような方向に調査が向かっているようですが、せっかく調べたので書いておきます。 もとねた:WicketのCPU負荷 - s-ishigamiの仕事日記(WicketでECを作る道のり)WicketのCPU負荷〜その2〜 - s-ishigamiの仕事日記(WicketでECを作る道のり)WicketのCPU負荷〜その3〜 - s-ishigamiの仕事日記(WicketでECを作る道のり)WicketのCPU負荷〜その4〜 - s-ishigamiの

  • Wicket勉強会第2回終了 - 矢野勉のはてな日記

    Java, Wicket3/6にWicket勉強会第2回を行いました。広くて設備の整った会場を貸してくださったグリーさんありがとうございました。グリーパネェ80人部屋がいっぱいになることなんてないだろう、と高をくくっていましたが、結局使い切りました。設備も2面スクリーンがあったりと、驚きの充実ぶりでした。 ustream配信&録画はいろいろトラブルが重なってうまくいかなかったです。すみません。 内容ヨシオリさん WicketでレスポンスにJavaScriptを埋め込む方法、それらをひとつのコンポーネントに束ねて使う方法などを紹介。前回私もコード見せながら説明などしたのですが、それと同じように、実際のソースコードを見ながらの説明でした。 コードを見ながらの勉強会って30分だとちょっときつかったですかね。説明することたくさんあるので... コード・リーディングは専用に時間をとってやりたいですね

  • Javaフレームワークの比較検討資料公開 - 矢野勉のはてな日記

    Java仕事で各種フレームワークを比較検討したので、比較用に作った参考資料を公開します。ちなみに現在私は、ドワンゴさんの社内システム開発をお手伝いしてまして、その一環で調べたものです。会社資料じゃなく、私の資料ということでブログで公開してよい、むしろしとけ、とのことなので公開しときます。 今回の案件向けにアプリケーションを画面層コンテナ層データアクセス層に分けて、それぞれフレームワークを選ぶのが目的です。コンテナ層はDIコンテナのうちいずれか、データアクセス層はO/Rマッパーを選ぶことになります。 太枠の範囲が選定対象です。よくに出てくる杓子定規な階層図とは変えてあります。 次のものを比較検討しました。画面層SAStrutsApache Wicket(ほかにもTeedaとかClick Frameworkとかももともとは候補にあったが、調査が追いつかないので二つに絞った)コンテナSeasa

  • Javaの匿名クラスを使ってかっこよくオブジェクトを初期化するテクニック - 矢野勉のはてな日記

    JavaJavaの匿名クラスはすごくかわしいかわいい技術でいろいろキモイことができます。匿名クラスは基的に「サブクラス生成のための特殊記法」であって、クロージャではありません。匿名クラスとクロージャを対比して云々するのはそもそも誤りです。なんならクロージャでサブクラス作ってみなよってことです。匿名クラスによって、Javaではなにかのサブクラスを任意の場所で即座に作り出すことが出来るんです。なにかのクラスのメソッドを三つほど書き換えた新しいクラスをさっと作れるのは、なかなか面白い機能ですよ。 その匿名クラスを利用したカッコイイ(でも使うのは躊躇されている)記法として、次のようなのがあります。(追記:この用法はヨシオリさんところで見たのが最初です) List list = new ArrayList() {{add("a"); add("b"); add("c");}}; Javaには「初期

  • Rubyのブロック構文のように、Javaでどういう終わり方をしようが確実にファイルをクローズする全行処理メソッドを作る - 矢野勉のはてな日記

    Java 昨日の日記ではノリノリで1時間くらいで実装してイテレータを公開したものの、例外が飛んだら終わり、というなんともつまらないオチで終わってしまいました。breakやreturnできないことは意図した動きだったんですが、なぜ例外のことを忘れるかなー....ブックマークしてくれたみなさん、あれは例外が飛んだらリークしますんですみません。トラックバックしてくれていたお二方(id:masanobuimaiさんとyuguiさん)、なんだか褒めていただいたのに申し訳ない。 書いたコードは検証してから挙げろってことですね。でも「情報は情報を出すところに集まる」というのを実感しました。公開したからこそ、ささっと指摘を受けられたと良いように解釈します。 さて、結局のところコードブロックから飛び出してもそれを確実に捉えてファイルをクローズするには、コードブロック自体を制御構造の中に入れるしかないわけです

  • Rubyのブロック構文のように、Javaで全行処理し終わったら勝手に閉じるイテレータを作る - 矢野勉のはてな日記

    Java(2006/10/6追記:以下の記事のコードには重大なミスがあって、事実上このコードは使えないことにご注意を。一度書いたものだし翌日の日記へのつながりもあるので消しませんが、バグがあるという前提で読んでください。詳細はコメント欄を。) (2006/10/14追記:)代わりに「Rubyのブロック構文のように、Javaでどういう終わり方をしようが確実にファイルをクローズする全行処理メソッドを作る」という話を下記日記で続けてやっています。http://d.hatena.ne.jp/t_yano/20061004/1159987463http://d.hatena.ne.jp/t_yano/20061008/1160331809http://d.hatena.ne.jp/t_yano/20061011/1160581075 最近http://itpro.nikkeibp.co.jp/art

  • 1