Spring Experience 3rd day

Java EEのつづき

EJB3.0とSpring2.0の比較表がでて延々と違いを説明してたのですが、あきらかにEJB3.0の方に×が多くて言っていることがわからずともわかった感じです。
っていうかあまりにわからないトークだったので途中の記憶がなかった。

Teracottaの中の人に質問した

Teracottaのセッションに出れないので出店やってる人に聞いてみた。(この人ら昨日まで居なかったんですよね…)

  • DSO,Session,for Springのどれが今後一番重要ですか?
    • まー一概にはいえないけどsessionかなー
  • いつほかのAPサーバとか対応します?
    • JBossは来年の1月くらい、WebSphere6.1は来年の中ごろ。WebLogic9も。(WLS9ってすでに対応してなかったっけ?)

とりあえず英語の手を緩めてくれないのでここらで退散しました。

JMX

XML Hellは人数少ないみたいなのでちょっと出るのはやめて隣のJMXに出ました。150人くらいは入っているかな?

スピーカは最初に会ったSunのEamonnでした。わかんないかなーと思ったんですけど結構わかりました。(しゃべりはあまりよくわからないがスライドがうまいこと書かれているので何やってるかはわかる。)

っていうかJMXって結構簡単にできるのに強力かも。
Java6になったらさらにビルドインされて使いやすくなるのでそこから本格的に使うのがいいかも。

質問しようかと思っていたけれど質問が思い浮かばなかったので退出ー。

間。

またTobyさんと会えたので話をしました。
なんかDeveloperWorksの翻訳を明日までにやんなきゃいけないとのことでこんなところで話してる時間あるのかなぁ。

そのあとビーチバレーとか無理なのでホテルをうろうろしてました。妖精がいるよ!

そしたら明らかに一人で暇そうな人がいたんで話しかけようかと思ってたら気を逃しました。

で、その辺に座ったらおっそろしく眠気が襲ってきて数分寝た。
たぶん今日限界近いです。講演中に寝ないことを祈るばかり。

ごはん

