上周,Freiheit.com的CTO Stefan Richter在慕尼黑举办的Google开发者日上谈到了他对于使用HTML 5与Google App Engine编写富Internet应用的愿景。特别地,他认为相对于基于服务器端的页面渲染来说,基于HTML 5来构建客户端组件会更加困难。

在之前的Web开发中,厚重的客户端应用模型都是基于Widget、事件以及事件处理器,这经常会导致复杂的事件处理链,而这一切会造成维护的 梦魇。在两层的客户端应用模型中,人们甚至会直接从事件处理器中访问数据库。借助于服务器端的页面渲染,人们可以创建完整的页面,每次都是一个请求,一个 响应。

Stefan认为借助于HTML 5,“你可以在客户端生成”越来越多的HTML代码。他们所尝试的一种方式就是使用Google Closure Templates。

Closure Templates是个客户端与服务器端的模板系统,你可以使用它动态构建可重用的HTML与UI元素。Closure Templates分别针对JavaScript与Java提供了相应的实现,这样你就可以在服务器端与客户端使用同样的模板了。

他还推荐集中编写事件处理器,只在必要的情况下将状态封装到客户化Widget中。

从后端视角来看,他提出了这样一个问题:“我们真的需要类与对象来传递数据吗?”。他们可以通过Clojure Macros在服务器端生成数据访问代码。同样的数据结构既可以用在客户端,也可以用在服务器端:

我们使用键/值对作为主要的数据结构。我认为这是应用部署的未来。不再有阻抗失配、不再有ORM、不再有数据转换。

Clojure内部使用了键/值对形式。我们可以从Google Datastore上获取到他们,也可以将其发送给Google Datastore,还能以JSON形式将其发送到客户端。

Stefan建议大家尽其所能地尝试使用他们,就按照“键/值”对形式来用,编写没有副作用的功能性JavaScript代码。

在演讲中,他对下一代的RIA给出了一系列的通用原则:

只需要阅读代码就应该理解他们的行为

不要尝试在浏览器中编写窗口风格的桌面应用

准备好在客户端渲染大多数HTML代码

不要以Java形式编写JavaScript代码,忘记你所学的Java吧

提前规划好离线功能(以及同步数据)

你需要想好如何处理并发修改问题,因为用户很有可能会同时修改同一条数据

你需要推送通知

将客户端的异常记录到服务器上

Deadline应用就是根据这些原则创建的。

HTML 5(以及云)会改变RIA的架构与编程模型么?开发者与架构师准备好了么?你的想法如何?

原文链接:Writing HTML5 Applications with Google App Engine, Google Closure Library and Clojure

译文链接:http://www.infoq.com/cn/news/2010/11/html5-gae

相关阅读:

参加IE9开发大赛 赢取现金大奖

微软最顶级平台技术会议PDC10全程视频播放

Microsoft Web平台——优秀项目展示

Windows Phone 7 MSDN开发中心

