在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

Lilu:Rails Mockup 驱动开发之道

  • 2007-07-09
  • 本文字数:1187 字

    阅读完需:约 4 分钟

在两年前就有过一场争论,争论的焦点在于Rails 框架及它缺乏内建模板语言的支持,还有是否要为Rails 引入这样的模板语言。直至今天,已经存在有不下五种的模板系统:ERB、 HAML、Liquid、Amrita2 等等。然而所有这些都是将Ruby 语言或是Ruby 的派生语言与HTML 代码混合在一起。 Yurii Rashkovskii 最近引入了一种新的模板系统,称为 Lilu

Lilu 是一种允许保持 Rails 视图不变,使其内部无须含有 ERB 标签侵扰的方法(和工具)。

Lilu 的目标是让被插入在其中(按照 Java 中 Tapestry 的方式)的实际数据与 HTML 完全分离开,使保存并读取纯 HTML 代码更加容易。

Lilu 保证你得到纯粹的 HTML 代码,并使你通过编写指令来使用实际数据更新代码。

Yurii Rashkovskii在挪威奥斯陆的Ruby Tuesday 会议上进行了一次演讲,给出了如下的Lilu 代码示例:

静态XHTML 模仿 app/views/blog/post.html

<ul id="found_users"><br></br> <li id="found_user"><br></br> <h1>John Doe</h1><br></br> </li><br></br></ul><br></br><h4 id="no_matching_users">No matching users found</h4><br></br>同时也给出对应的 Lilu 代码app/views/blog/post.lilu

if @users and !@users.empty?<br></br> populate('#found_user').for(:each,@users) do |user|<br></br> mapping 'h1' => user.name<br></br> end<br></br> remove('#no_matching_users')<br></br>else<br></br> remove('#found_users')<br></br>endRails 创始人 DHH 对一个 HTML 和代码完全解耦的模板语言系统如何处像布局(layouts)和 partils 这样带来生产力的复杂技术持怀疑态度。但 Lilu 也提供对于 partials 的支持。

在 RailsConf07 大会上,Bruce William 在主题演讲 V is for Vexing 中给出了 Rails 模板解决方案的介绍,以及优缺点分析。Lilu 项目也应该被加入到列表之中。优点是 Lilu 将程序代码与 HTML 文档清晰的划分开来,允许通过 HTML 方便的与设计人员进行维护和协作。缺点有:1) 与 ERb 相比性能稍逊,2) 项目还处于早期状态,以及 3) 它不是 Rails 的标准之一。

两年前,David(即 DHH)这样总结到:

对“无编码”模板的追求,让我想起 MDA 阵营对“无编码”程序这个圣杯的找寻。这是一种海市蜃楼式的幻想,也就是和“把玫瑰换个名字”(译注:原文是“a rose by any other name”,语出莎翁《罗密欧与朱丽叶》第二幕第二场的“A rose by any other name would smell as sweet.”朱生豪先生译为:“姓名本来是没有意义的;我们叫做玫瑰的这一种花,要是换了个名字,他的香味还是同样的芬芳。”)如出一辙的演出。 […]

所以,如果你打算尝试一下这种方式,请自便。如果真的可能有一个完全非侵入性的(non-intrusive)解决方案出现,我将会认真思考是否要加入这样的特性。

现在有意思了:随着 Lilu 和 Amrita2 的到来,DHH 这段话是不是还当真呢?

查看英文原文: Rails Mockup Driven Development with Lilu

2007-07-09 00:001327
用户头像

发布了 74 篇内容, 共 15.4 次阅读, 收获喜欢 3 次。

关注

评论

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

2025年全球最富裕城市

财见

MSKE铭文,一次正确的选择,足以改变你一生命运!

MSKE铭文

比特币行情 MSKE铭文 马斯克铭文 比特币铭文

VMware ESXi 8.0U3d macOS Unlocker & OEM BIOS Inspur (浪潮) 定制版

sysin

esxi

【征程 6】工具链VP示例中Cmakelists解读

地平线开发者

算法 自动驾驶; 地平线征程6

Arthas profiler(使用async-profiler对应用采样,生成火焰图)

刘大猫

教育 Arthas 大模型 社会科学 人文学科

镜舟科技亮相 2025 中国移动云智算大会,展示数据湖仓一体创新方案

镜舟科技

人工智能 数据库 数据架构 中国移动 镜舟科技

上千元改一份简历,真的值得吗

Y11

面试 找工作 简历 实习

IBM收购 Hakkoda Inc.,扩展数据专业能力以推动客户的AI转型

财见

HR Path扩大爱尔兰英国业务版图

财见

接入DeepSeek API,超详细

AI时代的一滴水

Python AI API DeepSeek

VMware ESXi 8.0U3d macOS Unlocker & OEM BIOS NVMe 驱动特殊定制版 (集成驱动版)

sysin

esxi

如何使用 Grafana 连接 Easyearch

极限实验室

Grafana easysearch

PIRF430 - Job Interview

Echo!!!

English

从零到一开发 DeepSeek 智能聊天机器人

AI时代的一滴水

Python Chat AI API DeepSeek

通义灵码 2.0 | AI程序员 荣耀登场

六月的雨在InfoQ

通义灵码 通义灵码2.0 AI辅助编程 AI代码助手

Corinex获投资实现规模扩张

财见

全球移动货币业务取得突破

财见

《Operating System Concepts》阅读笔记:p606-p625

codists

操作系统

VMware ESXi 8.0U3d macOS Unlocker & OEM BIOS xFusion (超聚变) 定制版

sysin

esxi

PIRF 429:True or False

Echo!!!

English

a16z 最新报告:AI 数字人应用层即将爆发,或将孕育数十亿美金市场丨 Voice Agent 学习笔记

RTE开发者社区

VMware ESXi 8.0U3d macOS Unlocker & OEM BIOS Lenovo (联想) 定制版

sysin

esxi

ProteinMPNN:基于深度学习的蛋白质序列设计模型

Splendid2025

人工智能、

征程 6 VIO Frame 时间戳介绍

地平线开发者

自动驾驶 算法 地平线征程6

冲破次元壁!初音未来梦幻联名丨华硕ROG DAY暨2025新品发布会

新消费日报

高性能虚拟环境存储解决方案:基于 Xinnor RAID 引擎和 Kioxia PCIe 5.0 驱动器

Sergey Platonov

测试 HPC Performance raid Kiokia

VMware ESXi 8.0U3d macOS Unlocker & OEM BIOS IEIT SYSTEMS (浪潮信息) 定制版

sysin

esxi

户外全彩LED显示屏应具备哪些性能?

Dylan

交通 LED 户外LED显示屏 体育 LED屏幕

《Operating System Concepts》阅读笔记:p626-p628

codists

操作系统

Lilu:Rails Mockup驱动开发之道_Ruby_Sebastien Auvray_InfoQ精选文章