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

简介: 上周,Freiheit.com的CTO Stefan Richter在慕尼黑举办的Google开发者日上谈到了他对于使用HTML 5与Google App Engine编写富Internet应用的愿景。

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

目录
相关文章
|
4月前
|
编解码 iOS开发 开发者
App上架Apple App Store和Google Play流程
App上架Apple App Store和Google Play流程
123 2
|
1月前
|
机器学习/深度学习 移动开发 自然语言处理
HTML5与神经网络技术的结合有哪些其他应用
HTML5与神经网络技术的结合有哪些其他应用
34 3
|
2月前
|
JavaScript 前端开发 UED
HTML 超链接的多种类型及应用
【10月更文挑战第17天】HTML 超链接类型丰富多样,它们共同构成了网页中不可或缺的导航和交互元素。通过合理地选择和运用这些超链接类型,我们可以为用户创造更加流畅和便捷的浏览体验,提升网站的可用性和吸引力。
70 1
|
2月前
|
移动开发 前端开发 JavaScript
HTML5 新的 Input可以有哪些好玩的应用
HTML5的新输入类型为应用带来了多种创新和互动功能,显著提升了用户体验和界面趣味性。例如,颜色选择器可动态改变网站主题色;滑块控制适用于音量或亮度调节;日期和时间输入便于预约系统的设计;互动式表单结合多种输入类型实现高效的数据收集;猜数字游戏增加用户参与度;实时搜索建议优化网站搜索功能;图像预览功能让用户上传图片前预览效果;密码可见性切换按钮提升表单的可用性;结合用户位置的电话号码输入则能提供附近服务信息。这些应用场景不仅使网站更具吸引力,还增强了用户的互动体验。
|
3月前
|
移动开发 JavaScript 数据管理
HTML5 拖放在游戏中的应用
HTML5的拖放功能在游戏开发中广泛应用,尤其在创建交互式网页游戏时。它支持多种场景,如拖动角色或物品、选择和装备物品、拼图或配对游戏以及自定义界面布局。通过简单的HTML和JavaScript代码,可实现流畅的拖放交互,并提供视觉反馈,增强用户体验。此外,还需考虑设备兼容性和数据管理,确保游戏在不同设备和浏览器上都能良好运行。总之,HTML5拖放功能使网页游戏更生动有趣。
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
解密Google Cloud 全新 PaLM2及创新应用
这篇文章深入解析了Google Cloud推出的PaLM2大语言模型的特点及其在不同行业中的创新应用。
|
3月前
|
移动开发 前端开发 JavaScript
HTML5 Canvas详解及应用
HTML5 Canvas 允许通过 JavaScript 在网页上动态绘制图形、动画等视觉内容。首先在 HTML 中定义 `<canvas>` 元素,并通过 JavaScript 获取画布上下文进行绘制。常见方法包括绘制矩形、路径、圆形和文本,以及处理图像和创建动画效果。适用于游戏开发、数据可视化、图像编辑和动态图形展示等多种应用场景。需要注意性能优化、无状态绘制及自行处理事件等问题。
|
4月前
|
前端开发
酷炫表单,触感未来:HTML与CSS动画的创新应用!
酷炫表单,触感未来:HTML与CSS动画的创新应用!
|
4月前
|
开发工具 Android开发
上架Google Play报错:For new apps, Android App Bundles must be signed with an RSA key.
上架Google Play报错:For new apps, Android App Bundles must be signed with an RSA key.
128 1
|
4月前
|
移动开发 API 开发者
什么是HTML5 History API有哪些应用场景
【8月更文挑战第11天】什么是HTML5 History API有哪些应用场景
61 1