Wicket in Action chapter2 読了

Chapter1を読了して以降、ちょっととどこおってたけど、Chapter2途中まで読了。
この章はWicketのアーキテクチャについて説明がされていて、
主要開発者自身が語ってくれている点で、非常に興味深かった。

まずは、リクエストを処理する主要なクラスについての説明。
  • Application アプリケーションの設定等。アプリケーション毎に一つ。
  • Session ユーザー毎に一つ割り当てられる。
  • SessionStore 戻るボタンをサーポートするため、古いセッション情報を保持する。
  • Request
  • Response
  • RequestCycle RequestCycleProcessorへの代理、RequestTargetへの参照。
  • RequestCycleProcessor RequestTargetを決定する。
  • RequestTarget レスポンスの生成法を決定する。
この辺、メーリングリストでも良く話題に上るクラス群なんで、
体系的な説明を読めたのはありがたかった。

また、Wicketを使う上で重要となる以下の概念についても詳しく書かれている
  • Component
  • Model
  • Markup
  • Behavior

これらの概念の大本になっているのが、Viewとロジックの分離。
Chapter1でも紹介されていたWicketの大きな特徴が、この章でもよく語られている。
開発者としても、この部分にかなりこだわっているようで、
それが感じ取れたのは大きな収穫だった。

フレームワークの思想ってのは、使っていくうちに体で覚えていく方法でも身になるかもしれないけど、
開発者自身が記した本で学べたのは非常に効率的だった。
この章だけでも Wicket In Action は買いだと思う。

この他にもDetachable Modelの説明も充実してた。
特にDetachable Modelについては、Hibernateを組み合わせた場合の問題点を切り口に説明があり、
Pro Wicket よりわかりやすく感じた。


Comment

  1. Saxman
    2008-02-24 Sun 03:48

    お久しぶりです。
    お仕事忙しそうですけど、お元気でしょうか?

    現在仕事でStruts2とWicket、自作フレームワークと並べて検討中。
    私自身がC言語→C++→Javaと移ってきたので、Wicketのアーキテクチャには非常に惹かれる物がありますね。
    まだまだ中身を完全に追った訳ではないのですが、各種コンポーネントのハンドリング処理にDelegateが使えたらコンポーネント指向としてもっと便利にできそうな気がします。

    実は、最近C#に浮気中でJavaやC++でDelegateを使えるか!?と社内ブログなんかにも展開してたりします。
    #誰もまともに見てないけど(爆
    まぁ、結論として使えることも分かったので個人的には満足してたり・・・。

  2. tma
    2008-02-24 Sun 19:21

    お久しぶりです。

    業務でWicket使えるとはうらやましい限りです。
    Struts2ってのも興味がわきますねぇ。

    Delegateってのはあんまり知識がなくて、
    「関数ポインタ? メソッド渡し?」
    ぐらいのクエスチョンマーク入りの認識しかありませんが、
    Wicketでは聞いたことないですねぇ。

    っていうかJavaでできるってのも初耳です。
    ちょっと追ってみますわ。

  3. Saxman
    2008-02-25 Mon 22:36

    >業務でWicket使えるとはうらやましい限りです。
    実際の開発に使えている訳ではないのが残念・・・。研究の一環ですヨ。
    サンプル作ったり、ORMは何がいいだろ?と調べたり・・・。

    Wicket1.2から1.3でかなり大きく変化していますね。
    そう言う意味では、なかなか仕事では使いにくいのかもしれませんね。

    >っていうかJavaでできるってのも初耳です。
    一応頑張ればできましたよ(笑
    インターフェースをDelegateの定義と見なし、1メソッドだけを用意しておき、それに指定された任意のクラスまたはインスタンスの任意のメソッドを関連づけするんです。そのインターフェースを実装するのでは無いため、ちょっと難しかったです。

    あ、でも、後で気付いたのですがcglib使えば1発ですね・・・。半年前にInterceptorの仕組みを考えててcglib調べてたのに忘れてました。

    そうそう関係ない話しですが、閉鎖したブログちょくちょく再開し始めました。
    blosxom.cgiを外し、ホスト名でアクセスできると思いますので、またお越しくださいな。

  4. tma
    2008-02-26 Tue 22:48

    なるほど、1クラスに1メソッドなら出来る気がしますね。
    いいヒントいただきました。今度見てみます。

    >Wicket1.2から1.3でかなり大きく変化していますね。
    そうなんですよね。
    1.2のソースを追ってないんで、内部的な変化は良く分かってないんですが、
    使う側としても ServletからFilterになったりと大きく変わってます。

    >閉鎖したブログちょくちょく再開し始めました
    朗報ですね!
    早速お邪魔することにします。