36

私は大規模な Java ベースの Web アプリケーションに取り組んでいます。これは過去 5 年ほどかけて構築されたものです。UI にはオーバーホールが必要であり、大幅に書き直す必要があります。使用可能な UI ツール/ライブラリ/フレームワークを調査しており、テンプレートのオプションとしてDust.jsを見つけました。

質問: Dust.jsの ユーザーがどう思うか興味があります。

  1. それは成功しましたか?
  2. 使いやすいですか?
  3. 十分に文書化されていますか?
  4. コミュニティサポートは良いですか?( 「dust.js」とタグ付けされた STに関する 6 つの質問のみ!)
  5. Underscoreのテンプレート、Google Closure TemplatesHandlebarsMustacheなどの他のテンプレート ツールと比較した場合の長所と短所は何ですか。
  6. Backbone.js (オンライン ブック)などの MV* 構造フレームワークで使用する際に問題はありますか?

背景:

  • Dust.js に関心を持っている理由:以下のLinkedInブログ投稿が最初に私たちの注意を引きました。

    • JSP を置き去りにする: LinkedIn を Dust.js クライアント側テンプレートに移行する
    • クライアント側テンプレートのスローダウン: mustache、handlebars、dust.js など

      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. jQueryとBackbone.jsで問題なく動作します
    6. 十分に文書化されています
4

2 に答える 2

41

Dust.js は良いオプションです。データがファイルや文字列などにある必要がないため、他のテンプレート フレームワークよりも優れています。

また、積極的にメンテナンスされています https://github.com/linkedin/dustjs

  1. それは成功しましたか?

    はい、少なくともLinkedInがそれを使用しており、改善/パッチなどにも貢献していることは知っています.

  2. 使いやすいですか?

    使ってみたところ、Mustache や Handlebars.js と同じくらい簡単です。

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

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

  4. コミュニティサポートは良いですか?(「dust.js」とタグ付けされた ST に関する 6 つの質問のみ!)

    Mustache と Handlebars.js を比較すると、dust.js のユーザー数は多くありませんが、問題が発生して LinkedIn リポジトリに投稿すれば、間違いなく対応してくれると思います。私もそれを見ているのでそうします:-)

  5. Underscore のテンプレート、Google Closure Templates、Handlebars、Mustache などの他のテンプレート ツールと比較した場合の長所と短所は何ですか。

    長所については、 https: //github.com/linkedin/dustjs#readme で、dust.js の使用をいつ検討すべきかを確認できます。

    短所としては、Mustache や Handlebars.js などの人気のあるものと比較して、dust.js のユーザーが十分ではありません。とはいえ、Google Closure などの他のライブラリも同じ問題を抱えています。

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

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

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

それが役立つことを願っています。

于 2012-04-17T16:25:14.937 に答える
7
  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. コミュニティのサポートはあまり見られませんでしたが、ライブラリは非常に軽量で明確です。必要な情報をすべて収集するために必要なのは、2回のGoogle検索だけでした。

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

  6. 最初の質問への回答で私が言及した会社は、dust.jsとjQueryおよびBackbone.jsの両方を使用して軽量のHTML5フレームワークを構築しました。私はそのフレームワークを使用して彼らのためにプロジェクトを行っており、jQueryとBackbone.jsの両方の機能を常に利用しています-何も文句を言うことはありません。dust.jsはBackbone.jsに少し似ています。軽量で、コーディングスタイルや使用する他のライブラリに大きな制限を課すことはありません。これを使用すると、データをフィードするために使用するJSオブジェクトの好ましい形式があることがわかりますが、慣れるのは簡単です(つまり、ビューに何かのリストが必要な場合は、dust.jsにリストをフィードする方がよいでしょう。同時に、個別のエンティティを記述するのに自然なJSオブジェクトハッシュではありません)。

パフォーマンスに関する1つのこと-「フル」バージョンでアプリを開発してから、本番用にテンプレートをコンパイルして(たとえば、node.js + dust.js npmモジュールを使用-ここではgruntが役立ちます)、「コア」バージョンで使用できます。この場合、実際のパフォーマンスを大幅に向上させることができます。すべてのテンプレートをまとめて縮小すると、クライアントブラウザーは、必要になるたびにサーバーからテンプレートをフェッチする必要がなくなります。「フル」と「コア」は商用/無料ではありません。コアバージョンにはテンプレートコンパイラがなく、コンパイル済みのテンプレートで使用されます。

于 2013-03-03T10:09:02.170 に答える