2012-06-15 21 views
43

अब AngularJS 1.0 is released मुझे आश्चर्य है कि यह प्रोजेक्ट Google, क्लोजर से अन्य सामान्य प्रयोजन जावास्क्रिप्ट ढांचे/टूल के साथ कैसे फिट बैठता है।कोणीय जेएस Google क्लोजर से कैसे संबंधित है?

मैं केवल उन दो प्रौद्योगिकियों के बुनियादी विवरण देखा है (और बंद पर पुस्तक का एक आधा के बारे में पढ़ा) तो मैं कोई सीधा अनुभव है, लेकिन यह है कि यह कैसे मेरे लिए लग रहा है:

  • बंद एक है प्रौद्योगिकियों का सेट जो अलग से इस्तेमाल किया जा सकता है। क्या मैं शायद सबसे आकर्षक लगता है:
    • बंद संकलक जो "जावास्क्रिप्ट को ठीक करने के लिए" एक तरह से है कि यह ठेठ मुद्दों के खिलाफ चेतावनी दी है में लगता है, कुछ संकलन समय चेक (नहीं इस तरह सभी लोगों लेकिन शायद सबसे प्रदान करता है Google डेवलपर करते हैं, और मैं भी करता हूं)। और निश्चित रूप से यह अच्छा है कि परिणामी कोड छोटा और अधिक कुशल है।
    • फिर क्लोजर लाइब्रेरी के कुछ हिस्सों हैं जो मुझे पसंद है, उदा। अंतर्निर्मित प्रकारों पर अबास्ट्रक्शन (ArrayLike इत्यादि), कक्षा-आधारित प्रणाली, ईवेंटिंग तंत्र, डीओएम अबास्ट्रक्शन इत्यादि। मुझे अभी तक यकीन नहीं है कि मुझे जीयूआई लाइब्रेरी पसंद है या नहीं (काफी जटिल लगता है और मैं वास्तव में नहीं था अभी तक इसका अध्ययन करने का समय है)।
    • फिर कुछ विशेषताएं हैं जो मुझे नहीं लगता कि मुझे यह उपयोगी लगेगा, उदा। टेम्पलेट
  • AngularJS है, जो मैं केवल कुछ समय के बारे में पढ़ा है, बंद की तुलना में काफी उच्च स्तर की हो रहा है। यह एक अनुप्रयोग फ्रेमवर्क आदि

तो इन दोनों प्रौद्योगिकियों अमूर्त की बिल्कुल अलग स्तर के उद्देश्य से किया जाना है इसलिए मेरा पहला विचार था प्रतीत बंधन, पुन: प्रयोज्य घटकों, MVC संरचना डेटा जैसी सुविधाओं को उपलब्ध कराने के प्रतीत हो रहा है कर सकते हैं वे एक साथ इस्तेमाल किया जा सकता है? क्लोजर कम-स्तरीय कंपाइलर और ब्राउज़र अबास्ट्रक्शन प्रदान करता है जबकि कोणीय अनुप्रयोग-स्तरीय सेवाएं और संरचना प्रदान करता है? क्या यह समझ में आता है और क्या यह एक साथ अच्छी तरह से काम करेगा?

+5

http://stackoverflow.com/questions/11032092/html5-angularjs-with-closure-compiler-and-or-closure-library/11041786#11041786 – Vojta

उत्तर

3

मुझे लगता है कि एंगुलरजेएस एक ठोस एमवीसी/एमवीवीएम फ्रेमवर्क की तरह है और क्लोजर लाइब्रेरी ढीले घटकों का एक सेट है, हालांकि AngularJS Templates और Closure Templates दोनों में काफी आम है।

35

एकमात्र Google प्रोजेक्ट जिसे मैं जानता हूं कि AngularJS का उपयोग डबलक्लिक टीम है। (presentation) अनिवार्य रूप से, वे अभी भी यूआई बिल्डिंग के अलावा सब कुछ के लिए Google क्लोजर लाइब्रेरी का उपयोग करते हैं। यह भी ध्यान रखें कि वे Google क्लोजर कंपाइलर का उपयोग करते हैं, लेकिन यह लगभग दिया गया है, "कोई भी" केवल कंपाइलर के बिना लाइब्रेरी का उपयोग नहीं करता है।

Google क्लोजर लाइब्रेरी अपने goog.ui नामस्थान में यूआई ढांचे के साथ आता है। यह ढांचा एंड्रॉइड, आईओएस, स्विंग और क्यूटी जैसे गैर-वेब यूआई ढांचे के लगभग हर तरह से तुलना करता है। उनके पास एक चीज है जो मुझे स्टेरॉयड, goog.ui.Component पर डीओएम तत्वों को कॉल करना पसंद है, जिसमें कचरा संग्रह और घटना सुनने और अधिक के लिए बहुत से महान जीवन चक्र तंत्र हैं। आपके पास goog.ui.Control जैसी चीजें हैं, जो goog.ui.Component का उप-वर्ग है, और उपयोगकर्ता इंटरैक्शन को एक बहुत ही रोचक तरीके से संभालती है। यह आपको प्रस्तुतकर्ताओं को प्लग करने देता है, उदाहरण के लिए, ताकि आप <button> को <a> पर वास्तविक प्रतिपादन को छोड़कर अपने किसी भी अन्य तर्क को बदले बिना बदल सकें।

कक्षाओं और उप-वर्गों की बात करते हुए, Google क्लोजर लाइब्रेरी में यह भी है। आपको अंतर्निहित एक का उपयोग करने की आवश्यकता नहीं है, महत्वपूर्ण हिस्सा यह है कि आप किसी भी तरह से अपने तरीकों में "सुपरक्लास" के प्रोटोटाइप को कॉल करते हैं। उदाहरण के लिए आप कॉफीस्क्रिप्ट में कक्षा प्रणाली का उपयोग कर सकते हैं, Google क्लोजर लाइब्रेरी परवाह नहीं है।

डबलक्लिक टीम ने AngularJS को apparently चुना क्योंकि डेटा बाध्यकारी सुविधाओं AngularJS प्रदान करता है। जब डेटा बदलता है तो UI को स्वचालित रूप से अपडेट करने के लिए Google क्लोजर लाइब्रेरी में अंतर्निहित कुछ भी नहीं है।

तो संक्षेप में, Google क्लोजर एक बेहद जानवर है, और AngularJS Google क्लोजर लाइब्रेरी के goog.ui भाग को प्रतिस्थापित कर सकता है।

+0

मुझे लगता है कि यह कोणीय के लिए एक बड़ा प्लस है, मुफ्त 2 -वे मॉडल/ui बाध्यकारी। गैरी बर्नार्ड इस बारे में बात करते हैं कि क्लोजर कितनी अच्छी तरह डिज़ाइन किया गया है। –

+0

बस एक अपडेट। मैंने पाया है कि Google ब्लॉकली प्रोजेक्ट भी कोणीय 2.0 https://github.com/google/blockly/tree/master/accessible का उपयोग करता है –