ERB,HAML或苗条:你的建议是哪一个? 为什么? [关闭](erb, haml or sl

2019-06-26 03:57发布

我学习Rails和我所看到的这些模板引擎。 我与他们(仅ERB)没有经验。

但因为我是一个初学者,我真的很困惑。 你建议,为什么哪一个? 厄尔布,Haml的还是修身? 请告诉你的理由更喜欢一个比其他人。 如果您有任何其他建议,请告诉我们。

编辑:我不是在这里寻找一个胜利者。 我只是想听听你的意见他们,他们的语法,执行的速度,等等。

Answer 1:

ERB是好的主要是如果你有一个网页设计师,将在普通HTML工作,不知道或者HAML或渺茫。 这样,他可以写HTML,你可以嵌入红宝石逻辑与适当的标签。

如果您对HTML和红宝石逻辑,或者你的设计师的工作是准备学习新的东西(像HAML)我会去HAML。 这是一个很大的红宝石友好,降低了焦炭的多,很多比ERB更具可读性计数。

例如(来自官方采取HAML网站 ):

在ERB你的观点看起来就像这样:

<div id="profile">
  <div class="left column">
    <div id="date"><%= print_date %></div>
    <div id="address"><%= current_user.address %></div>
  </div>
  <div class="right column">
    <div id="email"><%= current_user.email %></div>
    <div id="bio"><%= current_user.bio %></div>
  </div>
</div>

虽然在HAML它看起来就像这样:

#profile
  .left.column
    #date= print_date
    #address= current_user.address
  .right.column
    #email= current_user.email
    #bio= current_user.bio

很多清洁剂!

至于HAML和SLIM之间的区别 - 我从来没有真正与SLIM工作,但我想这是一个品味的问题 - 看看两种语法,并决定它看起来在你的眼睛好。 我不认为这是这两个(HAML / SLIM)之间的胜者肯定。



Answer 2:

采用了超薄的HAML两个大的优势:

  1. 斯利姆目前比HAML快约八倍。

  2. 修身支持HTTP流,而HAML没有。

  3. 斯利姆拥有更自然的语法: a href="foo.html"



Answer 3:

关闭我的头顶,这是我想出了

ERB:

优点

  • 默认情况下开箱
  • 没有空格依赖
  • 条目的最低势垒(如与HTML来)作为其在洒Ruby代码HTML
  • 大多数IDE的词法分析器默认阅读
  • DHH喜欢它
  • 传统的应用程序很可能还在使用它

缺点

  • 更详细
  • 在助手和看法content_for标签可能失控的快速
  • content_for变量进行嵌套的标签更难,因为该局只返回块中的最后一行。 所以你要追加到一个字符串,然后返回。

ःAanla

优点

  • 更简洁。 没有关闭标签,适合在较小的屏幕
  • 视觉上清洁器结构
  • 已建成佣工(haml_concat,haml_capture)利用在辅助方法HAML
  • 类链接
  • 许多像#为div的或有用的语法糖。 类链接,或:的JavaScript JS标签

缺点

  • 空白依赖这使得一些硬错误,找出在次
  • 复杂的标记通常需要求助于“哈希”的格式。 (虽然实际上,我认为这是一个灵活的人开始了它可能是一个痛苦的一个很好的例子。)
  • 加入宝石(又或许夸张地把这个作为一个反面)
  • 设计者可能有一些麻烦调整
  • 除了一般的空白警告......简单的空格错误如。 制表符和空格缩进的方式,可能会导致页面,在其中生产正常规格/测试不会赶上犯错。 寓意:期待视图测试更需要和可能不使用HAML关键任务的看法,除非你确信你的测试,测试的视图的实际呈现。
  • 慢(低于ERB)
    • 警告:这是我们谈论如果速度是应用程序中的阻塞问题有替代品,以红宝石,例如哈斯克尔Ruby代码


Answer 4:

对我来说,问题归结到你宁愿把%每一个标签或之前| 前文的每一个新的块?

瘦:

 tag(attr= "value")
  | text

ः右旋Aml:

 %tag{attr: "value"}
   text

还有一两件事,以监视为:HAML假设新行(之间的空格去掉HAML空格 ),而苗条不承担任何空间(以修身添加空格这里和这里 )



Answer 5:

https://github.com/scalp42/hamlerbslim -是一个独立的基准,这表明斯利姆和雇员再培训局的赢家,在性能方面(超薄趋于减少HTML输出尺寸过。)

我个人的看法是,总体而言,斯利姆和Haml的会减少很多维护方面的时间(==钱),为您提供有Haml的/修身精明的人的意见后,期待。

如果你没有这些人,ERB肯定是要走的路,因为尽管在世界上最好的愿望,也有很多可用的非常便宜的人谁可以用HTML /厄尔布工作,但发现Haml的/修身完整神秘。

最佳的所有情况下,训练这些人使用超薄或至少他们暴露于它,并保留那些谁的数字“得到它。”



文章来源: erb, haml or slim: which one do you suggest? And why? [closed]