写点什么

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

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

关注

评论

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

泪洒阿里,面试惜败闭关2月金九银十再战Alibaba!

钟奕礼

Java 编程 架构 后端 java面试

字节前端二面高频面试题

loveX001

JavaScript 前端

LED显示屏有哪些让你无法拒绝的优点

Dylan

LED显示屏 户外LED显示屏

5000页?一份字节跳动Java面试全解手册发布!瞬间登顶各大搜索栏

钟奕礼

Java 编程 架构 后端 java面试

干货 | APP自动化Android之属性获取与断言

霍格沃兹测试开发学社

干货 | Chrome 浏览器+Postman还能这样做接口测试 ?

霍格沃兹测试开发学社

GitHub永远的神!“阿里爸爸”终于总结出15W字Java源码真题手册

钟奕礼

Java 编程 架构 java面试 技术宅

神器 SpringDoc 横空出世!最适合 SpringBoot 的API文档工具来了

Java快了!

SP【ring

面试以前上司,能力一般,不想给他通过,但他卑微哀求,怎么办?

钟奕礼

Java 编程 架构 面试 后端

不下载软件,可以把电脑本地文件快速传到远端服务器里吗?

行云管家

服务器 云端 远程 本地

严禁外传,字节跳动2022秋招Java岗位架构师面试题(暂定版)发布

钟奕礼

Java 编程 程序员 架构 java面试

运维去大公司好还是小公司好?你怎么看?

行云管家

运维 IT IT运维

干货 | H5性能分析实战来啦~

霍格沃兹测试开发学社

字节架构师离职后,熬夜整理55W字Java面试手册,逆风翻盘进阿里

钟奕礼

Java 编程 架构 后端 java面试

真的强!来自扫地僧总结的39W字上千道Java一线大厂面试题手册,成功助我拿下蚂蚁金服offer!

钟奕礼

Java 编程 架构 后端 java面试

干货 | Docker 还可以搭建Web服务器nginx ?这么宝藏的吗?

霍格沃兹测试开发学社

Chrome已实现对H.265/HEVC的硬解支持

微帧Visionular

袋鼠云产品功能更新报告01期丨用诚心倾听您的需求

袋鼠云数栈

ChunJun Meetup演讲分享 | 基于袋鼠云开源框架的数仓一体化建设探索

袋鼠云数栈

工赋开发者社区 | Transformers如何用于遥感?阿联酋MBZUAI最新《Transformers遥感处理》综述,涵盖60+种ViT遥感方法

工赋开发者社区

Java 序列化10倍性能优化对比测试

FunTester

耗时半年,堪称奇迹!阿里架构师整合出258W字Java全栈面试题

钟奕礼

Java 编程 程序员 架构 java面试

历经70+场面试,我发现了大厂面试的bug,并总结其中心得

钟奕礼

Java 编程 架构 java面试

开源公开课丨ChengYing安装原理剖析

袋鼠云数栈

数字藏品:为什么这么火爆,那么多人购买?

开源直播系统源码

区块链+ NFT 数字藏品 数字藏品开发 数字藏品系统

直播回顾|容器如何提升应用的稳定性?(附PPT下载)

BoCloud博云

云计算 容器 云原生

实战 | 电商业务性能测试(二): Jmeter 参数化功能实现注册登录的数据驱动

霍格沃兹测试开发学社

HiveServer2 内存泄漏问题定位与优化方案

Java-fenn

Java Java 面试 #java

字节码增强技术之 Java Agent 入门

Java快了!

java;

大数据和人工智能离不开云计算,他们之间有什么关系?

Finovy Cloud

人工智能 云计算 大数据

真的香!这份《Java面试题库大全》在Github一夜爆火后直接被各大厂要求封杀!

钟奕礼

Java 编程 架构 java面试 技术宅

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