2012-04-17 8 views
34

私は大規模なJavaベースのWebアプリケーションを扱っています。これは過去5年ほど前から構築されています。UIには、オーバーホールが必要です。利用可能なUIツール/ライブラリ/フレームワークを調査しており、dust.jsをテンプレートとして使用しています。正しいUIテンプレートツールの選択 - dust.js?

質問:それは成功した

  1. をされています: が、私はそれのdust.jsと思うのユーザーがどのような聴聞会に興味がありますか?
  2. 使いやすいですか?
  3. 十分に文書化されていますか?
  4. コミュニティのサポートは良好ですか? (ST tagged 'dust.js'上の唯一の6質問!)
  5. Underscoreのテンプレート、Google Closure TemplatesHandlebarsMustacheなどの他のテンプレートツールと比較して長所と短所は何ですか。
  6. MV *構造フレームワークで使用する際に問題がありますか?たとえばBackbone.jsonline book)?

いくつかの背景:

  • なぜ我々はdust.jsに興味がある:LinkedInブログの投稿は、最初にそれに私たちの注目を集めました:

    • Leaving JSPs in the dust: moving LinkedIn to dust.js client-side templates
    • The client-side templating throwdown: mustache, handlebars, dust.js, and more

      2つ目の投稿のうち2番目の質問は質問5に非常にうまく答えますが、LinkedInを除いて、Googleのテンプレートシステムの詳細はほとんど、または人気のある選択肢であることを暗示しています。さらに、この記事では、機能性を拡張し、いつか元のプロジェクトに貢献することを期待していると述べています。彼らがそうするまでは、機能を拡張する必要があるかもしれないと私は懸念しています。

      このように言えば、テンプレートシステムに対するLinkedInの元々の要件は、私たちのもの(下記参照)に非常に近く、彼らは選択する前にいくつかの非常に徹底的な調査を明確に行っています。

  • 当社の要件:

    1. DRY:私たちは、理想的には、我々が選択した場合、サーバ(Javaベース)とクライアント側、または単にクライアント側でテンプレートシステムを使用したいですLinkedInの完全なアプローチ。使いやすい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. jQueryBackbone.js
    6. まあ
+0

これは私が見つけた小ぎれいなテストページです:http://linkedin.github.com/dustjs/test/test.html –

答えて

39

Dust.jsを文書化して喜ん作品ピックアップ良い選択肢です。他のテンプレートフレームワークよりも優れています。なぜなら、データがファイルや文字列などに含まれている必要があるからです。https://github.com/linkedin/dustjsこれは積極的に維持されています。https://github.com/linkedin/dustjs

  1. 成功しましたか?

    はい、私はなど、少なくともLinkedInのは、それを使用しており、また、改善/パッチの貢献知っ

  2. は、それが使いやすいですか?

    私はそれを試してみましたが、それはMustacheまたはHandlebars.jsと同じくらい簡単です。

  3. 十分に文書化されていますか?

    はいhttp://akdubya.github.com/dustjs

  4. コミュニティのサポートは良好ですか? (STタグ付きの「dust.js」の6つの質問のみ)

    MustacheまたはHandlebars.jsを比較している場合、dust.jsには多くのユーザーがいませんが、問題がある場合は投稿してください彼らが間違いなく返答するでしょう。私はそれを見て以来私もそうです:-)

  5. アンダースコアのテンプレート、Google Closure Templates、Handlebars、Mustacheなどの他のテンプレートツールと比べて賛否両論は何ですか?

    ここでdust.jsの使用を検討するときは、是非https://github.com/linkedin/dustjs#readmeを確認してください。

    問題として、MustacheやHandlebars.jsなどの人気のあるものと比べて、dust.jsのユーザーが不足しています。つまり、Google Closureのような他の図書館も同じ問題を抱えています。

    しかし、前述したように、dust.jsは他のフレームワークIMHOに比べて非常にうまく設計されています。

  6. MV *構造フレームワークで使用する際に問題がありますか?たとえばBackbone.js(オンラインブック)ですか?

    他のMVCフレームワークでは使用していませんが、まったく問題にはならないと思います。

希望します。

+0

おかげで、私は私の検索でこのページを逃していた - https://github.com/ LinkedInの/ dustjs –

+0

http://engineering.linkedin.com/frontend/client-side-templating-throwdown-mustache-handlebars-dustjs-and-more –

+0

ペイパルは、クライアントとサーバー側のレンダリングのためにそれを使用しています。 – ontk

6
  1. 私はかなり大きいと確立ニッチIT企業のために今フリーランスのプロジェクトをやっていると、彼らは彼らのHTML5モバイルアプリフレームワークのdust.jsを選択しました。そして、はい、LinkedInは大きく成功した会社です。

  2. 並べ替え本当に難しいことはありませんでしたが、私はそれに慣れる必要がありました。私はJavaでFreemarkerと協力していました。Freemarkerは、内蔵された電源機能がたくさんあるため、かなり使いやすくなっていました。しかし、多くの人がdust.jsを見つけられるかもしれません - それは明確なロジック、非常に軽量な構文を持っています - dust.jsにはたくさんのものが本当に好きです。

  3. Freemarker for Javaの方がはるかに優れていました。 dust.jsのGitHubページは非常に初心者には問題ありませんが、たとえば、すべてのdust.jsフィルタの説明を見つけることができず、Googleで検索する必要がありました。必要です。

  4. コミュニティのサポートはあまり見られませんでしたが、ライブラリは本当に軽量でクリアです。必要な情報をすべて収集するために必要なGoogle検索がいくつかありました。

  5. 他のJSテンプレートツールは使用しませんでした。

  6. 私が第1質問の答えで言及した会社は、dust.jsとjQueryとBackbone.jsの両方を使用する軽量HTML5フレームワークを構築しました。私はそのフレームワークを使用してプロジェクトを行い、jQueryとBackbone.jsの両方の機能にいつでも触れています。何も文句を言うつもりはありません。 dust.jsはBackbone.jsのように軽量で、コーディングスタイルや使用する他のライブラリに多くの制限を課すものではありません。それを使用すると、データをフィードするために使用するJSオブジェクトのいくつかの好みの形があることがわかりますが、慣れるのは簡単です(つまり、ビューに何かのリストが必要な場合は、dust.jsにリスト別々のエンティティを記述する際に同時に自然なJSオブジェクトハッシュではありません)。パフォーマンスについて

一つのこと - に - あなたは「フル」バージョンを使用してアプリケーションを開発し、生産のためにテンプレートをコンパイルすることができますが(イサキはここに役立ちます例のNode.js + dust.js NPMモジュールの使用します) 「コア」バージョンで使用してください。この場合、実際のパフォーマンスを大幅に向上させることができます。すべてのテンプレートをまとめて、それらを小さくすると、必要になるたびにクライアントブラウザがサーバーからテンプレートを取得できなくなります。 "フル"と "コア"は商用/無料ではありません。コアバージョンはテンプレートコンパイラを持たず、プリコンパイル済みのテンプレートで使用されます。

関連する問題