まず始めにブランクを埋める勉強開始

たった数ヶ月しか経っていないのにGAE/Jに関する記事がネット上でも随分増えてて、ありがたい世の中だなーと実感しつつ、どんどん取り残されるなーという恐怖を感じております。やれよ俺。自分のはてぶの「gae」タグも随分増えたので、slim3のDataStore実装が変わったらしいことを機会に、「gae」タグのページを全部開きつつ、勉強しつつ、書いてみつつ、をやってみつつ、エントリ。


このid:higayasuoさんのこのエントリ、納得感大。

なぜ、EntityGroupは複数行で構成されているのにトランザクションが使えるのでしょうか。Bigtableは行単位のトランザクションしかサポートしていないのに。

「???????」

AppEngineは、トランザクション中にEntityがアクセスされると、そのEntityGroupのrootとなるEntityを取得し、トランザクション用に更新します。つまり、rootとなるEntityのatomicな更新が成功すれば、EntityGroup全体のトランザクションは成功、rootの更新に失敗すれば、EntityGroup全体のトランザクションを失敗させます。
複数行を更新する場合でも、トランザクション制御は、rootとなるEntityのトランザクション制御で代用しているわけです。

「なるほどー」重要なんで、もう一度言っとこう「なるほどー」


あとid:shin1ogawaさんのこのエントリとか「なるほどー」もう一度言っとこう「なるほどー」

特にこの辺、

「JDOで色んなRelationshipの方法があるが、結局「EntityGroupはキーだけで構成される」という事がわかります。JDOで保存してlow-level APIで読み出すと、子エンティティを保持するpropertyが親エンティティからは完全に消滅しています。逆に、子エンティティを保持しない状態で low-level APIで保存しても、JDOで読み出すとしっかり子エンティティが親エンティティに保持されています。これらはJDOが裏で色々とやってくれている、という事です。

JDOはいろいろやってくれてるので、私のようなものでは、いろいろ混乱する部分が多かったのは実感として抜群です。所有、非所有、エンティティグループとかいろいろなものが一緒くたになって混乱したのです。私。俺。


あとこちらとか、これは私も参加させていただいた勉強会の資料ですが、このまま書けば基本的な使い方はほぼ体感できる。体感してみました。こちらも素敵。


id:kazunori_279さんのこちらの記事では、とっても分かりやすくインデックスに関しての解説がなされています。僕にとってはインデックスに関する説明ではじめてちゃんと理解できた感があります。仕組みはどうなっているのかというのを理解できているかいないかは、使えることとは違って重要なことです。あまりにも仕組みが分からないと使えない方がかえって幸せなのじゃないかって思うことってありますのでね。


そして、id:bufferingsさんのこちら。全部プリントアウトしてノートに貼付けて書籍化しました。ありがとうございます。まだちゃんと読んでないんですが。活字が好きなんです。有楽町線で読みます。スーツ姿のサラリーマンが大学ノートで満員電車でプログラムの勉強。いいね。