Here are some of the things I've experienced:
- Trying to use the
deferredlibrary (a way to use push task queues without setting up URL handlers for them) without adding
deferred: onin the
builtinssection of your
app.yamlis a source of pain. Your tasks won't execute, and you'll keep wondering why.
- If you have multiple versions of your app, you need to specify which one gets served as the default. I updated my app from version 1 to version 2, and was surprised that version 1 was still being served.
- Sometimes, being able to download your application source is a boon.
- Don't try to run searches on documents which don't have fields you're specifying. In my case, I changed generation of the documents for full text search to add one field, then updated the app. I began getting cryptic errors and was chasing red herrings until I logged in to the console and found the already indexed documents were missing the fields I was searching on.
- It was a novel experience not being able to run an aggregation query like
SELECT COUNT, because App Engine doesn't support such queries. If you want to count it, build your own counters for it.
- Instead of using per-user namespaces for memcache, it might be a good idea to affix keys with the user ID of the currently logged-in user (for example, for storing query cursors when paging through results).
I'm sure there were other things, but it's almost 5am and I've been up for a couple of hours. Sleepy time.