なんと日本食でした!が、画像は面倒なのでやめました(w

白米が恐ろしくまずかったです…(あと蕎麦サラダが間違っている)

お肉は完全に日本と関係ないけどおいしかったです。


隣にベネズエラ系のアメリカ人の人らとアラスカ(だったかな?)の人がいたのでセッションの内容とか話してたりしました。

そしたらEBSとかWebService系の仕事をしてるみたいでMule2.0とか勉強しに来たらしいです。
Mule2.0って日本だとまったく話題に上らないのでどうなんでしょうか。(まぁそもそもWeb Serviceが疑問視されてるんですけど)

あと、Springをどう使ってるかという話ではビッグバン導入じゃなくてユースケースごとに切り替えて導入しているとかの話が聞けました。
CRM作ってるとか言ってました。

そんで日本食だねー日本から来たんだよとかいったらRubyの話になって「JRubyのセッションでた?日本だとRubyってポピュラーなの?」とか聞かれました。そういや昼食でも聞かれた。
そんで私の返答は決まって「あんまり人気ないね〜」なのでした。っていうか人気はあるけどつかってるとこ見たことないし。(うちの会社だからか?)
「でもRailsは人気あるよー」っていったら「知ってる知ってる〜クールだよね」とかいわれました。ギークの間では日本=Rubyらしい。
今回のセッションでもJRubyのやつがあったし。(私は使ったことないし興味もないのでスルーしましたが)

こりゃ勉強しないとダメですね。


しかし惜しいのはいろんなところから開発者が集まって、良い情報がぼろっぼろでるのに聞き取れない英語力のなさかな。
ここで食事とり続ければ世界情勢がすごく簡単にわかりますね。(太りそうだけど)

で、この人らが明日はROOがいいみたいって言ってたので、それに出ようかと思います。

KEY-NOTE CTOからSpringの方向性について


  • Springの思想はsimple object
  • すべてのレイヤを関連モジュールで使いやすくする(LDAP, RCP, WS...)

ところでドメインモデルはすべてのレイヤから参照されてます。
このモデルとか整理必要そう。

ところでCTOはかなりアツく語っていたんですけど申し訳ないこと意識が飛びました。
しかも私一番前の席に座っていたので多分ばれてると思います。

Panel Discussion

Rod Johnsonとかインタフェース21の人が前に座って質問に答えるというやつです。

質問したかったが質問したいことがないという致命的な問題があったので聞くだけの結果に。
用意してくればよかったなー。

Rapid Fire Session: Compass

Compassという検索機能を付与するためのライブラリについて実演を交えて説明。

  • Compassは内部でLuceneを使っている(LuceneJDBCみたいなもので低レベルAPIしかないので、ラップして高機能を提供)
  • ORM、Springと連携して組み込める。
  • あくまでラッパなので、ランキングの使い方とかはLuceneと同じ。

ところで途中でまた意識がなくなりました。
内部的な戦闘の末の結果だと思っていただきたい。

タクシ

タクシで帰ったら24ドルだった。

今日の戦利品

  • BEA トランプ
  • Teracottaノート(S野さんにあげようと思います)

The Spring Experience Live 4th day

さて最終日です。

Meeting Requiments through Acceptance and Stress Testing

Some Integration Tes Classes for Spring

テストケースを係争したツリーが用意されていて、それぞれのテストに使える。
大本はAbstractDependencyInjectionSpringContextTestsなので、そこから子クラスを見ていけばいい。

結合テスト

単体テスト:クラスレベル
結合テスト:クラス組み合わせ
システムテスト:APサーバー内でのテスト?

FIt/FitNesse

FitNessってあんまり有名じゃないよなぁ…知っている人は少なかった。
顧客がテストを書くという考えはあんまないからなー。

Dirrent Fixtures

SpringActionFixtureを使えばインタラクションがエミュレートできる。これってFitNessの通常のやつより有用な気がする。

普通顧客はメソッド名とかパッケージとかわかんないと思うし。ブラウザから操作した結果に対して定義できれば有用。
SpringActionFxitureはseleniumっぽい感じのテストケースになる。

ただし、裏の動作がpressはメソッドを呼ぶとかでホントにエミュレートできてるのか微妙だ。
webレイヤはどうなるの?

StressTest

JMeterの説明がちょっとあった。

っていうかレイヤごとに計りたい要求が例として出ていて、JAMonというツールが紹介された。なんか似たようなの作ったような…

フィルタとAOPを使うのも同じだし。

DAOとSQLの切り分けをどうやるか知りたかったけど、なんかDAOでデータソースを取得するときにmonitorメソッドをかませるらしい。っていうかコレやったらDAOソースに手が入るじゃないですか。つ、使えない…
→って思ってたらDAOじゃなくてデータソースをラップしたプロクシでした。データソースをインジェクションするんじゃなくてそのプロクシをインジェクションする。これなら修正は必要ないですね。

QA
  • FitNessではパッケージやJavaのものが書いてあるので、顧客にとって書くのは難しくないですか?
    • たしかに難しいので、プログラマーが書く。重要なキーポイントはJavaプログラマと顧客が一緒にやれることで、FitNessはHTMLなので顧客は見やすい。

実際に動作するテストというのが重要みたい。Excelからテストケースを作る方法だとExcelから生成したテンプレートに手を入れないと動かないのでその辺?

コンタクトしてねとのことだったんで誰かJAMonのソースを見てコメントしましょう。

その後、どうやって集めた情報を公開しているかとか性能落ちないのかとかsynchronizedしてるのかとか聞いたら「実装はしらん」とか言われました…
まぁ多分3 = 6%は落ちるかもしれないけどねーとのことで。

ちなみにJAMonの読み方は「じゃーもん」だそうです。

うーん。期待と違ってあんまり役に立つ感じではなかったなぁ。

ROO

Ben Alexはなんか動きが面白い人です。

DDD読んでないのに理解できるか不明ですがとりあえず本買いました。日本に帰ったら読もう。

  • Code Generation Consideration

結構耳が痛いぞ
コード生成アプローチを撮っている人は割りと居ました。手を上げたのは10%くらいだけど

Benはデモで自分でコーディングするんではなくてビデオ使いました。
話すことに集中できるのでアリかなぁと

ドメインモデルドリブンなので、コンストラクタ、セッタでAssertします。
通常DTOのバリデーションはWebフォームとかを基本に考えるので、XMlに外だししますがROOはこの辺の思想が違う。
これってお客さんからUI的指摘を受けたときはドメインモデルから変更をかけないといけないのかな?それとも状態を壊さないようにするだけでUI的なものは書かない?そうすると使い分けガイドラインを作らないとチームで仕事できないぞ。


Springは昨日のKEYNOTEでも話したようにドメインモデル駆動なアーキテクチャなので、Hibernateと仲が良いし、DDDとも方向性があっている様子。

ただしドメイン駆動は開発者が全員ooに詳しくないとダメだし技術者が不足している現状で採用するのは難しいのでは?
オブジェクトの再利用性をとっても生産性ってあがるのか聞いていてますます疑問に…

設計の方法もぜんぜん変わるので設計書フォーマットはすべて作り変えになりそうだし。パッケージ開発とかなら少数精鋭で作るのでよさそうだけど。

ごはん。

ハンバーガーでした。今日はアメリカンみたいです。

デザートはブルガリア風プリンと生のベリー類。

ごはん中カナダ人とアメリカ人と話しましたが次はHibernateのセッションに出るらしい。Hibernate人気だなぁ。

アンケートに答えたら本くれるとのことだったので日本から遠いよ!って書いときました。

Trends in Java

席とるまえにちょっとほかも見てみたんですけどHibernate以外悲惨でした。みんな帰っちゃったみたい。

DDD will be an important buzzword in 2007 it's just stating now.

ということでゲロヤバです。(なにそれ)

DDDすげぇ!って言ってた人がいたのでマーキングだけはしといたのですがもう読まないとダメですね…

そういや社内からモデルの作り方の指針ないのかとか言われてましたがDDDの調査も必要?
まぁ調査は必要だろうけどホントに使えるかなぁ。FWと違って性能とか致命的な欠点が見つかりにくそうだから*調査したから*広めるとかなりそうな気がします。

ほかでお勧めはOSGiらしい。

これって結構大掛かりなんでやるには根気要りそう…

dynamic language

ほかの言語のプラットフォームになるらしいです。
基本はgroovy押しなんですけどJRubyがRubyonRailsをJVMに持ってくることもありうるとの話。

もってくる理由が良くわかりませんがJVMがプラットフォーム化したらRubyで書かれたスクリプトもWrite Oneceになりそう。
そうすると新言語開発が簡単になる(プラットフォーム考えなくていいから)のかな?

DSLとか名前しかまだわからないですがその辺関係あり?

AJAX

DOJOが進むっぽい。