2012-04-17 8 views
34

मैं एक बड़े जावा आधारित वेब एप्लिकेशन पर काम करता हूं, यह पिछले 5 या इतने सालों से बनाया गया है - यूआई को एक ओवरहाल/बड़े पैमाने पर फिर से लिखा जाना चाहिए। हम उपयोग करने के लिए उपलब्ध यूआई टूल्स/लाइब्रेरी/फ्रेमवर्क की जांच कर रहे हैं और dust.js में टेम्पलेटिंग के विकल्प के रूप में आए हैं।सही यूआई टेम्पलेटिंग टूल का चयन - dust.js?

सवाल:

  1. यह सफल रहा है: मैं सुनवाई क्या इसके बारे में dust.js थिंक के उपयोगकर्ताओं में दिलचस्पी रखता हूँ?
  2. क्या इसका उपयोग करना आसान है?
  3. क्या यह पर्याप्त रूप से प्रलेखित है?
  4. क्या समुदाय समर्थन अच्छा है? (केवल ST tagged 'dust.js' पर 6 सवाल!)
  5. क्या पक्ष और विपक्ष हैं जब इस तरह के Underscore के templating, Google Closure Templates, Handlebars और Mustache के रूप में अन्य templating उपकरणों की तुलना में।
  6. क्या एमवी * संरचना ढांचे के साथ इसका उपयोग करने में कोई समस्या है, उदाहरण के लिए Backbone.js (online 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

      दो पदों में से दूसरा दूसरा प्रश्न 5 का जवाब देता है, लेकिन लिंक्डइन के सहयोगी, Google से बहुत कम परिणाम टेम्पलेटिंग सिस्टम का विवरण देते हैं या यह दर्शाते हैं कि यह एक लोकप्रिय विकल्प है। इसके अलावा, पोस्ट का उल्लेख है कि उन्होंने कार्यक्षमता बढ़ा दी है और एक दिन मूल परियोजना में योगदान करने की उम्मीद है। मुझे चिंता है कि जब तक वे ऐसा नहीं करते हैं, हमें कार्यक्षमता बढ़ाने की भी आवश्यकता हो सकती है।

      यह कहकर, एक टेम्पलेटिंग सिस्टम के लिए लिंक्डइन की मूल आवश्यकताएं हमारे करीब हैं (नीचे देखें) और उन्होंने स्पष्ट रूप से चुनने से पहले कुछ बहुत अच्छी जांच की है।

  • हमारी आवश्यकताओं:

    1. DRY: हम आदर्श अगर हम के लिए चुनते सर्वर (जावा आधारित) और क्लाइंट-साइड, या सिर्फ ग्राहक पक्ष पर templating प्रणाली का उपयोग करना चाहते लिंक्डइन का पूरा दृष्टिकोण; 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. पर्याप्तता आसान/jQuery साथ
    5. वर्क्स खुशी से लेने और Backbone.js
    6. खैर प्रलेखित
+0

यह एक साफ छोटा परीक्षण पृष्ठ है जो मैंने पाया: http://linkedin.github.com/dustjs/test/test.html –

उत्तर

39

Dust.js एक अच्छा विकल्प है। यह कुछ अन्य टेम्पलेटिंग ढांचे की तुलना में बेहतर है क्योंकि यह किसी फ़ाइल में या स्ट्रिंग में नहीं होना चाहिए।

इसके अलावा इसे https://github.com/linkedin/dustjs सक्रिय रूप से बनाए रखा जा रहा है।

  1. क्या यह सफल रहा है?

    हाँ, मुझे पता है कम से कम लिंक्डइन यह उपयोग कर रहा है और यह भी सुधार/पैच योगदान, आदि

  2. इसका इस्तेमाल करने के लिए आसान है?

    मैंने इसका उपयोग करने की कोशिश की है और यह मूंछ या हैंडलबार्स.जेएस जितना आसान है।

  3. क्या यह पर्याप्त रूप से प्रलेखित है?

    हाँ http://akdubya.github.com/dustjs

  4. क्या समुदाय समर्थन अच्छा है? (एसटी टैग की गईं 'dust.js' पर केवल 6 प्रश्न!)

    यदि आप मूंछ या हैंडलबार्स.जेएस की तुलना कर रहे हैं, तो dust.js में बहुत से उपयोगकर्ता नहीं हैं, लेकिन मेरा मानना ​​है कि यदि आपके पास कोई समस्या है और इसे पोस्ट करें लिंक्डइन रेपो वे निश्चित रूप से जवाब देंगे। मैं भी इसे देख रहा हूं क्योंकि: मैं

  5. अंडरस्कोर के टेम्पलेटिंग, Google क्लोजर टेम्पलेट्स, हैंडलबार्स और मूंछ जैसे अन्य टेम्पलेटिंग टूल की तुलना में पेशेवर और विपक्ष क्या हैं।

    पेशेवरों के लिए, आप यहां देख सकते हैं कि आपको dust.js का उपयोग करने पर विचार करना चाहिए https://github.com/linkedin/dustjs#readme

    विपक्ष के रूप में, मूंछ या हैंडलबार्स.जेएस जैसे लोकप्रिय लोगों की तुलना में dust.js के लिए पर्याप्त उपयोगकर्ता नहीं हैं। उस ने कहा, Google क्लोजर जैसी अन्य पुस्तकालयों में भी यही समस्या है।

    लेकिन जैसा कि मैंने पहले उल्लेख किया था, dust.js को अन्य ढांचे IMHO की तुलना में बहुत अच्छी तरह डिज़ाइन किया गया है।

  6. क्या एमवी * संरचना ढांचे, जैसे बैकबोन.जेएस (ऑनलाइन पुस्तक) के साथ इसका उपयोग करने में कोई समस्या है?

    मैंने इसे अन्य एमवीसी ढांचे के साथ उपयोग नहीं किया है, लेकिन मुझे नहीं लगता कि यह एक समस्या होनी चाहिए।

आशा है कि मदद करता है।

+0

धन्यवाद, मैंने अपनी खोज में इस पृष्ठ को याद किया था - https://github.com/ लिंक्डइन/dustjs –

+0

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

+0

पेपैल क्लाइंट और सर्वर साइड प्रतिपादन के लिए भी इसका उपयोग कर रहा है। – ontk

6
  1. मैं काफी बड़ा और स्थापित आला आईटी कंपनी के लिए अब एक स्वतंत्र परियोजना कर रहा हूँ और वे अपने एचटीएमएल 5 मोबाइल एप्लिकेशन ढांचे के लिए dust.js चुन लिया है। और हाँ, लिंक्डइन एक बड़ी और सफल कंपनी है।

  2. क्रमबद्ध करें। कुछ भी मुश्किल नहीं है लेकिन मुझे इसके आदी होने की जरूरत है। मैंने जावा पर फ्रीमार्कर के साथ काम किया - फ्रीमार्कर बहुत सारी अंतर्निहित बिजली सुविधाओं के कारण उपयोग करने में काफी आसान लग रहा था। हालांकि, कई को dust.js अच्छा लगता है - इसमें इसका स्पष्ट तर्क है, बहुत हल्का वाक्यविन्यास - dust.js में चीजें हैं जो वास्तव में कई लोगों की तरह हैं।

  3. जावा के लिए फ्रीमार्कर को बहुत बेहतर दस्तावेज किया गया था। dust.js का गिटहब पेज स्टार्टर्स के लिए बहुत ठीक है, लेकिन उदाहरण के लिए, मुझे वहां मौजूद सभी dust.js फ़िल्टर का विवरण नहीं मिला और इसके लिए Google पर खोजने की आवश्यकता थी - हालांकि, उस खोज ने मुझे आसानी से जानकारी प्रदान की। जरूरत है।

  4. अधिक सामुदायिक समर्थन नहीं देखा लेकिन लाइब्रेरी वास्तव में हल्का और स्पष्ट है - कुछ आवश्यक खोजों को इकट्ठा करने के लिए मुझे कुछ Google खोजों की आवश्यकता थी।

  5. अन्य जेएस टेम्पलेटिंग टूल का उपयोग नहीं किया।

  6. जिस कंपनी का मैंने पहले प्रश्न के उत्तर में उल्लेख किया है, उसने dust.js का उपयोग करके हल्के वजन वाले HTML5 फ्रेमवर्क को jQuery और Backbone.js दोनों के साथ बनाया है। मैं उस ढांचे का उपयोग करके उनके लिए प्रोजेक्ट कर रहा हूं और jQuery और Backbone.js कार्यक्षमता दोनों को टैप कर रहा हूं - शिकायत करने के लिए कुछ भी नहीं। dust.js बैकबोन.जेएस की तरह थोड़ा सा है - हल्के वजन और आपके कोडिंग शैली या आपके द्वारा उपयोग की जाने वाली अन्य पुस्तकालयों पर अधिक प्रतिबंध नहीं लगाते हैं। इसका उपयोग करके आप देखेंगे कि जेएस ऑब्जेक्ट्स का कुछ पसंदीदा फॉर्म है जो आप इसे डेटा के साथ खिलाने के लिए उपयोग करते हैं, लेकिन इसका आदी होना आसान है (मेरा मतलब है कि अगर आपको अपने विचारों में कुछ की सूचियों की आवश्यकता है तो सूचियों के साथ dust.js को खिलाना बेहतर होगा और जेएस ऑब्जेक्ट हैश नहीं जो एक ही समय में अलग-अलग इकाइयों का वर्णन करने में प्राकृतिक हैं)। प्रदर्शन के बारे में

एक बात - करने के लिए - आप "पूरा" संस्करण के साथ अपने एप्लिकेशन को विकसित करने और उसके बाद उत्पादन के लिए अपने टेम्पलेट संकलन कर सकते हैं (घुरघुराना यहाँ उपयोगी हो सकता है उदाहरण Node.js + dust.js NPM मॉड्यूल के लिए उपयोग करते हुए) "कोर" संस्करण के साथ प्रयोग किया जाना चाहिए। इस मामले में आप वास्तविक दुनिया के प्रदर्शन में काफी वृद्धि कर सकते हैं - सभी टेम्पलेट्स को एकसाथ रखते हुए और उन्हें छोटा करने से क्लाइंट ब्राउज़र को हर बार सर्वर से टेम्पलेट्स लाने से मुक्त कर दिया जाएगा। "पूर्ण" और "कोर" वाणिज्यिक/मुक्त नहीं हैं - मूल संस्करण में टेम्पलेट कंपाइलर नहीं है और इसका उपयोग पूर्व-संकलित टेम्पलेट्स के साथ किया जाना है।

संबंधित मुद्दे