使用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開發中心
總結
以上是生活随笔為你收集整理的使用Google App Engine、Google Closure Library与Clojure编写HTML5应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [小结]硬盘分区的知识与意义
- 下一篇: 美军称五角大楼遭网络袭击 2.4万份敏感