写点什么

使用 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:542939
用户头像

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

关注

评论

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

从头学Java17-Modules模块

烧霞

modules java17

与 TDengine 性能直接相关——3.0 的落盘机制优化及使用原则

爱倒腾的程序员

涛思数据 tdengine 时序数据库

华为云WeLink——助力企业数字化办公降本增效,提升竞争力

轶天下事

避免“一选定终身”,那些从就读到就业的AI真相

脑极体

AI

前端常见的十种布局

EquatorCoco

前端 前端前端框架

聊聊Excel解析:如何处理百万行EXCEL文件? | 京东云技术团队

京东科技开发者

POI 内存优化 企业号 7 月 PK 榜 excel解析

稳定性和高可用如何兼顾,华为云网站高可用解决方案满足多方案需求

轶天下事

给新手产品经理的技术接口文档入门指南

Liam

产品 程序员 接口 API接口文档

微服务架构概览图

wiflish

微服务 微服务架构 架构治理

企业数字化办公,华为云WeLink为何能脱颖而出

轶天下事

穷人版生产力工具,好用得飞起 「GitHub 热点速览」

EquatorCoco

sql git 开源

数字化办公需求激增,华为云桌面解锁全新云办公模式

轶天下事

云上办公时代,华为云会议如何保障企业的开会效率与数据安全?

轶天下事

迭代失败的4个迹象,团队中了几个?快来看看如何解决!

敏捷开发

项目管理 Scrum 迭代 开发人员

Databend v1.2 版本发布!Data + AI

Databend

AntDB数据库将携创新性解决方案亮相2023可信数据库发展大会

亚信AntDB数据库

数据库 AntDB AntDB数据库

自动化回归测试平台 AREX 0.4.0 版本发布

AREX 中文社区

开源 自动化测试 接口测试

网页直播源码知识分享:“直播卫士”,查杀病毒功能在此!

山东布谷科技

软件开发 直播 源码搭建 网页开发 直播源码

华为云桌面正协助企业快速进入云上数字化办公时代

轶天下事

从头学Java17-Lambda表达式

烧霞

Lambda java17

微服务架构中的单一职责原则:构建高内聚、低耦合的服务

2756

微服务 微服务架构 单一职责

安全是企业数字化的基石,华为云WeLink如何构建数字化办公护盾

轶天下事

云会议成为企业高频服务,华为云会议为何成为众多企业的选择?

轶天下事

内卷时代如何上云,华为云Web及移动App上云又有何亮点?

YG科技

大模型之Huggingface初体验

程序员架构进阶

Transformer 大模型 7月日更 7月月更 huggingface

视频会议进入云时代,为何企业需要华为云会议

轶天下事

互联网高可用架构探讨 | 京东云技术团队

京东科技开发者

高可用 架构设计 硬件架构 网络架构 企业号 7 月 PK 榜

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