zoukankan      html  css  js  c++  java
  • 使用Google App Engine、Google Closure Library与Clojure编写HTML5应用 狼人:

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

  • 相关阅读:
    异常练习一 throw
    MAP排序
    Java正则表达式应用详解
    java多线程 sleep()和wait()的区别
    面向对象的15、18位中国大陆身份证号码解析、工具
    java学习笔记--this 关键字的理解
    Java六大问题你都懂了吗?
    Java类的声明和访问介绍
    java的五种数据类型解析
    Java集合框架的总结
  • 原文地址:https://www.cnblogs.com/waw/p/2186840.html
Copyright © 2011-2022 走看看