タグ

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

  • Wicket勉強会開催直前です。 - 矢野勉のはてな日記

    Java, WicketWicket勉強会が1/11、オラクル青山センターにて開催されます。Wicket勉強会 2011-01 : ATNDWicket勉強会 2011-01 懇親会 : ATNDもう連休を挟むのみとなりました。おかげさまで満員です。ありがとうございます。会場が40人部屋なので、増やすのにも限界が。すこし人数を増やしましたが、たぶん今の設定で限界だと思います。各社、会社も始まってるだろうし、連休やその後の予定も立ったところだと思いますので、出席できなくなった人は早めにキャンセル操作をお願いします。補欠登録の方が何名かいらっしゃいますので。なお、20分枠は全部は埋まらなかったので、A枠とB枠ぶちぬきで私が話すことにしようと思います。あと、LTはまだ受け付けていますので、ちょっと簡単なことを話したいなーという人は是非ご連絡ください。当日オラクル青山センター2階入り口を入った、右

    j5ik2o
    j5ik2o 2011/01/14
    やんやん、自重はだめだおー
  • Javaで戻り値の型パラメータにワイルドカードを使う意味 - 矢野勉のはてな日記

    java例えば次のようなメソッドを考えてみる。Bookはまあ、独自クラスだとする。 List getBooks(); これを次のようにすることに意味はあるのかどうか。 Listextends Book> getBooks(); メソッドの戻り値にワイルドカードを使ったところで、結局、Bookの固有のサブクラスで結果を受け取れるわけではない。これはコンパイルエラー List books = getBooks(); 受け取るにはこうすることになるでしょう。 Listextends Book> books = getBooks(); Listでは受け取れない(コンパイルエラーになる)。Listから値を取り出す場合、結局のところ、下限型であるBookとしてしか取り出すことはできない。もちろん、booksの中にはBookのサブクラスが入っている可能性もあるけど、サブクラスにするには、instance

    j5ik2o
    j5ik2o 2010/11/15
    インターフェイスのメソッドや抽象メソッドの戻り値によく使いますね。
  • jMockを使ったテストの実行,あるいは実クラスのモックを作成してテストする方法 - 矢野勉のはてな日記

    Java, Cayenne, jMockjMockの使い方を,いまさらながら調べたのでメモ的に記録しておきます。 ORマッピング・フレームワークであるApache Cayenneでは,多くのORマッパと異なり,データオブジェクト(エンティティ)がインタフェースを使っていません。Cayenneはバイトコード・エンハンスとかを使用しない作りなので,継承関係を用いてデータオブジェクトの機能が提供されてます。で,このデータオブジェクトのテストを実行する際にモックを使いたいのだけど,インタフェースがないからどうしよう,という話がありました。 答えは簡単な話で,ほとんどのモック・ライブラリは実クラスのモック化をサポートしています。今回はjMockを使いました。easyMockでも同じようなことは可能でしょう。pom.xmlへのライブラリの追加次のライブラリをMavenのpom.xmlに追加します。 o

    j5ik2o
    j5ik2o 2010/07/30
  • Javaのラムダ式導入に関する最新提案の雑なまとめ - 矢野勉のはてな日記

    java7月頭に,Brian GoetzがJavaにおけるラムダ式導入に関する最新提案のドラフトを出しました。State of the Lambda 私はこの提案書と,提案書を元にした英語記事を読んだだけですが,Twitterで話していると,23日くらいにこの提案を元にしたソースがJavaのソースリポジトリにコミットされたらしい。ただし,中ではまだ議論続発してるらしい。ちなみに英語記事はラムダについての連続記事の4回目で,5回目ではWicketでラムダ式を使うとどうなるか,という考察が載っています。提案書のラムダ式とWicketの非整合部分についての考察で,Wicket好きの人は読んでみてもいいと思う。あと,空コンストラクタがないクラスについて提案書は明確なところ書いてないよね,みたいな指摘も。せっかくなんで,最新提案におけるラムダ式実装をまとめておきます。いままでのあらすじ最新提案書では

    j5ik2o
    j5ik2o 2010/07/29
  • WicketをAppEngineで使うための便利クラス群 - 矢野勉のはてな日記

    Java, Wicket shin1ogawaさん(http://shin1o.blogspot.com/)が、WicketをAppEngineで使うために用意したクラス群を公開しています。非常に便利そうで、注目しています。  http://sourceforge.jp/projects/gaejtools/svn/view/gaejtools-wicket-util/src/main/java/appengine/wicket/?root=gaejtools  AppEngineではセッションストアをHttpSessionStoreにすることで、バックエンドをビッグテーブルにすることができるのですが、API上でサイズに制限があるなど注意が必要です。公開されているクラス群には、制限を超える場合にはmemcacheに分割保存するAppEngineSessionStoreや、AjaxPagin

  • Wicketはライトウェイトなフレームワークじゃない。でも気持ちがいい。 - 矢野勉のはてな日記

    Java, Wicket Wicketの紹介ページのタイトルを書く時、最初は「Java軽量フレームワーク『Wicket』の使い方」としようと思ってました。いろんなところで「Lightweight framework」と呼ばれていたから。でも実際に書いてみたらどうもしっくりこない。軽量....? なんか違う....。なのでお茶を濁して「Javaウェブフレームワーク」としたんですよ。 道具が手に合うようなしっくりさを持ったフレームワークなのに、「軽量」というとなんか違うという感覚が自分でもよく分からなかった。でも最近オライリーのOn JavaにてWicketのレビューが出てたのを読んで、やっぱりそうか、と思いました。 Wicket - (another) Java Web Framework: My First Impressions レビュー自体は比較的長めです。でも結構的を射たレビューです

  • WicketとSeasar 2を統合する「wicket-seasar2」ライブラリを作りました - 矢野勉のはてな日記

    Java, Wicket主についったーでid:yuripopがWicketとSeasar2を統合しようとしてウンウン悩んでいるのをみて、いっちょやるかと思ってやった次第。 Seasar 2とWicketの統合にはS2Wicketというライブラリが既に存在していて有名なんですが、このS2WicketがWicket 1.2系統(org.apache.wicketにパッケージ名が変わる前)に向けて作られているっぽく、最新のWicket 1.4-rc1では動かないんですね。 Wicketのページクラス内のフィールドに値を持つ場合、それらのオブジェクトはすべてシリアライズ可能である必要があります。これは、ページはHttpSessionに格納されたり、2次キャッシュ・ファイルに保存されたりするためです。そのために、単純にDIで値を放り込んでもダメなんです。 Wicketでは、この問題を「フィールドには

    j5ik2o
    j5ik2o 2009/01/21
    HOT deployはWicketとSeasar2のどっち使っているんでしょうか?
  • Javaフレームワークの比較検討資料公開 - 矢野勉のはてな日記

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

    j5ik2o
    j5ik2o 2008/11/19
    ちなみにS2はコンポーネント定義はアノテーションで可能です。S2JDBCの列名の指定もS2JDBC-Genによってタイプセーフな列名メソッドが利用できます
  • 次期S2Wicket仕様断念の原因となった動的オブジェクトの循環参照問題をぼくがみんなのために解いたった! - 矢野勉のはてな日記

    Java, Wicket下記の記事について、よりエレガントな解法がkoichikさんから発表されました。詳しくは翌日のエントリをどうぞ。S2Wicket開発者よういちろうさんの下記記事を参照。新S2Wicket仕様,断念上の記事が公開された時に、私、コメントをつけたんですよ。こんばんは。是非一度問題を追いかけてみたいので、テストコードを公開してみませんか? 誰かが問題を解決してくれるかも....そうしたらエラーを再現するための参照コードが公開されたんですが、今の今まで余裕なくて放置してましたすみません。動的プロキシが循環参照していた際のシリアライズ問題デバッガで追いかけてみると原因はほぼすぐに分かりました。よういちろうさんの指摘通り、Javaのオブジェクトシリアリゼーションの仕様ですね、これは。注 - オブジェクトが完全に構築されるまでは readResolve メソッドはオブジェクトに呼

  • プログラマなら人月なんかさっさと超えろ - 矢野勉のはてな日記

    Java, プログラミングノリノリで書いてみる。 人月というのは「人月の神話」以来、現場の技術者にとっては「お金の計算にしか使えない単位」なのですが、発注者側に分かりやすいということでいまでも大はやりしています。というか受注者側もまじめにこの単位で計算しています。 そしてJavaの世界というのは、私のようにJavaが大好きだからやってる、という人間はすごく少数派で、「そろそろJavaでもやっとくか」「Strutsの使い方覚えたからもういいか」「できればJavaなんかいじりたくないなー。俺も早くプログラマに『これやっといて』って言えるようになりたい」という人のほうが多いのが実情なんですね。その点Rubyの世界は、今は「好きだからやってる」人が圧倒的でしょう。プログラム能力の高いJavaプログラマを探すのは、プログラム能力の高いRubyプログラマを探すよりずっと大変だろうと思う。 Javaの世

    j5ik2o
    j5ik2o 2008/05/14
    ほんとこの精神わすれちゃならん.理想に向かって前進あるのみ.
  • Javaの冗長な記法って小クラス主義の現れではないかな - 矢野勉のはてな日記

    Java以下は無駄に長い駄文です。なんか書いてみたはいいもののうまくまとまらなかった。ごく一部しか表せなかった気がする。これではInputStreamReaderとかがたくさんオブジェクトを連結しないと使えないめんどくささをなぜ許容できるか、しか表せてない... もともとは「 Java における質的でない記述がどのように大規模開発に役立つのか - kwatchの日記」がらみの話です。文中にいくつか「アクセッサが簡潔に定義できない」「FileReader に文字コードを渡せない」のような例があって、「それらが改善されたら大規模開発になにか不利益があるのかどうか」という具体的な質問があったので私はそこにコメントしときました。私はコメント欄に「不利益なんてないよ」と回答しました。実際のところ、後方互換性が維持され、言語としての統一性が維持されるなら別に不利益なんてあるわけない。あるとしたらマネ

    j5ik2o
    j5ik2o 2008/05/05
    C++というか,OSのシステムコールの分解粒度がそのままC/C++上のクラス粒度になりやすい.起源がそこから来ている人はJavaを好むのではないでしょうか?私もそのひとりです.
  • 1