AppEngineの45分入門資料を作る時にもらったアドバイス

1
shin1ogawa @shin1ogawa

#appengine 技術者向け入門資料、概要〜全サービスの紹介を書いて、それを45分でしゃべれる内容に絞るとスカスカになる…。サービスはDatastore/memcache/TQ&ScheduledTaskに絞るのが正解っぽいな…。

2010-02-17 01:45:29
Suguru ARAKAWA @ashigeru

@shin1ogawa クエリをちょっと説明しようと思うとそれだけで持ってかれますね…

2010-02-17 01:51:05
shin1ogawa @shin1ogawa

@ashigeru そーなんすよ。今から触ろうとする技術者を対象に…って考えると、JDOに隠されてしまうデータストアの基本部分をやるのが最優先ですよねー。一部サービスを削ってデータストアに力を入れることにします。ApiProxyも削ろうかな…。

2010-02-17 01:58:38
Suguru ARAKAWA @ashigeru

@shin1ogawa むしろ、データストアを使わないAppEngineとかも面白いかもですね。ってApiProxyてことはテスト重視ですか。

2010-02-17 02:00:05
shin1ogawa @shin1ogawa

@ashigeru データストアの説明をしなかったら、入門者がJDOで入門したときにデータストアの基本的な仕組みを見失ってしまうのを見過ごす、という事になってしまいますね。それは避けたいw 大概の人がはまってるぽいし。

2010-02-17 02:06:21
shin1ogawa @shin1ogawa

@ashigeru ApiProxyはプラットフォームの仕組みとして少し出している程度なんですけどね。サービスの実行はApiProxyを経由してRPCで裏と通信する…とか。そこは大して踏み込まないんですけど、今は削るスライドをちょっとでも探すと言う迷宮に入ってるだけですw

2010-02-17 02:07:55
Suguru ARAKAWA @ashigeru

@shin1ogawa クエリもsingle property indexでmulti value propertyなしなら15分くらいでいける…かも。トランザクションというかEGはいろいろ難しいw

2010-02-17 02:08:02
shin1ogawa @shin1ogawa

@ashigeru データストア以前に、GAEってこんなモノです!から、こんな事に使えそうです!スケールします!とかもあるw 去年の夏にぬ社でプレゼンした時は90分コースで「全体の概要」を説明したしな…。その時の資料で十分語れるしそれを削って…という方針がまずかった。

2010-02-17 02:12:16
萩原崇之 @takayuki_h

@shin1ogawa ですね。私もPython版の入門エントリ書いて予想以上に巨大化しているのに驚きました。きちんとした説明をしようと思ったらとんでもないことになりますもん

2010-02-17 02:12:23
Suguru ARAKAWA @ashigeru

@shin1ogawa URLFetch + Datastore + Mailくらいな感じですかね。TQが難しい線ですが…

2010-02-17 02:15:29
shin1ogawa @shin1ogawa

@takayuki_h インデックスの仕組みとか、スキャンの仕組みとか、そういう所は案外見落としてしまいがちですからねぇ。

2010-02-17 02:16:51
shin1ogawa @shin1ogawa

@ashigeru URLFetchとMailなんですか、以外だなぁ。自分はTaskQueueとMemcacheを残すつもりでした。XMPPとImageとAccountを削ると言うのはashigeru先生も同じっぽいから、安心して削除ですな…。

2010-02-17 02:18:29
shin1ogawa @shin1ogawa

よし、今の資料はさくっと捨てて、もう一度構成し直そう。

2010-02-17 02:19:47
vori003 @vori003

個人的にはURLFetchやMailは無くてもGAEでサービス作れるけどTQは無いとつらいなぁ。京都のはTQやるのかなぁ。 RT @ashigeru: @shin1ogawa URLFetch + Datastore + Mailくらいな感じですかね。TQが難しい線ですが…

2010-02-17 02:26:07
Suguru ARAKAWA @ashigeru

@shin1ogawa TQは非常に有効ですが、getting startedという意味ではなかなか難しいんですよね。まずはrequest/responseのスタイルが重要じゃないかなという意味の3点でした

2010-02-17 02:27:45
shin1ogawa @shin1ogawa

@ashigeru @vori003 なるほど、ご意見ありがとうございます、それぞれ意見が違っておもしろいですねぇ。vori003さんがTaskQueue押すのはかなり想定通りw ashigeruさんの方も、そういう理由ならちょっと理解できますた。

2010-02-17 02:31:55
Suguru ARAKAWA @ashigeru

@shin1ogawa なんか簡単で面白げな仮想サービスを一つ考えて、それの要素技術の説明的なのがいい気がします。選ぶサービスによって @vori003 さんの組み合わせか、別の組み合わせになるか、180度変わりそうw

2010-02-17 02:36:46
shin1ogawa @shin1ogawa

@ashigeru コードラボはその方向にしております>仮想サービス、それに必要な技術をステップバイステップ

2010-02-17 03:02:59
あおうさ @bluerabbit777jp

@shin1ogawa ApiProxyはとっかかりに出されると難しいと思いますよ。Datastoreとindexに絞った方がいいかも?indexも内部構造はすっ飛ばして、こんなクエリはコンポジットインデックスが必要ですよを並べる感じで。

2010-02-17 07:57:15
shin1ogawa @shin1ogawa

@bluerabbit777jp ApiProxy難しいかな?単に、「サービスAPIは、ほぼ必ずApiProxyというProxyを経由してバックグランドのサービス処理ノード群とRPC通信をします」くらいなんですよね。ただ、概要としては必要ないかも。

2010-02-17 10:15:12
shin1ogawa @shin1ogawa

@bluerabbit777jp あとよくよく考えると、インデクスも細かい話は必要ないかも?と思ってます。「インデックスを使ったスキャン」って事を説明すれば、コンポジットインデックスとか、複数のソートは適用できないとかってのは、わざわざ言うまでもなく当然の話なんですよねー。

2010-02-17 10:18:29
shin1ogawa @shin1ogawa

@bufferings データストアで90分は結構詳しく説明できますねぃ

2010-02-17 10:19:04
Suguru ARAKAWA @ashigeru

@shin1ogawa 聴講者にもよりますが、初学者ならsingle property indexだけでいいんじゃないかと思います。とりあえずこれはできるよ、くらいの感じ

2010-02-17 10:47:50
shin1ogawa @shin1ogawa

@ashigeru 今のトコそんな風に考えてます。インデックスを使ったスキャンだけ…という事の強調と、その仕組の理解は重要という事を強調して、がっつり触るときには必ずそこを学習してね、と促すカンジです。

2010-02-17 10:52:35
Suguru ARAKAWA @ashigeru

@shin1ogawa わたしもインデックスは最初と最後を指定して丸ごと引っこ抜いてくるだけ、っていうのを理解してからは簡単でした。composite indexのequality filterだけは理解してないとしっくりこなかったです

2010-02-17 11:11:02