开发工具 用 haml 呼唤 huacnlee (我已决定使用 SLIM 替代 HAML 和 ERB)

gazeldx · 2011年12月29日 · 最后由 greatghoul 回复于 2015年02月27日 · 14203 次阅读

第一版: 我觉得 haml 还是很好用的,用了 3 个月了,还没有遇到任何无法实现的逻辑。 @huacnlee 不是说这个 haml 不大好用么?我觉得超级棒啊!小弟我可以和你交流下。 还有大家如果需要 haml 高亮,可以用 NetBeans IDE 6.9.1 的 org-netbeans-modules-haml.nbm 插件,Version: 1.0 第二版: OK,兄弟们,我现在 HAML 也不用了,接受大家的建议,今天花了 3 个小时研究 Slim。http://slim-lang.com/docs.html 原先的 haml 可以通过https://github.com/fredwu/haml2slimslim 代码。转为 SLIM 的好处是代码更简洁,连%,if 都省了。 haml 中下面的写法等同: a{:href=>'xxx', :href=>'xxx',:title=>'i Love you'} a(href='xxx' title='i Love you') SLIM 中这样写: a href='xxx' title='i Love you' 括号也不要了。 而且执行速度还更快(我没测试过) 强烈推荐@huacnlee使用 ubuntu Netbeans 下的代码高亮我还要研究下 第三版: ubuntu Netbeans 下 SLIM 高亮已经研究出来了,可以用 HAML 的 org-netbeans-modules-haml.nbm 插件。只要右键.slim 文件后选择 OPEN AS HAML 就可以用 HAML 的高亮了,基本上能用,比纯粹的黑色文本要强多了

我平时也用的 haml,http://codecampo.com 也用的 haml。就像 Test::Unit 和 Rspec,看个人喜好吧

觉得实在没有必要,用 haml 能带来什么?

我有强迫症。。我看见 do 就必须在后面找到 end,不然我不舒服。。。

我只是觉得他和 erb 相比没有任何优势

我喜欢 haml,haml 的优势是,减少了代码量,代码更简洁。

非常喜欢 haml,看起来舒服多了

haml 贴,我必定要来推 Slim 的,嘿嘿嘿 http://slim-lang.com/

#4 楼 @huacnlee 自从我用了 haml 后,腿不酸,脚不疼,不想再用回 erb 了

蓦然发现了 6 楼的身影,哈哈。看来社区吸引不少人啊。

用了將近 2 年了,個人感覺還好,但是同事都不喜歡

haml 除了代码上简洁,在效率上有优势么?没有 IDE 的支持,写 HAML 还是很痛苦,有可能是没有用过 PYTHON 之类的语言吧,呵呵

说起效率嘛。。。。 -__,-

# Linux + Ruby 1.9.2, 1000 iterations

                      user     system      total        real
(1) erb           0.680000   0.000000   0.680000 (  0.810375)
(1) erubis        0.510000   0.000000   0.510000 (  0.547548)
(1) fast erubis   0.530000   0.000000   0.530000 (  0.583134)
(1) slim          4.330000   0.020000   4.350000 (  4.495633)
(1) haml          4.680000   0.020000   4.700000 (  4.747019)
(1) haml ugly     4.530000   0.020000   4.550000 (  4.592425)

(2) erb           0.240000   0.000000   0.240000 (  0.235896)
(2) erubis        0.180000   0.000000   0.180000 (  0.185349)
(2) fast erubis   0.150000   0.000000   0.150000 (  0.154970)
(2) slim          0.050000   0.000000   0.050000 (  0.046685)
(2) haml          0.490000   0.000000   0.490000 (  0.497864)
(2) haml ugly     0.420000   0.000000   0.420000 (  0.428596)

(3) erb           0.030000   0.000000   0.030000 (  0.033979)
(3) erubis        0.030000   0.000000   0.030000 (  0.030705)
(3) fast erubis   0.040000   0.000000   0.040000 (  0.035229)
(3) slim          0.040000   0.000000   0.040000 (  0.036249)
(3) haml          0.160000   0.000000   0.160000 (  0.165024)
(3) haml ugly     0.150000   0.000000   0.150000 (  0.146130)

(4) erb           0.060000   0.000000   0.060000 (  0.059847)
(4) erubis        0.040000   0.000000   0.040000 (  0.040770)
(4) slim          0.040000   0.000000   0.040000 (  0.047389)
(4) haml          0.190000   0.000000   0.190000 (  0.188837)
(4) haml ugly     0.170000   0.000000   0.170000 (  0.175378)

1. Uncached benchmark. Template is parsed every time.
   Activate this benchmark with slow=1.

2. Cached benchmark. Template is parsed before the benchmark.
   The ruby code generated by the template engine might be evaluated every time.
   This benchmark uses the standard API of the template engine.

