速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

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

关注

评论

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

基础设施SIG月度动态:龙蜥大讲堂 - 基础设施系列专题分享火热进行中(7~8 月上旬持续分享),敬请关注!

OpenAnolis小助手

基础设施 CVE 龙蜥社区 sig T-one

AntDB数据库受邀参加【ACDU 中国行】,共促行业发展和创新

亚信AntDB数据库

数据库 AntDB AntDB数据库 企业号 8 月 PK 榜

一分钟快速申请 iOS 证书及描述文件工具

雪奈椰子

apple

面部表情识别的伦理问题与挑战

来自四九城儿

报表分析工具瓴羊Quick BI企业适用吗?

夜雨微澜

mac电脑必备:Paste for Mac(剪切板管理工具) v3.1.5直装版

mac

苹果mac Windows软件 Paste 剪切板管理工具

机器学习完整路径

木南曌

机器学习

Navicat Premium 16 for Mac(数据库管理软件)v16.2.5中文版

mac

数据库管理工具 苹果mac Windows软件 Navicat Premium 16

低代码平台怎么选?5大通用要素可以参考

互联网工科生

软件开发 低代码

百度工程师浅析强化学习

百度Geek说

强化学习 ppo 企业号 8 月 PK 榜 RL

Schiaparelli着陆器坠毁事故回溯与思考

DevOps和数字孪生

七月 NFT 行业解读:游戏和音乐 NFT 引领增长,Opepen 掀起热潮

Footprint Analytics

区块链游戏 NFT 链游

JAVA权限管理 助力企业精细化运营

力软低代码开发平台

手把手教你如何挑选适合你的AI编程辅助工具

SoFlu软件机器人

在线一键生成安卓证书keystore 文件

全面揭秘:抖音集团 QUIC 千万 QPS 应用实践

火山引擎边缘云

传输协议 QPS QUIC QUIC协议 火山引擎边缘云

如何使用Asp.net Core实现定时任务,轻松解决任务调度问题!

高端章鱼哥

Web ASP.NET Core 任务调度

面部表情识别:人工智能的新前沿

来自四九城儿

社交软件源码的核心,IM即时通讯技术

山东布谷网络科技

源码 IM

敏捷、DevOps和嵌入式系统测试

DevOps和数字孪生

DevOps 敏捷工具

无需MAC电脑就可以上传ipa文件到AppStore开发者中心

初雪CIoud

教学实训平台,新增批量设置作业小组|ModelWhale 版本更新

ModelWhale

人工智能 数据分析 组织协同 教学实训 在线编程

微服务最佳实践,零改造实现 Spring Cloud & Apache Dubbo 互通

阿里巴巴云原生

Apache 阿里云 云原生 dubbo spring coud

EMQX Enterprise 5.1 正式发布:生产环境就绪的 MQTT over QUIC

EMQ映云科技

QUIC 版本更新

什么是隐私计算?隐私计算技术路线

隐语SecretFlow

大数据 联邦学习 信息安全 数据安全 隐私计算

低代码平台如何提效软件开发?

高端章鱼哥

软件开发 低代码 可视化开发 JNPF

一次网络不通"争吵"引发的思考

阿里巴巴云原生

阿里云 云原生

如何阅读并学习 MegEngine 的代码

MegEngineBot

深度学习 开源框架 MegEngine

解构软件开发中的破窗效应

互联网工科生

敏捷开发 软件开发 破窗效应

【华秋干货铺】DDR电路的PCB布局布线要求

华秋电子

PCB板

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