select正确的UI模板工具 – dust.js?

我在一个基于Java的大型Web应用程序上工作,这个应用程序在过去5年左右的时间里已经build立起来了 – 用户界面需要重新整理/重新编写。 我们正在研究可用的用户界面工具/库/框架,并已经遇到了dust.js作为模板选项。

问题:我有兴趣听到dust.js的用户在想什么:

  1. 它成功了吗?
  2. 这个容易用吗?
  3. 有足够的文件logging吗?
  4. 社区支持好吗? ( ST标签上的“dust.js”只有6个问题!)
  5. 与其他模板工具(如Underscore的模板, Googleclosures模板 , 把手和小胡子)相比,有什么优点和缺点。
  6. 使用MV *结构框架,例如Backbone.js ( 在线书籍 )有没有什么问题?

一些背景:

  • 为什么我们对dust.js感兴趣:以下的LinkedIn博客文章首先引起了我们的关注:

    • 把JSP留在尘土中:将LinkedIn移动到dust.js客户端模板
    • 客户端模板化:胡子,把手,dust.js等等

      这两篇文章中的第二篇非常好地回答了问题5,但是来自LinkedIn的观点很less有谷歌的结果详细说明了模板系统,或者暗示它是一个stream行的select。 另外,这个post提到他们已经扩展了function,并希望有一天能够为原来的项目做出贡献。 我担心,直到他们这样做,我们可能还需要扩展function。

      说到这一点,LinkedIn对模板系统的原始要求与我们非常接近(见下文),他们在select之前已经做了一些非常彻底的调查。

  • 我们的要求:

    1. DRY :如果我们selectLinkedIn的完整方法,我们理想的是希望在服务器(基于Java)和客户端使用模板系统,或者只使用客户端模板系统; Instead of using a JSP, GSP, or ERB to assemble a page server side and send back HTML, we have the server send back just the dynamic data as JSON and have the page assembled in the browser using a static client-side template served from a CDN"
    2. 完全国际化
    3. 良好的社区支持
    4. 足够容易使用/拿起
    5. 用jQuery和Backbone.js高兴地工作
    6. 有据可查

Dust.js是一个不错的select。 这比其他一些模板框架更好,因为它不会限制数据应该在文件或string中等。

也正在积极维护https://github.com/linkedin/dustjs

  1. 它成功了吗?

    是的,我知道至lessLinkedIn正在使用它,也有助于改进/补丁等。

  2. 这个容易用吗?

    我尝试过使用它,就像胡子或Handlebars.js一样简单。

  3. 有足够的文件logging吗?

    http://akdubya.github.com/dustjs

  4. 社区支持好吗? (ST标签上的“dust.js”只有6个问题!)

    如果您正在比较Moustache或Handlebars.js,dust.js的用户数量不多,但我相信如果您有任何问题并将其发布在LinkedIn repo上,他们肯定会作出回应。 我也会因为我在看:-)

  5. 与其他模板工具(如Underscore的模板,Googleclosures模板,把手和小胡子)相比,有什么优点和缺点。

    至于专业人士,你可以检查什么时候应该考虑使用dust.js在这里https://github.com/linkedin/dustjs#readme

    至于缺点,dust.js的使用者不够,比较stream行的,比如Mustache或Handlebars.js。 也就是说,像Google Closure这样的其他图书馆也会遇到同样的问题。

    但就像我之前提到的,与其他框架恕我直言相比,dust.jsdevise得非常好。

  6. 使用MV *结构框架有什么问题,例如Backbone.js(在线书籍)?

    我没有使用过其他的MVC框架,但我不认为这应该是一个问题。

希望有所帮助。

  1. 我现在正在做一个自由职业项目,为一个相当大的,已经build立的利基IT公司,他们select了dust.js作为他们的HTML5移动应用程序框架。 是的,LinkedIn是一家成功的大公司。

  2. 有点。 没有什么困难,但我需要习惯它。 我曾经在Java上使用过Freemarker,因为有很多内置的电源特性,所以Freemarker看起来好用多了。 然而,很多人可能会发现dust.js很好 – 它有明确的逻辑,非常轻量级的语法 – dust.js中有很多东西真的很喜欢。

  3. Freemarker for Java的logging要好得多。 dust.js的GitHub页面对于初学者来说是非常好的,但是,例如,我找不到所有的dust.jsfilter的描述,需要在Google上search – 但是,search很容易为我提供信息I需要。

  4. 没有看到太多的社区支持,但图书馆是真正轻量级和清晰的 – 几个谷歌search是所有我需要收集所有必要的信息。

  5. 没有使用其他的JS模板工具。

  6. 我在第一个问题的答案中提到的公司已经构build了一个轻量级的HTML5框架,使用了jQuery和Backbone.js。 我正在使用该框架为他们做项目,并一直攻击jQuery和Backbone.jsfunction – 没有什么可抱怨的。 dust.js有点像Backbone.js – 轻量级,并没有对你的编码风格或其他库使用的限制。 使用它,你会看到有一些JS对象的最佳forms,你用它来提供它的数据,但它很容易习惯(我的意思是,如果你需要列表中的东西在视图中,最好提供与列表dust.js而不是JS对象哈希,同时在描述单独的实体时是自然的)。

关于性能的一件事 – 你可以开发你的应用程序“完整”版本,然后编译你的模板进行生产(例如使用node.js + dust.js npm模块 – grunt在这里可以使用)与“核心”版本一起使用。 在这种情况下,您可以在现实世界的性能上得到相当大的提升 – 将所有模板放在一起,缩小它们将使客户端浏览器在每次需要时从服务器获取模板。 “完整”和“核心”不是关于商业/免费 – 核心版本没有模板编译器,并且与预编译模板一起使用。