GoogleAppEngineで動くミニブログシステム書きました

tightbellというAppEngine for Javaで動くミニブログシステムを書きました。コードラボのサンプルとPlayFrameworkのチュートリアルを足してちょっとだけスパイスかけたようなシステムです。ソースを眺めたりローカルで動かしてみて、煮るなり焼くなりして楽しんでみてください。
以上、えーと、詳しくはwikiを参照のこと :)

。。。ではここに書く意味もないので、作った動機など。

その1:コードラボ御礼
楽しかったコードラボの成果物を形にしておかないといかんと思ったのがそもそもの動機です。が、割と1月の週末はまとまった時間がとれず、気づけば約1ヶ月経ってますのであまりインパクトが。。。まあ、いいんです。公開したことに意味があるのです。

その2:AppEngineお勉強 -> play & sienaお勉強
はじめは、AppEngineに特化したStruts的コントローラの薄いやつを書いてblogger.comのテンプレと同じものが使えればいいなーなどと思っていたんですが、DAOとか考えるとやっぱり何か既存のもので楽をしようと色々見ていたら play frameworkがなかなかおもしろそうなんで試してみたんです。もちろんこれから主流になるであろう slim3 でも良かったんですけどね。

さておき、playの一番の(?)売りはCRUDが自動で作れるんで楽してうまーというつもりだったんですが、GAEだとJPAじゃなくてSienaという別のAPIを使わなきゃいかんと判明し。。。
一瞬SienaCRUD書いてやろうかとも思ったんですが、それは手段と目的が入れ替わるバッドノウハウだろおいこらと思いとどまり、がりがり管理画面を自前で作る羽目になりました。
僕は何が嫌いって管理画面を手動で作るのがすごく嫌いなので(面倒なことは嫌いなのです)、この辺でモチベーションが下がります。。。。

まあ、数日いじっていてなんとかplayのvalidateとSienaのAPIにも慣れてきたので、それっぽく関連をつけたりしてBlogシステムになりました。


その他、フレームワークの感想などをつらつらと。

playのほうは、なんだか「JavaでRails」的に煽られていますが、そういう書き方はどうなんだろう。

staticメソッドでがりがり書いていくあたり正直「なんじゃこりゃ」な世界ですが、まあ書いたものがすぐブラウザで確認できるのは快適なことこの上ない。これとGAEのスキーマレスなDataStore + Sienaの素直なAPIが提供してくれる楽さ加減は、Webアプリ初期のDBも無くファイルにストアしながらCGIやらPHPやらを書いていた頃を懐かしく思い出しました。
ただ、本番サーバにアップしてみて初めてわかりましたが、これspinup時間が結構かかるかも。実行時にかなり動的にクラス生成するっぽいですからね。。。

さて、眠くなってきたのでひとまずこの辺で。


あ!最後にもうひとつ、tightbellという名前の思いつきを忘れる前にメモ。
思いつき1:ぐぐっても出てこない名前にしたかった
思いつき2:僕はアウトドア用品のモンベル(mont-bell)が大好き。だからベルを使いたい。
思いつき3:ダイビングベル(例えばこんなの)にはかわいい名前が必要だと思った。あんなに質実剛健なスタイル(たぶんこの辺からtightを連想)だけど水中ではとってもいい音がする。
思いつき4:アムロもブライト艦長もロンドベル隊を率いてたし。全然関係ないけど。


#この間モンベルのサイト不正アクセスされちゃって大変みたいだけど。。。僕のクレジットカード情報も流出したかな。



何かありましたらtwitter/ブログ/tightbellへのコメントなどなど、お待ちしております。

ああしまったー、コメント投稿されてもメールが飛んでこないよ。。。
というわけでまだまだ足りない機能はいっぱいありますが、誰かの参考になれば幸いです。