JJUG Cross Community Conference 聴講

404 Not Found にいってきた。一日あいちゃったけどメモメモ。Oracle Coherenceの話はちょっと気になったけどいろいろ忙しかったので午後から参戦。聴くだけだけど。全体的にはとてもクラウド過ぎ、というかGAE(Google App Engine)過ぎて、若干空かし気味。GAE/Jにより加熱した感のあるクラウドの雰囲気をのぞけば「ドメイン」「ドメイン駆動開発」の話が面白いところなんじゃないかと思った。今更面白いとか言ってる時点で出遅れてるかも。

関数型xオブジェクト指向:マルチパラダイム言語Scalaの可能性

Scalaの特徴と簡単なコードの説明。JVM上で動くだけあってJavaで記述されたコードを実行できたり、JavaからScalaで書いたコードを実行できたりするらしい。JavaからScalaのコードを呼べる口を作っておいて、DSLをScalaで書くような使い方をするんだろうか。LLっぽくちょっとしたことを短いコードで表現できるらしいけどやっぱりそこは簡潔な表現に必要な記法を使わないといけないので慣れが必要っぽい。ぱっと見ると、初めてperlの変数を見たときと同じように面を食らう。Scala開発チームは先10年はサポートするといっているし、開発環境サポート(Eclipse plugin)やテストフレームワーク(ScalaTest)があるらしいのでちょっとやりこんでみたくなった。

Agile Modegramming for Cloud

ドメインオブジェクトを元にテキストで表現できるDSLとモデルコンパイラでアプリケーションコードを生成して見ませんか?というModegraming(Modeling + Programing)の話。マインドマップを利用したモデリングを行うっていうのが印象的。ただ、Google App Engine(GAE)に影響されてかひたすらコード生成で終わっていたことが残念。普通にModegramingの説明してほしかったな。

Google App Engine 上でスケールする Web アプリを書くには

GAE上でアプリケーションを作成する際に気をつけるべきことの説明。Pythonベースの話。パフォーマンスをしっかりと考慮するには、やはりGAEの基盤であるBigTableの特性を理解しておくことが必要なんだなぁと痛感。思えば当たり前で、RDBをつつくアプリを作るのにRDBの特性を把握しておかなければならないし。分散データベースなだけに一般的なACIDは無理だったり、データのローカリティを考慮したうえで処理を組む必要があったり。あと、GAEのJava対応を聞いてGAEを調べだした自分からすると、GAE/PyとJの対比があったのでGAE/Jがどんな状態にあるのか概要がわかったのが良かった。

Slim3 for Google App Engine/Java

Slim3をGAE/J対応させた経過を踏まえてGAE/Jでのはまりどころを説明しつつ、Slim3によるGAE/J上でのアプリ開発の説明。GAE/Jの制約がかなり大胆なので、今の段階では余計なことはしない方がいいらしい。StrutsのFileUploadはうまく動かないとか、Wicketでワークファイルを使うセッションは危ないとか、Springのフィールドにつける一部アノテーションが機能しないとか、スレッドやsetContextClassloaderは使えないとか、開発においてmavenがうまく機能しないとか。JDO周りはテストしやすいつくりになっているらしく、無理にDI等工夫しなくてもテストしやすい環境にはなっているらしい。要はシンプルに実装しないとはまるぞ、と。

BOF

気になったのはOpenSocialmixi)とGrails/Groovy(というよりドメイン駆動開発)の話。
OpenSocialに対応しているmixi(とgooホーム)。OpenSocialに対応しているので片方でアプリを作ればほかのOpenSocial対応SNSでも同じアプリが(基本的に)動くよ、と。ただ、今はゴリゴリJavaScriptを書かなければいけないらしい。サンプルコードは確かに長い。これがOpenSocialv0.9で緩和されるらしいがmixiがいつ対応するのか伺うとどうもまだまだ先らしい(v0.8.1対応が今年夏)。mixiアプリ、気にはなるけど今はまだ学習負荷が高そう。
Grails/GroovyのほうはGrailsというよりドメイン駆動開発の話。ドメイン駆動開発を行いやすくする仕組みがGrailsにはあるとのこと。開発手法としてわかりやすい話をしてくださったのでGrailsというよりか開発プロセスの方が気になる。いろいろな言語を知っているわけではなく、今ひとつGrailsの価値を今ひとつ見出せていないけど、考え方としてとても参考になった。ドメイン駆動開発の概要ぐらいは知っておいて損はないと思わされました。ユーザーグループは日本 Grails/Groovy ユーザーグループだそうです。