AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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

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

关注

评论

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

软件测试 | Analysis使用基础

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

测试

测试技术的重要性与应用:现状、方法和未来展望

天翼云开发者社区

软件测试 数据测试

千万级规模微服务稳定性技术揭秘:隔离策略

中原银行

微服务 云原生 稳定性治理

限时招募高校学生,带你沉浸式体验HDC.Together 2023

HarmonyOS开发者

HarmonyOS

多线程知识:三个线程如何交替打印ABC循环100次

越长大越悲伤

Java 面试 多线程

华为云田奇:大模型是人工智能的操作系统

新消费日报

天谋科技时序数据库管理系统 IoTDB 入选数据库领域顶级学术会议 ACM SIGMOD

Apache IoTDB

时序数据库 IoTDB Apache IoTDB SIGMOD

开源:老朋友,新棋局

树上有只程序猿

国际开源软件圈著名专家、ASF 基金会董事 Christofer Dutz 全职加入天谋科技!

Apache IoTDB

开源 IoTDB

数智之潮下的移动生态: AI与低代码平台的完美交融!

不在线第一只蜗牛

移动应用 低代码 数智化 AI赋能

低代码开发,改变数字化游戏规则

伤感汤姆布利柏

使用 ChatGPT 辅助程序员进行代码评审 | 社区征文

汪子熙

程序员 AI ChatGPT ChatGPT4 年中技术盘点

聚焦信息技术发展,博睿数据受邀出席产业链供需对接深度行北京站活动

博睿数据

可观测性 产业链 信息技术 智能运维 博睿数据

阿里云蝉联 FaaS 领导者,产品能力获最高分

Serverless Devs

云计算 Serverless

以科技创新驱动高质量发展,天翼云操作系统获国资委权威认证!

天翼云开发者社区

云计算

软件测试 | 如何分析性能测试

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

测试

软件测试 | 如何看Analysis分析图

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

测试

华为云Astro出品《低代码开发者101问》电子书上线

华为云PaaS服务小智

云计算 低代码 华为云

加速你的业务增长:选择香港云主机的六大理由!

一只扑棱蛾子

香港云主机

业界领先生成式AI,基木鱼率先实现客服机器人“真智能”

科技热闻

【玩转 Cloud Studio】- 云编程之旅

CODING DevOps

软件测试/测试开发丨Pytest学习笔记

测试人

Python 程序员 软件测试 pytest

软件测试 | 性能分析的基本原则

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

测试

天谋科技物联网原生时序数据库管理系统 IoTDB 获“可信数据库”双份权威认可!

Apache IoTDB

IoTDB Apache IoTDB 可信数据库大会

华为云CodeArts Build-云端化的编译构建平台

华为云PaaS服务小智

华为云 华为开发者大会2023

OpenTiny7月8日即将正式发布!

OpenTiny社区

开源 Vue 前端 组件库

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