写点什么

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

  • 2010-11-15
  • 本文字数:1024 字

    阅读完需:约 3 分钟

上周,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

2010-11-15 06:542951
用户头像

发布了 88 篇内容, 共 265.0 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

ChatGPT王炸更新!能联网获取新知识,可与5000+个应用交互,网友:太疯狂了

Openlab_cosmoplat

工业互联网 开源社区 智能制造 ChatGPT

软件测试/测试开发丨app自动化测试之Andriod微信小程序的自动化测试

测试人

微信小程序 软件测试 自动化测试 测试开发

【3ds MAX 插件】近期发布的几个小插件,总有一款适合你

Finovy Cloud

插件 3ds Max

强大的克隆备份软件:EaseUS Todo Backup直装激活版

真大的脸盆

Mac Mac 软件 备份软件 克隆工具

开心档之Go 语言环境安装

雪奈椰子

旺链科技荣获“高新技术企业证书”殊荣

旺链科技

区块链 区块链+ 高新技术企业

SRE是什么,与传统运维有什么不同?

不思jo

SRE #运维

网心科技荣获“深圳市自主创新百强中小企业”称号

网心科技

专精特新

九科企业级超级自动化平台引入ChatGPT,新技术助推产品能力全面提升

九科Ninetech

ZBC新一轮流动性收益计划迎来新通缩,APR高达100%

股市老人

Moblink节省开发者时间精力和公司成本

MobTech袤博科技

某头部零售集团的数据云平台“多租户安全”实践 | 奇点云技术分享

奇点云

数据安全 多租户技术 奇点云

熟悉的测试用例设计方法都有哪些?

测吧(北京)科技有限公司

测试

软件缺陷是什么?

测吧(北京)科技有限公司

测试

机器学习算法(四): 基于支持向量机的分类预测

汀丶人工智能

数据挖掘 机器学习 SVM

测试策略与测试手段

测吧(北京)科技有限公司

测试

智慧公厕管理系统哪家好?

光明源智慧厕所

智慧城市

OpenHarmony关系型数据库[1]

白晓明

关系型数据库 OpenHarmony

性能最大提升60%,阿里云第八代企业级实例ECSg8i正式上线

云布道师

阿里云 ECS

ChatGPT编程秀-3:适合面向ChatGPT编程的架构

仝键

JavaScript 架构 java ChatGPT

通信系统综合仿真

timerring

通信系统 通信系统仿真

软件测试 | 白盒的测试方法

测吧(北京)科技有限公司

测试

PCB生产工艺 | 第九道主流程之表面处理

华秋电子

上传iOS应用变得更加容易 - 在Windows上架iOS APP的工具介绍

雪奈椰子

DPU 厂商北中网芯加入龙蜥社区,共建网络通信与安全

OpenAnolis小助手

开源 龙蜥社区 DPU CLA 北中网芯

华为云低代码平台Astro|通过零代码快速搭建打卡小程序

路过的憨憨

软件测试 |全局变量和局部变量有什么区别?

测吧(北京)科技有限公司

测试

开源工具系列6:Grype

HummerCloud

安如泰山 华为云发布制品仓库CodeArts Artifact

路过的憨憨

入选Gartner低代码魔力象限 |『华为云Astro』低调的背后

路过的憨憨

使用Google App Engine、Google Closure Library与Clojure编写HTML 5应用_架构_Jean-Jacques Dubray_InfoQ精选文章