Rails RJS Templates 初體驗

RJS templates 是 Rails 1.1 中的一種新 template,它的開發者 Sam Stephenson 也是 Prototype.js 的作者。不像一般 template 產生 HTML 或 XML,RJS templates 產生 Javascript (based on prototype) code 傳給瀏覽器執行,你可以在 template 中一次修改頁面多個地方,而所有 template 語法皆是用 Ruby 來寫。

要學RJS template,目前最好的文件應該就是這份 Cody Fauser 所寫的 RJS Templates for Rails 了,直接線上買PDF版(也只有PDF版),而且作者會更新,我手上的是 9/26。另外 slash7 提供了一份漂亮圖例 RJS Demystified With Pretty Colors!。RubyInside 則有整理了一份 16 RJS Resources and Tutorials for Rails Programmers

以下是一個簡單的Ajax範例,需要寫的程式碼很少,而且重點是不需要寫 JavaScript。 閱讀全文〈Rails RJS Templates 初體驗〉

Prototype 簡介

Prototype 似乎是目前最紅 javascript framework,作者善用了Javascript物件導向的特性,增強了 Javascript 的功能與開發便利性。在實際看過之後,發現它並不是一套包裝太多的架構(像是動畫特效的東西就不在裡面),也因此也有一些 framework 如 Script.aculo.us 是以 Prototype 為基礎來開發的。當然,還有 Ruby on Rails 也用 prototype 來達成 Ajax 功能。

參考資源

它大概包含了哪些東西呢? 例如有: 

閱讀全文〈Prototype 簡介〉

程序員: Web開發之華山論劍

不知道有沒有人會看程序員,大概從去年開始,幾個電腦書店通路都開始賣這本對岸的雜誌。這一期10月號的程序員雜誌特別企劃,拿 Ruby on Rails、PHP、ASP.NET、Java 來比較一番。

Ruby on Rails

Ruby 語法簡單,物件導向功能強大,但 Rails 還太年輕,效率不夠優化,類別庫不夠完備。

Ruby難入主流的幾個原因 : 1.Ruby比起 PHP 和 VB還是難多了,PHP和VB是便宜貨(甚至沒有命名空間),但卻是事實上Web開發標準。2. Rails太超前了,有時候魔術變多了,就變成魔鬼。太富跳躍性,過於智能,開發人員就難以理解。3.沒有可靠的IDE。4.Ruby 上只有 Rails 這個Web應用方案,缺少競爭。5.企業級應用能力和擴展性未明,除了Rails社群中成功的網站,在其他領域是否也有成功案例。6.缺乏網路提供商支持,99%都支援PHP。

PHP

廣受群眾認可使用,但卻在很多開發人員中評價卻不高。PHP的通俗易懂而沒有挑戰性的概念,PHP寫三年好像也沒什麼好說的,Java學三年確有很大區別,可以講出很多開發架構跟部署問題。缺乏體系的開發架構也讓PHP很難成為企業應用系統的選擇。而很多PHPer開發的隨意性和不負責任,也讓PHP的口碑不高。

LAMP草根組合 ,PHP的問題在物件導向特性不足,在大型專案中容易混亂。不過隨著PHP5加強的物件導向,也越來越適合中大型了,但是卻也與本來簡單通俗的精神背道而馳了。

Java

SSH(Struts+Spring+Hibernate)是目前最廣為接受的組合,但是分析及實作費工不少。

ASP.NET

微軟技術壟斷,在Atlas的幫助下,開發Ajax變的簡單,但是過於依賴的結果,可能缺乏深入了解DOM。對一個框架不能深入了解核心的情況下,是很難投入太多信任的。ASP.NET運行在windows平台,比較適合開發企業ERP等中小型服務。系統本身不夠透明,因此後期的風險會比較高。

如果可以不用Ajax,就不要用Ajax,雖然有很多框架宣稱你可以不用了解Javascript也可以開發出Ajax,但是Javascript是一切的基礎。如果你的團隊沒有比較資深的Javascript開發人員,採納Ajax很多時候是惡夢的開始,你需要不斷的和scripting error奮戰。

Ruby on Rails : 建置與執行

台灣第一本 Ruby on Rails 中文書熱騰騰上市。令人出奇的小本,以這樣的篇幅跟內容編排,我懷疑作者的預設讀者是要給誰念的? 如果是初學Rails且不懂Ruby的人,裡面講的太快,應該會不知所云吧。如果是看過 Agile Web Development with Rails 的人,這本又太簡略了,像是摘要整理。

anyway… 對我來說,沒多久就看完了(當然沒實際練習啦),就當是複習吧。比較有新意的只有Ajax那章,因為Agile Web Development with Rails那本寫Ajax比較少,而這本甚至給了更難的Drap-and-Drop的ajax範例。

站在推廣的角度,我建議(譯者)可以在附錄補個Ruby簡介會不會好一點啊,不然Ruby在台灣應該還蠻不紅的,也還沒有中文書啊。

Ajax 技術手冊

因為有中譯(正確的說,應該是從英文->簡體中文->繁體中文翻過來的)而且比較薄,所以挑了這本先入門隨便翻翻,另一本還有中譯的是 Ajax實戰手冊(厚多了),預計會接著看就是了。

看過了 DOM Scripting,所以大部分的 DOM 操作就不細看了,只關注在XMLHttpRequest 的部份,Server side的範例這本是用 Java Servlet,不熟悉加上不是重點我也只好略著看。

整本書前半大概就介紹完了Ajax本身,給了幾個常見的Ajax使用範例 code(不甚漂亮,有點dirty),後半雜七雜八的介紹一些開發上的事情跟工具,包括文件產生 JSDoc 、Firefox extension(HTML Validator,Checky,DOM Inspector,Web Developer,Greasemonkey XMLHttpRequest)、語法檢查 JSLint、壓縮 HTML/Javascript Cruncher-Compressor 、介紹Javascript的OOP繼承機制、測試框架 JsUnit、除錯工具 Microfost Script Debugger(for IE),Venkan(for Firefox)等。

純手工打造Ajax是不需要的,利用 framework 是必然,本書最後介紹用作者開發的Taconite框架(主要是配合Java Server side)來做 Mac OSX的 Dashboard,我自己因為用 rails 的關係,會比較想了解 prototype 就是了… XD (又跳過好幾頁了) 。

附錄則整理幾招處理跨瀏覽器(尤其是IE)的JavaScript 技巧,跟其他框架介紹。

其他作者推薦的站台: