タグ

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

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

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

    yohjizzz-backup
    yohjizzz-backup 2008/11/19
    「フレームワークの優劣を決めようとして行ったものではなく、あくまで「今回の仕事ではどうか」を選ぶために準備したもの…」
  • ウェブ・アプリケーションの革命がここにある - Apache Wicketユーザーグループを始めます - 矢野勉のはてな日記

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

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

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

    yohjizzz-backup
    yohjizzz-backup 2007/12/05
    「Map<String, Integer> map = map("a", 1).map("b", 2).map("c", 3).map("d", 4);」の件。
  • プログラマなら人月なんかさっさと超えろ - 矢野勉のはてな日記

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

    yohjizzz-backup
    yohjizzz-backup 2007/12/04
    「人月評価なんかさっさと超えてしまえ。あなたは「1人月」じゃない。...」
  • Fixture bate2を公開しました。今回のネタはJSON対応です。 - 矢野勉のはてな日記

    Java 先日公開した「JavaRubyのfixtureみたいなことをしよう - Fixtureを作りました」の続きです。 twitterで「JSONでテストデータ定義を書く」というアイデアをid:yone098さんからいただきました。ちょっと時間が空きましたが実装して、beta2として公開しました。 JsonFixtureというクラスが新たに用意されていますので、これを使うと全ての定義ファイルが.jsonファイルだと仮定して動くようになります。サンプルをみれば一目瞭然。 package jp.javelindev.fixture; import java.text.SimpleDateFormat; import java.util.Map; import jp.javelindev.fixture.configurator.CanNotConfigureException; publ

    yohjizzz-backup
    yohjizzz-backup 2007/12/04
    「JSONでテストデータ定義を書く...」json-lib使ってる!
  • 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プログラマなら一度くらいは使ったことがあるかと思います。私も仕事柄いろんなところのアプリケーション開発環境を構築するのを手伝いま

    yohjizzz-backup
    yohjizzz-backup 2007/12/04
    fixtureって知らなかったもん…後で使ってみよう。※せっかくだから XML じゃなくて YAML で。
  • logbackにもローリング処理にバグがあります。修正コードを公開します。 - 矢野勉のはてな日記

    Javalog4jの日付ローリングにバグが合ってログがロストすることがあるのは散々書いてますが、log4jの後継たるlogbackが出てきて、この停滞も終わりかと胸をなで下ろして、早速logbackを使い始めました。 うーん、logbackのローリング処理にもバグがあって、少なくとも最新stableである0.9.7では日付単位のローリングに失敗します。 このバグはすでにバグ報告されていて、修正コードもBugzillaに上がっていますし、すでにリポジトリにもコミットされているようですが、まだ最新バイナリには含まれていないので注意が必要です。さらにまだバグ報告されていない(と思われる)バグまで発見しました。これもローリング処理がらみだから困ります。 1 0.9.7では一度ローリングした以降、切り替わった後のログファイルにまともにログ出力できない これがBugzillaにバグ報告されていた問題で

    yohjizzz-backup
    yohjizzz-backup 2007/12/04
    Logback も日付ローリングでバグがある!?ってゆーオハナシ。
  • Wicket 1.3 beta2からWebApplicationの仕様がいろいろ変わっています - 矢野勉のはてな日記

    Java, WicketWicket 1.3 beta2が現在取得できる最新リリースなのですが、このbeta2からWebApplicationクラスの使用がいろいろ変わっているため、私のチュートリアルの通りにやってもコンパイルできません。そもそも1.3からWicket ServletがWicket Filterに変わっているので、その部分も既に古くなっているのですが.... ともかく気がついた変更点を列記しておきます。configure(モード)の廃止以前はconfigure(Application.DEVELOPMENT)とすることで開発モードにしたりできましたが、1.3 beta2からは「getConfigurationType()」というメソッドをオーバーライドして、Application.DEVELOPMENTかApplication.DEPLOYMENTを返すことで設定するように

    yohjizzz-backup
    yohjizzz-backup 2007/12/04
    Wicket 1.3.x からの仕様変更について~
  • GuicyなWicket - Javaで一番ホットなフレームワークが統合できる! - 矢野勉のはてな日記

    Java, Wicket いつか誰かがやると思ってましたが、ついにWicketのGoogle Guiceサポートが開発されたようです。Click Frameworkと並んで一番ホットなJavaウェブフレームワークであるWicketと、GoogleのDependency InjectionフレームワークGuiceがついに統合できるわけです。 Wicketには早くにSpring拡張機能が追加されていましたし、国内ではよういちろうさんによるS2WicketでSeasar 2もサポートされています。そこにGuiceが加わる。 Google GuiceはDIコンテナとしては異色の存在です。そのポリシーには「型安全性重視」とか「anti-static」とか書いてますし、あるいはXMLではなくてJavaコードでインターフェースと実装クラスを結びつけるというやり方を見ても、とてもJava寄り。最初にその発

  • Apache Wicket 1.3.0-incubating-beta1 がリリース - 矢野勉のはてな日記

    Java, Wicket Wicket 1.3です。1.3はついにApacheブランドで出る最初のバージョンです。パッケージ名がすべてorg.apache.wicketに指し変わっていますので移行が必要となります。 ところで1.3は1.2にパッケージ名変更等を行ってApacheのリリース条件を満たしたもの....ではありません。結構重要な変更が入っているのでこれから作る人は1.3を使ったほうがいいかも。 一番大きいのは、Wicket体がServletではなくてFilterになったこと。これによって今までWicketでは出来なかった、「コンテキスト・ルート以下すべてをWicketに処理させる」つまりは「マッピングに /* を使う」ってことが出来るようになりました。これは結構よいですよ。 ServletがFilterに変わったからといって、ソースにあまり影響はありません。web.xmlでで定

    yohjizzz-backup
    yohjizzz-backup 2007/12/03
    「Wicket本体がServletではなくてFilterになったこと。…」
  • Wicketがアニメーションをサポート - 矢野勉のはてな日記

    Java, Wicketすこし前にエイプリール・フールねたで見事にひっかけられたMartijn Dashorstさんの「Wicket Diary」ですが、やっぱりWicketファンとしては注目のブログです。いろんな情報が載っててワクワクさせてくれます。 今回の話は、Wicketのアニメーションサポート。まずはこのページをどうぞ。http://people.apache.org/~dashorst/animation/yahoo.htmlhttp://people.apache.org/~dashorst/animation/animator.html yahooapianimation.jsを使ったサンプルですね。 でもWicketのJavaScriptサポートの真骨頂は「JavaScriptを書く必要が全くない」ってところにあるんですね。私、最初にWicketのJavaScirptサ

  • Pure Javaなビルドツール...名前はまだない - 矢野勉のはてな日記

    Java Wicketの面々がいろいろやってくれますね。Wicketコミッタの一人Jonathan Lockeがブログで新しいプロダクトを公開していました。Pure Javaビルドツール、つまりビルド定義をXMLで書くのでなく、定義も全部Javaで書くという完全にPure Javaなビルドツール。 「いままでのビルドツールでは決して得られなかったものが手に入る」ということで挙げている特徴もWicketコミッタらしい。a set of reusable objects that resolve, organize, transform and build resources which are abstracted, flexible, extensible, type-safe, refactorable, and so on... remember objects? Remember t

    yohjizzz-backup
    yohjizzz-backup 2007/12/02
    ビルドスクリプトも java で書いちゃえ的な。。
  • Java 7への道:遅延コンパイル - 矢野勉のはてな日記

    Java Closureとかで世間の話題をさらったJava 7ですが、日々新しいアイデアが増えていっています!今回発見したのは「Tired Compilation」。どう訳すかなかなか難しいのですが素直に「遅延コンパイル」ってとこでしょうか。遅延コンパイルというと、Javaがバイトコードをすてて、実行時にソースコードをコンパイルするのか?というように勘違いしそうですが、これはバイトコードのジャスト・イン・タイム・コンパイルのさらなる最適化です。要するに「起動時はHot Spot Client VMの機能で素早く起動」「実行時はServer VMの素晴らしい最適化でゆっくりとマシンコードへコンパイル」という合わせ技です。地味な機能ですがすばらしい。もともとServer VMの最適化コンパイルのすごさはいろんなところで言及されていますから、これが実現するなら、起動は速く、実行性能も速く、といい

  • これはすごい! JRubyでヒアドキュメントでソースをロードしてスクリプティング・エンジンに渡してしまう技 - 矢野勉のはてな日記

    Java, RubyMatzにっき経由です。http://headius.blogspot.com/2007/03/can-your-ruby-do-this.html見た途端に「これはやられた!」「この発想はなかった!」とびっくりしました。びっくりするようなことって、いつもすごくシンプルで「あーーーなんでこれ思いつかなかったんだろう!」ってことがすごく多いですね。 やってることは、Rubyのヒアドキュメント機能によって別スクリプトのソースを読みこむというテクニックと、ヒアドキュメントの受側がそのままスクリプティング・エンジンに渡す言語指定子になっているというテクニックの合わせ技ですね。 groovy G def z = 'multilanguage' println("${x}, ${z} ${y}") G Javaにはヒアドキュメントがないので知らない方もいるかもしれませんので一応説

  • PerlプログラマとCPANはやっぱりすごい。Perl->Java, Java->Perlな双方向ブリッジ - 矢野勉のはてな日記

    Java, PerlCPANに「Inline::Java」というのがあります。これはJavaソースで書いたクラスをPerlのクラスとして実行しちゃうという機能(JavaPerlのクラスを書く機能といったほうがいいだろうか)で、昨日紹介したRubyのように、ヒアドキュメントでJavaソースを入力したりもできます(Java限定なのが先日のものと違うところ)。 use Inline Java => class Pod_alu { public Pod_alu(){ } public int add(int i, int j){ return i + j ; } public int subtract(int i, int j){ return i - j ; } } END_OF_JAVA_CODE こんな感じですね。Inline::Javaのすごいところは、さらに「Inline::Java

  • SLF4J+LogBackではLog4jのDailyRollingFileAppenderのバグが修正されてる - 矢野勉のはてな日記

    Java 私の日記のアクセスログで検索キーワードを見ると「DailyRollingFileAppender」というのがよく出てくるようなので書いときます。 Log4jの開発が行われてるのか行われてないのかよく分からないくらい停滞してますが、SLF4J(commons loggingに該当)とlogback(log4jに該当)の開発をlog4j開発者が行ってるようなので、今後Java界隈ではこっちに重きが置かれるかもしれません。 commons loggingがクラスローダがらみでいろんな細かい点で問題があるってことでSLF4Jが開発されたようです。log4jにもいろいろ問題が残ってて、そっちはlogbackでやっているっぽい。logbackはlog4jの正統後継者を目指しているようなので、logger, appenderやLevelの考え方などもそのまま引き継いでいます。logbackのペ

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

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

  • そろそろRuby/PythonのようなLLを褒めるのにJavaを貶めるのは止めません? - 矢野勉のはてな日記

    Java, Ruby もうURLを失念するくらいいろんなところで言われていることですけど、LL(Lightweight Language。RubyPython,Perlのような軽量なスクリプト言語)との比較で出てくるJavaコードは、「普通こんなコードかかないでしょ」というくらい冗長な場合が多い。 Rubyでコードが簡潔に書ける!ということを表す時にJavaを引き合いに出すのはいいんですけど(引き合いに出す相手としては間違ってないと思います)、Javaのこんな長いコードがRubyではこんなに簡潔に!とか言う時のJavaコードを恐ろしく冗長にして比較するのはそろそろ止めましょうよ。そんなことしても逆に一部では反感を買っちゃうでしょ。そんなことしなくったって、LLはもちろんJavaよりも簡潔に書けるんですから、ひねり技はいりません。そんなことJavaプログラマだって普通に認めてることですから

  • 1