Python派も読んでおきたいGAE本「Slim3 on Google App Engine for Java」

Google App Engine(GAE)ではPythonJavaに同等の機能(API)が用意されており、両方の言語を行ったり来たりしつつ併用して開発(もちろん別プロジェクト)する人にはそれほど違和感なく使えて便利だ。但し、どちらの言語を使うにせよ、DataStoreの仕様に関してはGAE特有の制約条件があるので少々厄介だ。従来のRDBのような感覚で使おうとすると、様々な制約によりいろいろ窮屈な思いをするはめになる。例えば、クエリに関する制約条件として、下記が示されている。

・Text値とBlob値はインデックスされない(検索できない)
・プロパティを持たないエンティティに一致するフィルタはない
・不等式フィルタが使用できるのは 1 つのプロパティに限られる

http://code.google.com/intl/ja/appengine/docs/java/datastore/queriesandindexes.html

何故このような厳しい制限がわざわざ付いているのか、以前から不思議で仕方なかったのだけど、書籍「Slim3 on Google App Engine for Java」を読んでその謎は氷解した。

この本では、まずDataStoreの仕組みが詳しく解説されており、内部的にどのような処理が行われているのか明らかにした上で、クエリで出来ること・出来ないことが具体例と共に示されている。このDataStoreの背後の仕様を知って、ようやく「不等式フィルタが使用できるのは 1 つのプロパティに限られる」という制約の意味を理解することができた。Googleは別に意地悪をして制約を課しているのではなく、データ保存の性質としてそのような処理が出来ないのだ。

書籍の前半では、そんなDataStoreの仕組みや低レベルAPIによる機能の検証が行われ、肝心のSlim3に関する説明は後半を過ぎたあたりでようやく登場してくる。軽量でしかもタイプセーフなコードを書けるSlim3の機能はもちろん魅力的だけど、DataStoreの本質を知るという意味でこの書籍の価値は大きいと思う。そんな訳で、GAEを開発するJava派の人はもちろんのこと、Python派の開発者も読んでおく価値がある本だと思っている。

オープンソース徹底活用Slim3onGoogleAppEngineforJava

オープンソース徹底活用Slim3onGoogleAppEngineforJava



関連