タグ

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

  • gihyo.jpのWicket連載が最終回まで公開されました - 矢野勉のはてな日記

    Java, Wicket当初5,6回と想定していましたが,予定に反して全9回の大ボリュームで,Wicket連載が最終回を迎えました。http://gihyo.jp/dev/feature/01/wicketただ淡々と機能を説明しても面白くないし,かといって業務システム的なものを作っても読者も読む気起きないかな〜と思って,題材はTwitterを使いました。Twitterアプリケーションというのもなかなかいろんな機能があるので,モデルやコンポーネントといったWicketの基礎だけではなく,Ajaxによるページ部分更新や,あまりそこまで追っかける人もいない感じのRequestTargetやUrlCodingStrategyにまで,なんとか踏み込めました。最後のOAuthの例は,実際にはWebPageを使っても同じことができるのですが,今回の連載はTwitterアプリケーションの作り方を紹介しなが

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

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

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

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

  • 失敗が許されないほど巨大すぎるものは - 矢野勉のはてな日記

    雑談, メモ, 開発『失敗が許されないほど巨大なものは存在も許されない』 マイケル・ムーア(映画監督) なんか主にシステム開発系の人の心にビシバシ届く気がしたのでメモ。

    hiro360
    hiro360 2008/10/10
  • Javaが不憫すぎる - 矢野勉のはてな日記

    JavaJavaの匿名クラスを使ってかっこよくオブジェクトを初期化するテクニック - 矢野勉のはてな日記を書いて反応などをみて... Java...かわいそうに...小公女のようだ... StrutsみたいなJavaでなくてもいいような、オブジェクト指向ですらないような存在にイメージを固定化されて、フルスペックを知られることもないのか... 初期化ブロックというものがあまり知られていないということにちょっと驚きつつ、昨今の匿名クラスとかを使うのも気持ち悪いという風潮とか、初期化ブロックも知らないで「Javaは退屈」みたいなことを言われてもいい迷惑だと思ったりしました。すみませんJava厨なもので。だって、Java 1.1のころからあるのに... だってJavaの原典とも言えるプログラミング言語Java 第4版 (The Java Series)にはもちろん載っているし、Javaの認定試験S

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

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

  • 冗長さが除去されて言語が簡便になれば大規模開発にも役立ちます - 矢野勉のはてな日記

    Java t_yanoさんのコメントへのコメント - kwatchの日記を読んで、感想などをコメント欄に書いてたのですがコメント欄を占拠するくらい長くなったのでこっちに移しました。そうですね、「書きやすさ (あるいは読みやすさ)」と「ミスをさせないこと」は両立する、という意見に賛成です。ここで言いたかったのは、書きやすさ(読みやすさ)の利点、というのは現場では即座には理解されにくい、ということなんです。一方、ミスをさせない利点というのは、現場が今まさに求めているものでもあるし、比較的すぐに理解される傾向があるように思います。だから後者ばかりを求める傾向がある。「分かりやすさと簡潔さは大規模開発にこそ必要」という意見について実は私は賛成ですよ。「IDE使えば書きやすさが変わらないからいいや、というのは片手落ちのように思います」という部分についてもね。  今回の話、ちょっと個々の改善例により過

    hiro360
    hiro360 2008/05/07
    結果として違いが見えにくくなっている。この「見える」というのがくせ者で実際に同じではない。ところが利点が見えにくくなってる。だから理解されにくい。現場からは「別にいらない」という反応が出てくる。
  • Javaの冗長な記法って小クラス主義の現れではないかな - 矢野勉のはてな日記

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

  • http://d.hatena.ne.jp/t_yano/20080502/1209753329

  • Re:こういうときどうすればいいの? - 矢野勉のはてな日記

  • java-ja 第7回Buri祭レポート - 矢野勉のはてな日記

    Java, java-jaまず先に反省。wicket-jaの宣伝にLTをしたのですが、なんだか慌ててたのか、私が誰なのか自己紹介もせずに話し始めてしまった。みんなちゃんと一ページ目には名前とかいれているのにね。私は唐突に宣伝に来ましたとか言って話し始めてしまった反省。あと誰か私がしゃべってるときのustreamのログを怖がらずにskypeid:tsutomu.yanoに送ってごらん? はぶさんを他所から巻き込んで無理矢理セッティングしてしまった「java-ja自重!」な感じで発生した第7回ですが、期待通りはぶさんの熱いトークが聞けました。私、はぶさんのビジネスの熱いトークが結構好きなので期待どおり。 ネタはBuriなのですけど、はぶさんはまず「ビジネスというのはなにか?」というところから入る。これがいい。「スーツ=金とかいってんけどさ、金の意味わかってる?」というところからガンガン攻めてき

    hiro360
    hiro360 2008/03/31
    はぶさんは提案をドラえもんの秘密道具に例えました。「空を飛びたいな」という要望に応えようとして「はい!タケコプター!」と出すのがビジネスなんだと。だからまず「空を自由に飛びたいな」というのび太を探さな
  • 10倍集中できる作業環境をMacに構築する方法 - 矢野勉のはてな日記

    Mac, Lifehack, Tool追記:書いた直後にマイコミジャーナルさんで同じソフトウェアの紹介記事が出ていることに気がついてしまった。しかも数日前に。二番煎じでしたね...でも集中するには当にいい組み合わせなのでぜひどうぞ。http://journal.mycom.co.jp/column/lifehack/065/index.htmlMacにどっぷりはまっている方ならご存知のものかもしれませんが、私の作業効率はものすごく上がったので紹介します。 最近私は特に土日なんかは家でも作業することが多くなっています。いまを書いているのでとにかく机に向かってひたすら文字を打ち続けていくのですが、これにはとにかく集中力が重要。テレビは見ないのでOK。音楽はむしろ静かに流せば適度な雑音になってくれるのでOK。問題は、ネットです。Macを使って作業してるので常にネットに接続している。twitt

    hiro360
    hiro360 2008/03/11
  • ウェブ・アプリケーションの革命がここにある - Apache Wicketユーザーグループを始めます - 矢野勉のはてな日記

    Java, Wicket このブログをいままで読んでいる方なら、私がApache Wicketの大ファンだということはご存知でしょう。ついに1.3としてApacheプロジェクト入りしてから最初のリリースを果たしたWicketフレームワークは、日ではまだそれほど普及していませんが、今年は米国で「Wicket in Action」が出版される予定があるなど、かなり注目されているフレームワークです。 私はそんな控えめな表現では表せない魅力をWicketに感じています。Wicketは、Javaのいままでのフレームワーク開発の積み重ねがもたらした「ウェブ・アプリケーションの革命」です。Echo2のようにHTMLを廃してJavaだけでプログラムを組むのでなく、JSFのように新しいテンプレートを作るのでもない。HTMLJavaを結合して、HTMLJavaで、Javaらしいコードで制御するという方向

  • Mavenのパワーをthe rest of usに解放する - mvnbeans 1.0 SNAPSHOT公開 - 矢野勉のはてな日記

    Java2割増くらいで大げさに書いたけど8割くらいは気です。 maven2はjava最高のビルドツールです。コマンド一発でビルド、テスト、jarのアップロード、サイトの更新を行ってくれる。最も強力な力は、あらゆる依存jarを連鎖的に解決してくれるところです。もし私のプログラムがある一つのjarに依存しているとして、その一つのjarが5つのjarに依存し、そのそれぞれが2つの依存jarを持っていたら。 maven2が現れるまで、私たちは一つずつそれらの依存jarをすべて手動でダウンロードしてきました。でもmaven2はたったひとつの依存jarを元にして、すべての依存jarを連鎖的に走査し、すべてを一括でダウンロードしてくれる。 そのmaven2も登場からもうかなり立っているのに、「スタンダード」にまではなっていないんですね。なんでだろう。 要するに、maven2は敷居が高いんです。 mav

  • 『電脳コイル』最終回を迎えての感想など - 矢野勉のはてな日記

    雑談, 電脳コイル今日、録画してあった「電脳コイル」*1の最終回をみました。大変すばらしかった。そして見終わった後に「ああ、終わってしまった」という喜びとも寂しさともつかない不思議な感じを抱きました。 この感情は神様のパズル - 矢野勉のはてな日記で書いたのと同じもの。よい物語に出会うとその世界から離れるのが、その世界の続きをもうみられない惜しいような、そんな気持ちになる。最初にそんな感情を抱いた物語は十数歳のときに、図書館で借りてハードカバーのいわゆる「赤」で「指輪物語」を読んだときでした。中つ国の物語が終わりを告げてサムが自宅に戻ったところを読んで、初めてそのような感情を意識しました。新版 指輪物語〈1〉旅の仲間 上1 (評論社文庫)作者: J.R.R.トールキン, J.R.R. Tolkien, 瀬田貞二, 田中明子出版社/メーカー: 評論社発売日: 1992/07メディア: 文庫

    hiro360
    hiro360 2007/12/04
    激しく同意
  • Javaにおける疑似Map生成リテラル({ key => value }ばりに簡単にMapを生成する方法) - 矢野勉のはてな日記

    Javajava-ja@lingrのログを見ていたら、なにやらキーワード引数の話から、マップをサクっと作れないと「流れるようなインターフェース」が作りにくいとかそんな話になってて、「せめてMapのリテラルさえあれば…」とかいう話に行っていました(敷居が高かったので、下に紹介するブログのURLを貼って逃げた(笑))。 JavaMap生成リテラルが欲しい!という話は結構昔からぽろぽろ出てますよね。たしかにMapがささっと作れるのと作れないのとではMapを使う時のモチベーションが違う。気軽に使えない。 国内はもちろん海外のブログでもそういう話題は上がってまして、私のお気に入りは、odz bufferさんにて紹介されてた、このNicolas Lehuen氏のアイデアです。このアイデアを使うと、下記のようにBuilderみたいに簡単にHashMapを生成できます。 // Example usage

  • プログラマは「世界」という言葉を臆面もなく出すべき。そしてチャレンジを褒めるべき。 - 矢野勉のはてな日記

    プログラミング, 生活ちょっとワクワクしながらつらつらと書きます。 テレビ朝日のドキュメンタリで、11歳のゴールデンエイジのテニス少年たちを教える松岡修造氏*1の番組を見た。 彼はいつも「○○をできないと世界に通用しない」と臆面もなく「世界」という言葉をだす。あたりまえのものとしてその言葉を出している。「インターハイがどうのこうの」ではなく、「世界に通用するかどうか」ということを常に話している。 そして練習が終わったあとには子供に「なぜ君を選んだのか」を語る。「君には才能があるからだ」「センスがあるからだ」「センスがあるんだから、君はがんばるしかないんだ」「今日一日できみはものすごく成長した」と、教え子のやっていることが無意味ではない、ちょっとでも前に進んでいると一所懸命に語っていた。 この言葉を聞いた子供たちは、「世界」を「手の届かないもの」ではなくて、「届くかどうかは自分次第だ」と思う

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

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

  • JavaでRubyのfixtureみたいなことをしよう - Fixtureを作りました - 矢野勉のはてな日記

    Java Ruby on Railsのfixtureという機能は有名なので皆さんご存じかと思います。JavaでいうJUnitのTestCaseクラスに、 fixture :test と書くだけでtestというテーブルにtest.ymlという名前で用意されたテストデータが投入されるという機能です。 同じような機能はJavaでもかなり以前からDbUnitとして提供されてきましたが、使い勝手という点で圧倒的にfixtureが勝っている。というのは、DbUnitは汎用的なライブラリなので使うためにはDBへの接続定義をコードで書いたり、ロードするxmlファイルを探したり、といろんな手間があったのです。 DbUnitはデータベーステストのデファクト・スタンダードなのでJavaプログラマなら一度くらいは使ったことがあるかと思います。私も仕事柄いろんなところのアプリケーション開発環境を構築するのを手伝いま

  • 次期S2Wicket仕様断念の原因となった動的オブジェクトの循環参照問題をぼくがみんなのために解いたった! - 矢野勉のはてな日記

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