Tokyo Cloud Developers Meetup #02

Tokyo Cloud Developers Meetup #02 : ATND

Kay

松尾貴史さん
App Engine専用のフレームワーク

  • Djangoと同じミドルウェアの仕組み
  • テンプレートエンジン…Jinja2
  • 国際化…babel
  • タイムゾーン…pytz
  • パワフルなdebugger (WerkzeugのdebuggerがApp Engineで動かないのでpatchをあてた)
debugger
  • ハンドルしない例外を検知すると立ち上がる
  • Web画面上にconsoleが出てきて対話的にdebugできる
  • 変数を見たり、メソッドを実行したり
shell tool
質疑応答
  • Kay独自の特徴は?
    • App Engine専用なので無駄なコードがない
    • App Engine上で動作が軽くなるように設計されている。

App Engineが素晴らしいと思う二つの理由

山田大悟さん

  1. 環境構築から解放される
  2. DBスキーマ設計から解放される
    • Model書いておけばいい(GAEがいいっていうかDjangoがいい?)
管理画面
  • Google Spread Sheetを管理画面にする!!
    • ほぼExcelなので大体の人にとって使いやすい
    • &alt=jsonをつければ、Google Spread Sheetの内容をJSONで取れるので開発者としても超楽
リクルートとCloud
  • リクナビ等を支える巨大インフラを自分で持っている
  • 新規に立ち上がる実験サイトは小規模

ただし、実験サイトにメインのサイトから導線を繋げたらトラフィックは爆発する
→その大きすぎるふれ幅に対応するにはCloudはとてもありがたい。


今GAE必要なのは実績を作っていくこと。

Wicket+AppEngine

id:t_yano

基本的な話
  • SessionStoreを標準のものからHttpSessionStore
    • SessionStoreは状態を持つために使っている
    • 標準のSecondLevelSessionStoreはローカルファイルにアクセスするのでGAEでは使えない
    • 本来HttpSessionStoreは保持出来るデータ量がメモリ量に依存するが、GAEの場合はバックエンドのBigTableを使って勝手にスケールしてくれる。
  • deployment modeを変える
JDO&Wicket
  • entityをPageにセットしない
    • Pageにセットしたオブジェクトはシリアライズされてしまうから
    • LoadableDetachableModelを使う
UserService&wicket-auth-role
  • なんか長い名前のinterface(なんとかListener)をimplementsする等
    • 認証情報を持っていない状態でアクセスが来たときに呼ばれる→ログインページに跳ばす処理を実装しる
  • IRoleCheckingStrategy
質疑応答
  • GAEにおけるWicketの売り
    • そもそもJavaレンタルサーバであまり使えないけどGAEだと簡単に使える
      • この話ってPHP以外ほぼ全部に当てはまらない?

Slim3

id:higayasuo

特徴
  • TDD
    • 画面側のテストをJUnitで書ける?
  • HOT reloading
  • Type Safe query
    • 文字列でJDOのqueryを書く→スペルミスでコンパイラに突っ込みを貰えない→いくえふめい
    • Javaのコードでqueryを組み立てる→スペルミスしてもIDEに突っ込んでもらえる→生産性が向上→彼女ができる
Slim3の売り

GAEで使える機能だけで作っているし、GAE上で動作確認しているので、GAE上で動かしやすい。

GAE/J上でRuby on Rails

id:technohippy
GAE/J != Java版GAE
GAE/J == JVM版GAE

Rails Application Template
  • 2.3から追加された機能
  • アプリ生成の後面倒くさいことを色々やってくれるTemplateを作れる

→GAE上でRailsを使う上での面倒くさいことを一通りこれに突っ込んだ。

問題点

Railsのバージョンアップへの対応が大変

質疑応答
  • Railsを使う売りは?
    • Railsを使えること
    • マジメにやるならPython使え
  • サンプルコードとかPython版に比べてJava版の方が倍くらいだけどなんでJava使いたがるのか?
    • ほとんどは考える時間だからコード量はあんまり関係ない
    • 目に見えるコード量は多くてもほとんどctrl+spaceで済むからキータイプ数はむしろ少ないよ

Quercus/PHP on GAE/J

id:moriyoshi

Quercus/PHP
問題
  • 文字コード
  • PHPアプリはRDB前提のものファイルアクセスするものが多いがこれがGAEと相容れない
    • ラッパーを作成中