Lilu:Rails Mockup驱动开发之道
在兩年前就有過一場爭論,爭論的焦點在于Rails框架及它缺乏內建模板語言的支持,還有是否要為Rails引入這樣的模板語言。直至今天,已經存在有不下五種的模板系統:ERB、 HAML、Liquid、Amrita2等等。然而所有這些都是將Ruby語言或是Ruby的派生語言與HTML代碼混合在一起。Yurii Rashkovskii最近引入了一種新的模板系統,稱為Lilu。
\u0026#xD;\nLilu是一種允許保持Rails視圖不變,使其內部無須含有ERB標簽侵擾的方法(和工具)。 \u0026#xD;\nLilu的目標是讓被插入在其中(按照Java中Tapestry的方式)的實際數據與HTML完全分離開,使保存并讀取純HTML代碼更加容易。
\u0026#xD;\nLilu保證你得到純粹的HTML代碼,并使你通過編寫指令來使用實際數據更新代碼。 \u0026#xD;\nYurii Rashkovskii在挪威奧斯陸的Ruby Tuesday會議上進行了一次演講,給出了如下的Lilu代碼示例:
\u0026#xD;\n靜態XHTML模仿app/views/blog/post.html
\u0026#xD;\n\u0026lt;ul id=\"found_users\"\u0026gt;\u0026lt;li id=\"found_user\"\u0026gt;
\u0026lt;h1\u0026gt;John Doe\u0026lt;/h1\u0026gt;
\u0026lt;/li\u0026gt;
\u0026lt;/ul\u0026gt;
\u0026lt;h4 id=\"no_matching_users\"\u0026gt;No matching users found\u0026lt;/h4\u0026gt;
\u0026#xD;\n
同時也給出對應的Lilu代碼app/views/blog/post.lilu
\u0026#xD;\nif @users and !@users.empty?populate('#found_user').for(:each,@users) do |user|
mapping 'h1' =\u0026gt; user.name
end
remove('#no_matching_users')
else
remove('#found_users')
end\u0026#xD;\n
Rails創始人DHH對一個HTML和代碼完全解耦的模板語言系統如何處像布局(layouts)和partils這樣帶來生產力的復雜技術持懷疑態度。但Lilu也提供對于partials的支持。
\u0026#xD;\n在RailsConf07大會上,Bruce William在主題演講V is for Vexing中給出了Rails模板解決方案的介紹,以及優缺點分析。Lilu項目也應該被加入到列表之中。優點是Lilu將程序代碼與HTML文檔清晰的劃分開來,允許通過HTML方便的與設計人員進行維護和協作。缺點有:1)與ERb相比性能稍遜,2)項目還處于早期狀態,以及3)它不是Rails的標準之一。
\u0026#xD;\n兩年前,David(即DHH)這樣總結到:
\u0026#xD;\n對“無編碼”模板的追求,讓我想起MDA陣營對“無編碼”程序這個圣杯的找尋。這是一種海市蜃樓式的幻想,也就是和“把玫瑰換個名字”(譯注:原文是“a rose by any other name”,語出莎翁《羅密歐與朱麗葉》第二幕第二場的“A rose by any other name would smell as sweet.”朱生豪先生譯為:“姓名本來是沒有意義的;我們叫做玫瑰的這一種花,要是換了個名字,他的香味還是同樣的芬芳。”)如出一轍的演出。[...]
所以,如果你打算嘗試一下這種方式,請自便。如果真的可能有一個完全非侵入性的(non-intrusive)解決方案出現,我將會認真思考是否要加入這樣的特性。
\u0026#xD;\n現在有意思了:隨著Lilu和Amrita2的到來,DHH這段話是不是還當真呢?
\u0026#xD;\n查看英文原文:Rails Mockup Driven Development with Lilu
總結
以上是生活随笔為你收集整理的Lilu:Rails Mockup驱动开发之道的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 定量/高光谱遥感之——大气校正(二)
- 下一篇: Big Endian与Little En