NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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:00733
用户头像

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

关注

评论

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

架构误区系列11:无聊的架构归一

agnostic

架构治理

【最佳实践】TiDB 同步&迁移实战 (从 MySQL/Oracle/PostgreSQL/MongoDB 到 TiDB )

TiDB 社区干货传送门

从管事到管人

石云升

极客时间 1月月更 技术领导力实战笔记

MySQL:如果被更新字段的新值与旧值相等,SQL会被真正执行吗?

程序员拾山

MySQL

亚信科技AntDB数据库荣获2022年度技术卓越奖

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库

MySQL统计总行数:听说count(*)性能更好,是真的吗

程序员拾山

MySQL

Kratos微服务框架API工程化指南

喵个咪

golang gRPC microservice Kratos 工程化

AirServer2023下载安装教程投屏软件,支持安卓、苹果手机投屏至电脑

茶色酒

AirServer AirServer2023

C#/VB.NET 在 Word 表格中插入或提取图像

在下毛毛雨

C# .net 提取图像 word表格 添加图片

Java高手速成 | 多态性实战

TiAmo

编程语言 多态 Java 开发

英特尔2022技术创新和产品发布盘点:深耕硬核创新,助推数字未来

科技热闻

从员工批量离职中,认识管理的价值

石云升

极客时间 1月月更 技术领导力实战笔记

复习前端:前端安全

devpoint

CSRF xss攻击 前端安全

二十年,三条路:国产CPU的“饱和式救援”

脑极体

cpu

中原银行对金融行业实时数仓的现状与发展趋势思考

Apache Flink

大数据 flink 实时计算

工信部电子标准院:龙蜥操作系统获评“优秀”

OpenAnolis小助手

工信部 开源项目 获奖 龙蜥操作系统 生态构建

【Java应用服务体系】「序章入门」全方位盘点和总结调优技术专题指南

洛神灬殇

Java 技术分析 应用调优 优化指南

2022大数据产业年度“国产化优秀代表厂商”榜单发布,亚信科技AntDB数据库位列其中

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库

FL Studio2024中文完整版电脑编曲软件及配置要求

茶色酒

FL Studio FL Studio 21

2022 年行摄回忆录

穿过生命散发芬芳

摄影 行摄回忆录

tomcat8和tomcat7性能比较

五毛

tomcat 压测分析

2022年的魔力象限领导者,为什么是华为数通?

脑极体

华为

WSL中使用vcpkg安装pcl库出现编译失败的原因

大伟

“信”创未来 | AntDB数据库2022年度总结,请查收!

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库

easyrecovery2024非常好用的磁盘恢复工具

茶色酒

EasyRecovery EasyRecovery15 easyrecovery2023

复习前端:浏览器缓存策略

devpoint

Service Worker 浏览器缓存 缓存技术

Best Wishes「兔」You!

阿里云视频云

2022年终总结-无所吊谓

wood

年终总结 稳定 开心 普通的一年

KaiwuDB 数据服务平台 1.0 产品详解

KaiwuDB

时序数据库 多模数据库 数据服务平台

2022下半年盘点:20+主流数据库重大更新及技术要点汇总

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库

AntDB数据库助力中国移动结算中心建设

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库

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