使用Google App Engine、Google Closure Library与Clojure编写HTML5应用相关推荐

  1. 如何使用Python的Flask和Google App Engine构建网络应用

    by Tristan Ganry 由Tristan Ganry 这是一个小型教程项目,用于为初学者学习Flask,API和Google App Engine. (This is a small tut ...

  2. 在Mac OS X Snow Leopard中设置Google App Engine [失败]

    1. 在这里下载Google App Engine SDK for Python: http://code.google.com/intl/zh-CN/appengine/docs/python/ge ...

  3. web服务r oauth_通过OAuth访问社交网站,第3部分,将Web Twitter客户端部署到Google App Engine...

    存档日期:2019年5月16日 | 首次发布:2010年4月13日 OAuth是一种开放协议,使用户可以在不同的网站之间共享其受保护的资源,而不会冒暴露用户凭据的风险. 本系列的第1部分介绍了OAut ...

  4. java的app构建代码_适用于Java的Google App Engine,第2部分,构建杀手级应用

    java的app构建代码 存档日期:2019年5月14日 | 首次发布:2009年8月11日 像Google App Engine for Java™这样的云平台的全部要点是能够想象,构建和部署可扩展 ...

  5. 闭关纪要17.Google app engine的简单应用

    在上面用了十一篇博客的文章详细的介绍了,Step1账户登录系统之后,从现在开始,继续写闭关纪要,因为Step1账户登录系统也是闭关工作的一部分,因此保留序号,这篇纪要在上次的闭关纪要5.WML,UTF ...

  6. Google App Engine技术架构之Google App Engine架构

    上一篇我们介绍了Google App Engine的基本信息,本篇将首先介绍App Engine的一些设计理念,接着将对App Engine的组成部分等进行介绍. 设计理念 App Engine在设计 ...

  7. Google App Engine 的简易教程(转载)

    源地址:http://peopleyun.com/?p=868 本文将通过一个简单的例子,来介绍大家如何创建一个简单App Engine程序,首先,给大家介绍一下Google App Engine. ...

  8. Google App Engine给我们带来了什么?

    这几天正在研究Google App Engine,感觉很不错. 网址在这里. http://code.google.com/intl/zh-CN/appengine/docs/whatisgoogle ...

  9. 开始您的第一个Google App Engine应用

    很多人想玩 Google App Engine ,最起码可以当个免费的虚拟主机来用.那就先说说费用情况. 目前,GAE 每个帐号可以开通10个应用,每个应用免费配额1G磁盘空间,这样下来就是10G.另 ...

最新文章

  1. 赛迪研究院发布《2018年中国自动驾驶产业发展及投资价值白皮书》!
  2. do{}while(0) 作用
  3. linux系统中离线安装python3.7过程记录
  4. SAP HR模块复制PA30的人员
  5. 源码包编译PHP5.6,源码编译安装php5.6
  6. java和python哪个学习编程_初学编程,选Java还是Python?
  7. mysql字符集变为gbk_MYSQL数据库默认latin1字符集转换为GBK或UTF8
  8. JAVA知识基础(六):抽象
  9. 作者:沈志宏(1977-),男,博士,中国科学院计算机网络信息中心高级工程师...
  10. libwacom9 : Depends: libwacom-common (= 2.2.0-1) but 1.12-1 is to be installed
  11. Set up Ubuntu 12.04 Laptop as WiFi Hotspot (ad-hoc) to Share Wired Internet
  12. CCF业务总部和学术交流中心落户苏州相城
  13. php 表单 sql,PHP表单发布到SQL后没有任何操作
  14. 通过 Bitmap Font Generator 生成 fnt 与 png 文件供 cocos2d-x 中 LabelBMFont 使用达到以图片表现数字
  15. nginx三种负载均衡的方式
  16. IDEA社区版详细安装2022最新版(保姆式)
  17. 时钟同步显示屏(NTP时间显示屏)子母钟系统介绍
  18. 小程序坑录-wx.getLocation接口申请
  19. VLC的windows版本下载
  20. 游戏策划入门(1)——什么样的创意是能够实现的?

热门文章

  1. python获取绝对路径_python3中获取文件当前绝对路径的两种方法
  2. 电脑计算器_手把手教你使用初级会计机考系统计算器!
  3. 2.逆向分析Hello World!程序-上
  4. hdu3415单调队列
  5. 【Android Gradle 插件】Module 目录下 build.gradle 配置文件 ( android 闭包块配置 | AppExtension 扩展类型参考文档 )
  6. 【IOC 控制反转】Android 视图依赖注入 ( 视图依赖注入步骤 | 视图依赖注入代码示例 )
  7. 【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize | 混淆 Obfuscate | 预检 | 混淆文件编写 | 混淆前后对比 )
  8. 【CMake】CMake 引入 ( Android NDK 构建脚本 | CMake 命令手册 )
  9. 【数据挖掘】基于密度的聚类方法 - DBSCAN 方法 ( K-Means 方法缺陷 | 基于密度聚类原理及概念 | ε-邻域 | 核心对象 | 直接密度可达 | 密度可达 | 密度连接 )
  10. 10件开发者和老板都要知道的HTML5的那些事