具体描述
《GAE编程指南》是一种云计算服务,跟其他的同类产品不同,它提供了一种简单的应用程序构建模型,通过这种模型,你可以轻松地构建出能够容纳数百万用户的应用程序。《GAE编程指南》是介绍使用这个强大平台的专家级实践指南。高级工程师Dan sanderson将向你讲述如何设计高可伸缩性应用程序的方法,以及如何使用App Engine的API和可伸缩的服务来实现常见的开发任务。你将会学到有关App Engine的应用程序服务器架构、运行时环境以及可伸缩数据存储区等知识,还可以学到一些应用程序优化方法。
App Engine提供了几乎无限的计算能力,《GAE编程指南》从源代码方面简单明了地阐述了其使用方法。
作者简介
Dan Sanderson是一名技术作者,也是一名软件工程师。他有十多年的Web领域从业经验,服务过的企业有Amazon.com以及Walt Disney InternetGroup等。
目录信息
第1章 GAE简介 ..... 9
运行时环境 .........................................9
静态文件服务器 ..........................................12
数据存储区 ..................................................12
实体和属性...........................................13
查询和索引...........................................13
事务 14
服务 .......16
GAccount .....................................................17
任务队列和计划任务 ...................................17
开发人员工具 ..............................................18
管理控制台 ..................................................19
App Engine暂时还做不到的事情 ................19
使用入门 .....................................................20
第2章 创建一个应用程序 ............................................ 22
安装SDK .....................................................22
安装Python SDK ..................................23
安装Java SDK ......................................27
开发应用程序 ..............................................31
用户偏好模式 .......................................31
开发一个Python应用程序 ....................32
开发一个Java应用程序.........................45
开发控制台...........................................60
注册应用程序 ..............................................62
应用程序的ID和标题 ...........................63
设置域名 ..............................................64
Apps和身份验证 ..................................65
上传应用程序 ..............................................66
管理控制台简介 ..........................................67
第3章 处理Web请求 .................................................. 70
App Engine的架构 .......................................71
对前端进行配置 ..........................................73
配置Python应用程序 ............................73
配置Java应用程序 ................................75
域名 76
应用程序的ID和版本号 ........................77
请求处理器...........................................78
静态文件和资源文件 ............................82
安全连接 ..............................................88
通过GAccount进行授权 .......................91
应用程序是如何运行的 ...............................93
Python运行时环境 ................................93
Java运行时环境 ....................................95
沙盒 95
应用程序缓存 .......................................97
日志 ....................................................100
配额限制 ...................................................104
请求限制 ............................................104
CPU限制 ............................................104
服务限制 ............................................105
部署限制 ............................................106
付费配额 ............................................107
有关资源使用量的头 ..........................109
第4章 数据存储区实体 ............................................. 110
实体、键和属性 ........................................ 111
Python数据存储区API简介 ....................... 112
Java数据存储区API简介 ........................... 115
属性值 . 117
字符串、文本和字节字符串 .............. 119
未设置与空值 .....................................120
多值属性 ............................................120
键和键对象 ................................................121
使用实体 ...................................................123
通过键获取实体 .................................123
查看实体对象 .....................................124
保存实体 ............................................125
删除实体 ............................................126
第5章 数据存储区查询 ............................................. 127
查询和类别 ................................................128
查询结果和键 ............................................128
GQL .....129
Python的查询API ......................................132
Query类 ..............................................133
Python中的GQL .................................134
获取结果 ............................................135
Keys-Only查询 ...................................137
Java的查询API ..........................................138
Java中的Keys-Only查询 .....................140
索引简介 ...................................................140
自动索引和简单查询 .................................142
单个类别上的所有实体 ......................143
单个等式筛选条件 .............................143
大于和小于筛选条件 ..........................144
单个排序规则 .....................................145
针对键的查询 .....................................147
类别无关查询 .....................................148
自定义索引和复杂查询 .............................149
多个排序规则 .....................................149
多个属性上的筛选条件 ......................150
多个等式筛选条件 .............................153
不等于和IN运算符 ....................................156
未设置和不编入索引的属性 ......................157
排序和值类型 ............................................158
查询和多值属性 ........................................159
一个简单的例子 .................................160
Python中的MVP .................................161
MVP和等式筛选条件 .........................161
MVP和不等式筛选条件 .....................163
MVP和排序规则 ................................164
爆炸式索引.........................................166
配置索引 ...................................................166
Python中的索引配置 ..........................167
Java中的索引配置 ..............................168
第6章 数据存储区事务 ............................................. 170
实体和实体组 ............................................172
键、路径和祖先 .................................173
祖先查询 ............................................174
事务中都会发生些什么 .............................175
事务读 ................................................176
Python中的事务 .........................................176
Java中的事务 .............................................178
实体是如何被更新的 .................................182
实体是如何被读取的 .................................185
批量更新 ...................................................185
索引是如何被更新的 .................................186
第7章 用Python进行数据建模 .................................. 188
模型与属性 ................................................189
属性声明 ...................................................190
属性值的类型 .....................................191
属性的验证.........................................192
不编入索引的属性 .............................194
自动值 ................................................194
列表属性 ............................................195
模型和架构的迁移 .............................197
对关系进行建模 ........................................197
一对多关系.........................................200
一对一关系.........................................200
多对多关系.........................................201
模型的继承 ................................................203
查询和多态模型 ........................................204
创建你自己的属性类 .................................206
验证属性值.........................................206
封送值类型.........................................207
自定义默认值 .....................................209
接受参数 ............................................210
第8章 Java持久化API .............................................. 212
设置JPA .....................................................213
实体和键 ...................................................214
实体的属性 ................................................217
嵌入式对象 ................................................219
保存、获取和删除对象 .............................219
JPA中的事务 .............................................221
查询和JPQL ...............................................222
关系 .....226
更多信息 ...................................................231
第9章 内存缓存 . 232
Python的Memcache API ............................234
在Python中设置和获取值 ..................234
设置和获取多个值 .............................235
memcache命名空间 ............................236
缓存过期时间 .....................................237
删除键 ................................................237
memcache计数器 ................................238
缓存统计信息 .....................................239
Java的Memcache API ................................240
第10章 获取URL和Web资源 .................................... 245
在Python中获取URL .................................246
在Java中获取URL .....................................248
Python中的异步请求 .................................250
RPC对象 .............................................252
通过回调函数处理结果 ......................253
第11章 收发电子邮件和即时消息 .............................. 256
启用入站服务 ............................................258
发送电子邮件消息 .....................................259
发件人地址.........................................260
收件人 ................................................262
附件 ....................................................262
在Python中发送电子邮件 ..................263
在Java中发送电子邮件.......................266
接收电子邮件消息 .....................................268
在Python中接收电子邮件 ..................269
在Java中接收电子邮件.......................271
发送XMPP消息 .........................................273
发送聊天邀请 .....................................275
发送聊天消息 .....................................275
检查GTalk用户的状态 ........................277
接收XMPP消息 .........................................278
在Python中接收XMPP消息 ................279
在Java中接收XMPP消息 ....................281
第12章 大批量数据操作和远程访问 .......................... 283
在Python中设置远程API ...........................284
在Java中设置远程API ...............................285
使用Bulk Loader工具 ................................285
安装SQLite .........................................286
备份与恢复.........................................287
上传数据 ............................................288
下载数据 ............................................292
控制Bulk Loader ................................295
使用远程外壳工具 .....................................296
通过脚本使用远程API ..............................297
第13章 任务队列和计划任务 .................................... 299
任务队列 ...................................................300
处理速率和令牌桶 .............................301
任务的要素.........................................302
任务处理器和重试 .............................303
对任务进行测试和管理 ......................304
在Python中使用任务队列 ..................305
在Java中使用任务队列.......................310
事务型的任务入队操作 ......................313
计划任务 ...................................................314
第14章 Web应用程序框架: Django ........................... 318
安装Django ................................................319
创建一个Django项目 .................................320
请求处理器脚本 ........................................321
Django App Engine Helper.........................322
创建一个Django应用程序 .........................325
在Django中使用App Engine模型 ..............327
使用Django的单元测试和Fixture ..............329
使用Django表单 ........................................333
第15章 部署和管理应用程序 .................................... 337
上传应用程序 ............................................338
使用版本 ...................................................339
管理服务配置文件 .....................................341
管理索引 ...................................................341
浏览和下载日志 ........................................343
监控数据存储区 ........................................346
应用程序设置 ............................................346
管理开发人员 ............................................347
配额与付费 ................................................348
获得帮助 ...................................................349
· · · · · · (收起)
读后感
## Introduction * 3 parts: application instances, data storage, scalable services. * Application’s perspective: the app engine provides:1) storage between requests 2) able to distribute traffic among different servers 3) resource(cpu/memory/server) scalabi...
嗯,网上下载的电子版,看完了目录,内容安排的不错,对于有web开发基础的人来说,非常好,推荐! Amazon的评论,也多有赞美之辞, http://www.amazon.com/Programming-Google-App-Engine-Infrastructure/product-reviews/059652272X/ref=dp_top_cm_cr_acr_txt?ie=UTF8&showVi...
嗯,网上下载的电子版,看完了目录,内容安排的不错,对于有web开发基础的人来说,非常好,推荐! Amazon的评论,也多有赞美之辞, http://www.amazon.com/Programming-Google-App-Engine-Infrastructure/product-reviews/059652272X/ref=dp_top_cm_cr_acr_txt?ie=UTF8&showVi...
之前看过原版电子版,后来买了这本翻译版. 真的很不错. 不过对于没有web开发经验的人来说, 其实我是建议先看 charles severance 那本《using google app engine》先。。。
之前看过原版电子版,后来买了这本翻译版. 真的很不错. 不过对于没有web开发经验的人来说, 其实我是建议先看 charles severance 那本《using google app engine》先。。。
用户评价
看到《GAE编程指南》这本书,我的第一反应是它能否为我扫清学习GAE的迷雾。我曾经尝试过自己学习GAE,但常常感到无从下手,尤其是在理解GAE的沙箱模型、部署流程以及其独特的服务集成方面。我迫切需要一本能够循序渐进地引导我入门的书籍,它应该能够清晰地解释GAE的核心概念,然后逐步深入到更复杂的特性。我希望这本书能够提供一些关于如何设计可维护、可扩展的GAE应用架构的指导,例如如何选择合适的数据存储方案,如何进行有效的API设计,以及如何利用GAE的内置服务来构建健壮的后端。此外,关于安全性方面,例如如何防止SQL注入、XSS攻击,以及如何管理用户认证和授权,也是我非常关心的内容。
《GAE编程指南》这个书名立刻勾起了我的好奇心。我一直认为,学习一门新技术,光看官方文档是远远不够的,那往往是冰冷的、理论化的,缺乏实践的指导和经验的沉淀。我更倾向于那种能够“手把手”教你,并且分享一些“独门秘籍”的书籍。想象一下,这本书能够详细地解读GAE的各种服务,比如Datastore、Memcache、Task Queues等等,并且不仅仅是介绍它们的功能,更重要的是讲解它们背后的工作原理,以及在实际开发中如何巧妙地运用它们来达到最佳效果。我希望书中能够提供清晰的代码示例,并且这些示例能够覆盖从简单的“Hello World”到复杂的微服务架构,让我能够逐步建立起对GAE的信心和理解。当然,关于错误处理、调试技巧、以及如何监控和排查问题,也是我非常看重的部分,毕竟在开发过程中,这些是不可避免的难点。
《GAE编程指南》这个书名给我的感觉是,它将是一本能够让我“事半功倍”的学习工具。我一直在寻找能够帮助我快速掌握GAE开发的实战技巧的书籍,而不是那些仅仅停留在理论层面的介绍。我希望这本书能够提供大量的“最佳实践”建议,并且解释为什么这些实践是有效的。我特别期待书中能够包含一些关于如何优化GAE应用性能的深度内容,比如如何有效地利用缓存、如何编写高效的数据库查询、以及如何处理异步任务。我也希望它能涵盖一些关于GAE与其他Google Cloud服务(例如Cloud Storage, Cloud SQL等)集成的场景,让我能够构建更复杂、更强大的应用程序。
这本书的名字叫做《GAE编程指南》,听起来就非常吸引我。我对Google App Engine(GAE)一直很感兴趣,但苦于没有系统性的学习资源。市面上虽然有一些关于GAE的零散资料,但都显得不成体系,不成文章,阅读起来费时费力,而且往往只能触及皮毛,无法深入理解。我希望这本书能够像一本“宝典”一样,将GAE的方方面面都囊括其中,从最基础的概念解释,到进阶的架构设计,再到实用的部署和运维技巧,都能够有详尽的阐述。我尤其期待它能够包含大量真实的案例研究,通过实际项目来讲解如何解决开发过程中遇到的各种挑战,比如如何优化应用的性能,如何处理高并发请求,如何保证数据的安全性和一致性等等。我希望这本书能够教会我如何从零开始构建一个可扩展、高可用、并且成本效益良好的GAE应用,让我在云端开发的世界里游刃有余。
“GAE编程指南”这个书名让我充满期待,我希望它能为我开启一段流畅的GAE开发之旅。我一直觉得,一本好的技术书籍,不仅要教会你“做什么”,更要教会你“为什么这么做”,并且能让你明白其中的权衡和取舍。我希望这本书能够深入剖析GAE的工作机制,帮助我理解其内在的逻辑,从而能够更灵活、更聪明地使用它。我尤其希望能看到书中对于GAE的局限性和最佳实践的讨论,例如在哪些场景下GAE可能不是最佳选择,以及如何规避一些常见的陷阱。此外,关于成本优化、持续集成/持续部署(CI/CD)流程的搭建,以及如何进行性能测试和压力测试,也是我非常看重的内容,因为这些对于真正将应用投入生产环境至关重要。
你敢提到一句GAE是Google而不是“G公司”的服务么,有必要这么和谐?
这本书通篇都没有'google'这个单词,而是全部用'G公司'来代替,这是为神马?
适合初学者,学习一种思想吧
系统学习GAE的好书,数据存储几个章节是精华。翻译也很负责。
系统学习GAE的好书,数据存储几个章节是精华。翻译也很负责。