使用Google App Engine、Google Closure Library与Clojure编写HTML5应用

上周,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开发中心

时间: 2024-09-20 04:17:45

使用Google App Engine、Google Closure Library与Clojure编写HTML5应用的相关文章

Google App Engine SDK v1.5.1发布

Google App Engine 可让您在 Google 的基础架构上运行您的网络应用程序.App Engine 应用程序易于构建和维护,并可根据您的访问量和数据存储需要的增长轻松扩展.使用 Google App Engine,将不再需要维护服务器:您只需上传您的应用程序,它便可立即为您的用户提供服务. 您可以使用 Google 企业应用套件通过自己的域名(例如 http://www.example.com/)提供应用程序.或者,您可以使用 appspot.com 域上的免费域名来为您的应用程

Google App Engine

Google App Engine 是一种让您可以在 Google 的基础架构上运行您的网络应用程序.Google App Engine 应用程序易于构建和维护,并可根据您的访问量和数据存储需要的增长轻松扩展.使用 Google App Engine,将不再需要维护服务器:您只需上传您的应用程序,它便可立即为您的用户提供服务. 简介 您可以使用 Google提供的免费域名(见扩展阅读)为您的应用程序提供服务,也可以使用 Google Apps 从您自己的域为它提供服务.您可以与全世界的人共享您的

Google App Engine v1.5.0发布

Google App Engine 可让您在 Google 的基础架构上运行您的网络应用程序.App Engine 应用程序易于构建和维护,并可根据您的访问量和数据存储需要的增长轻松扩展.使用 Google App Engine,将不再需要维护服务器:您只需上传您的应用程序,它便可立即为您的用户提供服务. 您可以使用 Google 企业应用套件通过自己的域名(例如 http://www.example.com/)提供应用程序.或者,您可以使用 appspot.com 域上的免费域名来为您的应用程

什么是 Google App Engine?

Google App Engine 让您可以在 Google 的基础架构上运行您的网络应用程序.Google App Engine 应用程序易于构建和维护,并可根据您的访问量和数据存储需要的增长轻松扩展.使用 Google App Engine,将不再需要维护服务器:您只需上传您的应用程序,它便可立即为您的用户提供服务. 您可以使用 appspot.com 域上的免费域名为您的应用程序提供服务,也可以使用 Google Apps 从您自己的域为它提供服务.您可以与全世界的人共享您的应用程序,也可

使用 Eclipse 在 Google App Engine 上创建 mashup,第 3 部分: 使用 RESTful Web 服务

使用社会网络可以更轻松地获取并聚合数据,从而创建富有革新精神的新 Web 应用程序.但是,仍然必须处理创建可伸缩 Web 应用程序的所有常见问题.现在,使用 Google App Engine (GAE) 也可以简化工作.使用 GAE,可以不必考虑管理应用服务器池的所有事务,而是集中精力创建优秀的 mashup.本文是共分三部分的系列文章 "使用 Eclipse 在 Google App Engine 上创建 mashup" 的最后一部分,在本文中,将利用并进一步增强在前两部分中构建的

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

很多人想玩 Google App Engine ,最起码可以当个免费的虚拟主机来用.那就先说说费用情况. 目前,GAE 每个帐号可以开通10个应用,每个应用免费配额1G磁盘空间,这样下来就是10G.另外,每个应用每天免费流量配额10G,Request 一百三十万次,数据库存储调用一千万次. 超出这些配额您可以购买,存储空间0.01美元2G(这个不按天算),带宽基本上0.1美元10G左右/每天(这个每天统计一次,超出免费配额部分才收费). 唯一遗憾的是暂时不受理人民币. GAE最早支持 Pytho

在Google App Engine Java版上构建电子书分享网站

简介:"云计算"是目前热门的技术方向,本文从 Google 的云计算平台 App Engine 入手,简单介 绍了 Google 面向 Java 开发人员的云计算平台.从一个实际的电子书分享应用构建出发,讲述了如何在 Google App Engine 平台上构建这个应用程序. "云计算"基本概念的介绍 根据维基百科上的定义,云计算是一种动态易扩展,而且通常是通过互联网提供的虚拟化的资源计算 方式,用户不需要了解云内部的细节,也不必具有云内部的专业知识,或者直接控制

在Google App Engine中使用Struts2框架

"GAE"(Google App Engine)在早些时候发布了Java语言的支持,对广大的Java开发者来说,可以使用自己熟悉的语法来进行开发,是很舒服的一件事情.Java世界中有大量已有的工具和框架,有一些是我们日常工作中就已经熟练使用的.而且广为流行的成熟的,如果能够直接在GAE中使用,将大大提高我们的开发效率. 这几天利用Struts2,在GAE的Java版本支持环境中,写了个简单博客,现在将GAE+Struts2的组合经验,记录下来. 背景介绍 Python是一门有趣的语言,

使用Grails开发Google App Engine应用

前言 Grails 作为 Web 框架的新生力量,已经被越来越多的开发人员所接受.而 Google App Engine(以下简称 GAE)作为云计算的平台,为应用提供了广阔的扩展空间.如何将二者擦出绚丽的火花呢? 本文将借助 Grails 中支持 GAE 的插件 --Grails App Engine(以下简称 GAE 插件),使用 JPA 接口,以一个 ToDo 应用为例,讲述了如何使用 GAE 插件进行 GAE 程序的开发,以及在开发中的注意事项. 本文使用的环境: Grails 1.3