web-dev-qa-db-ja.com

適切なUIテンプレート作成ツールを選択する-dust.js?

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

質問:dust.js のユーザーがどのようなことを考えているか聞きたいです:

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

背景:

  • dust.jsに興味があるのはなぜですか:次の LinkedIn ブログ投稿が最初に注目を集めました。

    • JSPをほこりに残す:LinkedInをdust.jsクライアント側テンプレートに移動する
    • クライアント側のテンプレートスローダウン:moustache、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. よく文書化
36
Ed .

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

また、積極的にメンテナンスされています 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にはそれほど多くのユーザーがいませんが、問題があり、LinkedInリポジトリに投稿すれば、確実に応答するはずです。私もそれを見ているので、私もします:-)

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

    プロの場合は、dust-jsの使用を検討するタイミングをここで確認できます https://github.com/linkedin/dustjs#readme

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

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

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

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

お役に立てば幸いです。

41
g13n
  1. 私は現在、非常に大きく確立されたニッチなIT企業のためにフリーランスプロジェクトを行っており、彼らはHTML5モバイルアプリフレームワークにdust.jsを選択しています。そしてもちろん、LinkedInは大成功を収めている企業です。

  2. ちょっと。難しいことは何もありませんが、慣れる必要がありました。私はJavaでFreemarkerを操作しました-Freemarkerは、多くの組み込みの電源機能により、かなり使いやすいように見えました。しかし、多くの場合、dust.jsが見つかるかもしれませんニース-明確なロジックがあります、非常に軽量な構文-dust.jsには、多くの人にとって本当に好きなものがあります。

  3. JavaのFreemarkerははるかによく文書化されています。dust.jsのGitHubページは初心者には非常に問題ありませんが、たとえば、そこにあるすべてのdust.jsフィルターの説明が見つからなかったため、 Googleで検索してみてください。ただし、その検索で必要な情報を簡単に入手できました。

  4. コミュニティのサポートはあまり見られませんでしたが、ライブラリは非常に軽量で明確です。必要な情報をすべて収集するには、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が役立ちます)、「コア」バージョンで使用できます。この場合、実際のパフォーマンスを大幅に向上させることができます。すべてのテンプレートをまとめて縮小すると、クライアントブラウザは、必要になるたびにサーバーからテンプレートをフェッチする必要がなくなります。 「フル」と「コア」は商用/無料ではありません-コアバージョンにはテンプレートコンパイラがなく、コンパイル済みのテンプレートで使用されます。

7
Anton Mochalin