大厂Data+Agent 秘籍:腾讯/阿里/字节解析如何提升数据分析智能。 了解详情
写点什么

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

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

关注

评论

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

AI-Compass宝藏资源库:构建最全面的AI学习与实践生态,服务AI全群体

汀丶人工智能

人工智能

CST的TLM算法仿真5G毫米波阵列天线及手机

思茂信息

cst电磁仿真 CST软件 CST Studio Suite

刷爆朋友圈,AlphaGPT在法律ai圈子火了,案件仅需3分钟搞定

科技汇

AI产品经理必懂的3个大模型微调指标

阿星AI工作室

AI 大模型 微调 AI产品经理

大数据-41 Redis 类型集合(2) bitmap geohash Z阶曲线 Base32

武子康

Java redis 大数据 缓存 分布式

XR 黑客松 48 小时极限开发挑战本周开启丨社区来稿

声网

AI-Compass宝藏资源库

汀丶人工智能

人工智能

DApp开发的技术难点

北京木奇移动技术有限公司

dapp开发 区块链开发 软件外包公司

等保测评常见问题与应对策略

等保测评

AWS RDS PostgreSQL可观测性最佳实践

观测云

数据库

AI赋能英语背单词App的技术方案

北京木奇移动技术有限公司

软件外包公司 AI英语学习 AI背单词

Amazon Q in QuickSight 实战:利用自然语言快速生成数据报表与洞察

亚马逊云科技 (Amazon Web Services)

DAPP开发的性能优化

北京木奇移动技术有限公司

dapp开发 区块链开发 软件外包公司

渣运公司心头好:“充电便宜跑得远,豪沃TX新能源自卸车巴适得板!”

科技热闻

高德开放平台携手阿里云,面向开发者推出地图服务产品MCP Server

高德开放平台

阿里云 地图服务 MCP

如果你想做好生产管理,那么这篇MES 攻略你一定不能错过!

积木链小链

智能制造 mes 生产管理

WebGL开发数字孪生项目的流程

北京木奇移动技术有限公司

数字孪生 软件外包公司 webgl开发

烟草公司×中烟创新 | 同频共振,共赴数字征程

中烟创新

挖掘数据价值,构建数据驱动型财务规划

智达方通

数字化转型 数据驱动 全面预算管理 财务规划 企业运营

Golang基础笔记十一之日期与时间处理

Hunter熊

golang 定时器 时间戳 计时器 time

国泰海通证券、海通期货携手非凸科技,共探期现市场与AI交易深度融合

非凸科技

WebGL数字孪生项目的技术方案

北京木奇移动技术有限公司

数字孪生 软件外包公司 webgl开发

iCourt“AI先锋计划”入所协助律所团队,提升法律领域AI技术竞争力

科技汇

从零开始学 Dify:搭建你的第一个 LLM 应用平台

测试人

黑龙江等保测评2025新政策

等保测评

NL2SQL 再创佳绩!阿里云论文中选 SIGMOD 2025

阿里云大数据AI技术

人工智能 深度学习 云计算 大数据 阿里云

HarmonyOS DevEco Studio 小技巧 - 鸿蒙单向数据流

谢道韫

透明LED显示屏:重塑建筑美学

Dylan

LED LED display 全彩LED显示屏 led显示屏厂家 LED屏幕

稳居全闪一体机市场TOP5 焱融存储推理方案广获市场认可

焱融科技

全闪存储 软件定义存储 大模型推理 焱融存储 IDC报告

【LazyLLM全面教程(图文版)】新系列来袭!今天学,明天别人追着喊你大佬!

商汤万象开发者

AI 多模态 agent LLM

StarRocks Community Monthly Newsletter (Jun)

StarRocks

数据库 数据湖 存算分离 StarRocks 物化视图

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