3. Compiled benchmark. Template is parsed before the benchmark and
   generated ruby code is compiled into a method.
   This is the fastest evaluation strategy because it benchmarks
   pure execution speed of the generated ruby code.

4. Compiled Tilt benchmark. Template is compiled with Tilt, which gives a more
   accurate result of the performance in production mode in frameworks like
   Sinatra, Ramaze and Camping. (Rails still uses its own template
   compilation.)

#11 楼 @inetufo 确实。还是用着 erb 顺手

#12 楼 @fredwu slim 支持 rails 的 auto flushing 吗? haml 只能用老方式

我喜欢 haml,可读性强点,刚开始不习惯,习惯后感觉挺方便,虽然有时得去查文档 XD

netbeans 默认不支持 haml 高亮(但是可以通过插件实现) sublime text 2 默认支持 haml 高亮 rubymine 默认也支持 haml 高亮

#11 楼 @inetufo 沒用過 textmate 吧

#15 楼 @clc3123 貌似不支持。Haml 和 Slim 都需要提前 compile 模板,所以 auto flushing 似乎是没法实现的……

@Victor这个真没用过

#12 楼 @fredwu 效率上没任何优势啊

#21 楼 @inetufo 效率高很多

貌似大家说效率的时候都没说清楚是开发效率还是执行效率啊,所以导致都误解了对方的意思。 #11 楼 @inetufo#22 楼 @Rei 说的是开发效率 #12 楼 @fredwu#21 楼 @inetufo 指的是执行效率

haml +1 强缩进 不用考虑标签结束符 对前端开发挺有好处的

效率的问题,按照松本行弘的说法,在未产生问题之前就不是问题。ruby 考虑的以开发效率为先。haml 写 view 真的好快,如果没有好好的,深入的学习,请不要妄下结论。@huacnlee 说实话,erb 我倒是没有深入去学习,一上手就是 haml,:-) 所以我也不能妄下结论。我只能说,我用 haml 的时候那个爽劲,难以言表。是以前用 java 写 view 时无法表达的。 haml 高亮是很必要的,这是开发效率的保证。我在帖子主题中已经说明我 ubuntu 下 用 NetBeans IDE 6.9.1 的 org-netbeans-modules-haml.nbm 插件,Version: 1.0 。大家网上搜索下载。

#4 楼 @huacnlee 不考虑性能,haml 和 erb 的差异有点像 velocity 和 jsp,前者相对于后者可以减弱"服务端动态页面"里混合语言编程带来的阅读复杂性

#7 楼 @fredwu 对,同支持 Slim 的飘过!

OK,兄弟们,我现在 HAML 也不用了,接受大家的建议,今天花了 3 个小时研究 Slim。http://slim-lang.com/docs.html 原先的 haml 可以通过https://github.com/fredwu/haml2slimslim 代码。转为 SLIM 的好处是代码更简洁,连%,if 都省了。 haml 中下面的写法等同: a{:href=>'xxx', :href=>'xxx',:title=>'i Love you'} a(href='xxx' title='i Love you') SLIM 中这样写: a href='xxx' title='i Love you' 括号也不要了。 而且执行速度还更快(我没测试过) 强烈推荐@huacnlee使用 ubuntu Netbeans 下的代码高亮我还要研究下

我也用 slim 代替了 haml

#30 楼 @cqpx slim is better than haml ?

#31 楼 @makeyou 学 rails 之前我用的 nodejs,我更喜欢 jade 的语法,更简洁。haml over erb 不就是图个简洁嘛 而且根据 slim 网站上的 benchmark,性能比 haml 好

view 用 haml 和 slim 这种和 html 相去太多的 template 的时候,最大的问题其实不在于语法和模版速度本身,而是开发模式,如果页面的模版什么都是咱们自己一锅端,用什么都无所谓,但是如果专门有美工来做页面,而叫美工重新学一个模版引擎是不太可行的情况下,haml 和 slim 这种就比较麻烦,所以我还是选择用 erb

美工还是 HTML,做好了我们程序员集成,用 SLIM 或者 HAML 都是很方便的事情。不会让美工学习 SLIM 的。:-) SLIM 在 NETBEANS 中的高亮我发现可以用 HAML 的 org-netbeans-modules-haml.nbm 插件。只要右键.slim 文件后选择 OPEN AS HAML 就可以用 HAML 的高亮了,基本上能用,比纯粹的黑色文本要强多了

性能差不多,青菜萝卜各有喜欢。人喜欢 ruby 有人喜欢 python~

不好意思挖坟了...sublime text2 中没有 slim 的语法高亮,各位有什么提议吗? 不好意思,我不仅挖坟了,还在没有看自己看完 LZ 的信息就挖了...

如何你在插件里,请别用 slim.

38楼 已删除

#33 楼 @pzgz 除非不得不用,我一般都是类 erb 的模板的,至于爽劲么,emmet 走起。 对于一些经常用的 html 片断,每次 html2haml 和 html2slim 真的很难受。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册