ndbについて、ほとんど何も知らないのに、なんとく格好が良いから使い始めてしまっているのですが、翻訳したり軽く使ったりしている中で、なんとなく中身が見えてきました。
標準のdbモジュールとの差異は、主に以下の3つです。
- 自動的なキャッシュ機能による処理の高速化
- プロパティの整理(構造化されたプロパティの使用等)
- 非同期処理の連鎖や並列実行
各APIは だいたいdbと一緒か上位互換みたいですが、ところどころ違います。
イッシーの目についているのは、以下です。
- key_name廃止。かわりにエンティティ作成時にidの値を指定できるようになっている
- インスタンス変数でパブリック扱いだった変数がプライベート扱いに変更されている
- WTFormsのmodelform()は、現状では使えない
- DBのPropertyに使えるclassが整理されています。
- 削除されたクラス :
ByteStringProperty
PostalAddressProperty
PhoneNumberProperty
EmailProperty
IMProperty
LinkProperty
CategoryProperty
RatingProperty
ReferenceProperty
SelfReferenceProperty
blobstore.BlobReferenceProperty
ListProperty
StringListProperty
追加されたクラス:
- Structured Properties
LocalStructuredProperty
JsonProperty
PickleProperty
GenericProperty
ComputedProperty
【個人的な結論
】
既存のプログラムをdbモジュールからndbモジュールに置き換えるのは、無理ではないが楽でもない。パフォーマンス的に問題を抱えているのでなければ、dbモジュールのままで良い。
新規に作るプログラムであっても、無理にndbを使う必要はない。ライブラリ
が完全に対応していなかったりするし、実例も少ない。特にGAE初級者は手を出さないほうが良い。
パフォーマンス狂、かっこいいもの好き、新しいもの好き、の人が、新しくアプリケーションを作る場合は、使ってみると良い、かも。
※イッシーは新しいもの好きなので、これからも ndb 使ってみます。
0 件のコメント:
コメントを投稿