最近我一直在使用Haml,并且非常喜欢看起来很简洁的代码...作为一名开发人员,我也不太担心设计师能否使用或更改它...我们是一个小团队。
话虽如此,我们开始着手一个项目,相信将会产生相当大的流量(谁不想呢?)。我担心有关Haml的某些问题我还不知道。erb能做到的事情,haml能做吗?随着项目的发展,haml会对其产生负面影响吗?还有其他需要考虑的事情吗?
最后...... Haml与erubis在速度上有何比较? 我看到它现在据说击败了erb和eruby...
谢谢!
最近我一直在使用Haml,并且非常喜欢看起来很简洁的代码...作为一名开发人员,我也不太担心设计师能否使用或更改它...我们是一个小团队。
话虽如此,我们开始着手一个项目,相信将会产生相当大的流量(谁不想呢?)。我担心有关Haml的某些问题我还不知道。erb能做到的事情,haml能做吗?随着项目的发展,haml会对其产生负面影响吗?还有其他需要考虑的事情吗?
最后...... Haml与erubis在速度上有何比较? 我看到它现在据说击败了erb和eruby...
谢谢!
Haml非常出色。我没有看到任何最新的性能数据,但是现在它与erb相比几乎不相上下。如果你打开丑陋模式(这会防止漂亮的缩进),我认为它可能比erb更快。我们每天使用Haml处理280万个页面。
在Haml源代码树中有一个基准测试器: http://github.com/nex3/haml/tree/master/test
更新于2009年11月
Nathan(Haml的主要开发者)在他的博客上发布了一些Haml 2.2基准测试数据。您可以在那里查看具体数字,但简而言之:
您可以通过在初始化程序或环境文件中放置Haml :: Template :: options [:ugly] = true
来启用丑陋模式。请注意,丑陋模式并不是真正丑陋的 - 生成的HTML实际上比ERB更漂亮 - 只是没有漂亮的缩进。
我喜欢HAML,因为它是一个很好的工具,可以轻松地编写结构化的HTML代码,并且通常使用起来非常愉快。但这与根据网站流量选择工具几乎没有任何关系。
如果您担心网站流量,您应该担心如何正确地使用缓存。然后,您需要应用一般网络应用程序性能原理 - 结果是您将获得超快的页面加载响应速度。这正是高流量网站所需要的。
下面列出了两个有关如何提高网站性能的演示文稿:
我所知道的学习如何正确使用Rails缓存的最佳方法是:
我认为这完全是个人偏好和可维护性的问题。对我来说,Haml 使模板更易于阅读和理解,并且性能非常可接受。最终,模板语言不太可能是需要优化的地方--更有可能是数据库查询、视图或对象缓存等。
然而,在使用 ERb 模板的情况下,如果您使用 erubis,您将免费获得更好的性能。
如果没有动态模板的需求,我个人会推荐使用预编译模板 erubis。
这样你的最大瓶颈将受到 Ruby 解析速度的限制。
我可能会设置一个小型 cron 作业,仅监视更改的源模板并在更改时自动编译它们,不使用时可以关闭。
编译一次,多次使用。
哦,如果你真的很关心速度,Tenjin 也值得一看(与 erubis 的创建者相同)。
好的,每次发布 Haml 性能都在不断提高。目前的表现是否令人满意?这取决于您(我倾向于说“是”,但您应该根据自己的需求做出选择)。如果您喜欢模板和它们所提供的可读性,则性能下降(无论多么微不足道)实际上应该是您决策的最终因素。
除了使用 Haml,您还应该考虑与之配合使用的另一种工具:make_resourceful,这是由 Haml 的维护者 Nathan Weizenbaum 开发的另一个 gem,可以简化 Rails 应用程序中的许多 RESTful 事项。
如果您有关于 Haml(和 m_r)的更多具体问题,我相信 Nathan 很乐意回答。您可以通过 Jabber/XMPP 和电子邮件联系他。他的联系信息可以在 这里 找到。