2011-03-17 7 views
5

मैं ऐसी कंपनी में काम करता हूं जो हमारे उत्पाद के लिए एक्सटी-जेएस का उपयोग करता है। वर्तमान में उत्पाद एक्सटी-जेएस घटकों को बढ़ाता है और माता-पिता की कार्यक्षमता को ओवरराइड करता है। इसने अपग्रेड को सबसे अच्छा बना दिया है। हम एक्सटी-जेएस रखते हैं लेकिन इसे गैर-बेस्टर्ड तरीके से इस्तेमाल करने की तलाश में हैं। ऐसा लगता है कि दो शिविर हैं। एक शिविर में सदस्यों को लगता है कि अगर हम कई वर्षों में ढांचे को बदलने का फैसला करते हैं तो हमें एक्सटी-जेएस के शीर्ष पर एक अमूर्तता लिखनी चाहिए, उम्मीद है कि जिस तरह से हम कम लॉक हैं। मुझे व्यक्तिगत रूप से लगता है कि यह एक मूर्ख लक्ष्य है, इसलिए मैं शिविर में बैठता हूं नंबर दो। मेरा तर्क है कि एक्सटी-जेएस टीम ने वेब के लिए उचित अमूर्तता के साथ अपना समय बिताया है - वे उस समस्या को हल करने के लिए डोमेन में हैं, जबकि हम केवल एक शांत उत्पाद को लागू करने की कोशिश कर रहे हैं। मुझे लगता है कि अगर हम एक अमूर्त लिखते हैं तो यह एक्सटी-जेएस मान लेगा। मैं हमें कम अवरोध लिख रहा हूं जो कम शक्तिशाली हैं और जो jQuery दुनिया (या किसी अन्य ढांचे) को मैप नहीं करेंगे। कार्रवाई के सही तरीके पर राय?जंगली में एक्सटी-जेएस का उपयोग कैसे करें? सार दूर या नहीं?

+0

यदि आप Ext के शीर्ष पर एक वास्तविक अबास्ट्रक्शन परत बनाते हैं, तो आपको इसे बेचना चाहिए या इसे खोलना चाहिए। ऐसा लगता है कि एक डीएएल बनाने के बराबर होगा जो एनएचबीरनेट, ईएफ और आईबीएटीआईएस का उपयोग करने के बीच सहजता से स्विच कर सकता है। –

उत्तर

3

मैं आपसे सहमत हूं; मुझे लगता है कि यह एक मूर्ख लक्ष्य है। यहां बताया गया है:

  1. अंत में (कई सालों बाद) आप ढांचे को नहीं बदल सकते हैं। यदि आप नहीं करते हैं, तो आपने अतिरिक्त समय और संसाधन बिताए हैं जो अमूर्तता की एक परत जोड़ते हैं जो आपको कुछ भी नहीं खरीदता है। न केवल आपके द्वारा निर्धारित लक्ष्य को पूरा करने में विफल रहेगा (आपके विकल्पों को विविधतापूर्ण), लेकिन यह उस कोड की मात्रा में जोड़ देगा जो आपको और आपके साथियों को बनाए रखने की आवश्यकता है।

  2. एक्सटीजे पूरा नहीं होने वाली किसी भी ज़रूरत के अनुरूप आप हमेशा अपने प्रोजेक्ट को अन्य जावास्क्रिप्ट पुस्तकालयों के साथ मॉड्यूलर कर सकते हैं। उदाहरण के लिए, यदि आप ExtJs के चार्टिंग कार्यान्वयन को पसंद नहीं करते हैं, तो आप jQuery शामिल कर सकते हैं और jqPlot जैसे प्लग-इन का उपयोग कर सकते हैं।

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

विचार के लिए बस कुछ बिंदु। कुल मिलाकर मुझे लगता है कि यह बनाए रखने के लिए एक भालू होगा, इसलिए मैं एक विविध पुस्तकालय चुनूंगा जो आपकी अधिकांश आवश्यकताओं को पूरा करता है और फिर आवश्यक होने पर छोटी पुस्तकालयों में जोड़ता है।

2

मुझे लगता है कि विकल्प 2 बेहतर विकल्प है। यदि आप एक शानदार वेब ऐप बनाते हैं और यह वास्तव में अच्छी तरह से काम करता है, तो वास्तव में आप एक नए ढांचे में क्या बदल रहे हैं?

ExtJS को विस्तारित करने के लिए डिज़ाइन किया गया है। हालांकि मैं एक्सटेंशन को करने के लिए Ext.extend() बनाम Ext.override() का उपयोग करके निश्चित रूप से अनुशंसा करता हूं। जब आप एक्सटी के नए संस्करण में अपग्रेड करते हैं तो आपको अपने ओवरराइडिंग के लिए इस विधि का उपयोग करना वास्तव में कठिन समय नहीं होना चाहिए।

0

ExtJS के शीर्ष पर एक अतिरिक्त abstraction परत का निर्माण एक गैर विकल्प की तरह लगता है। इसे काम के उचित हिस्से की आवश्यकता होगी, शायद इसे सही तरीके से करना मुश्किल होगा (ताकि अंतर्निहित ढांचे को स्विच करना वास्तव में आसान हो), और इसकी आवश्यकता कभी भी नहीं हो सकती है।

मौजूदा एक्स्टजेस का विस्तार करना बुरा नहीं है, लेकिन आपको इसे संरचित और नियंत्रित तरीके से करने की आवश्यकता है। इसे अधिक न करें - केवल तभी विस्तारित करें जब आपको अलग-अलग फ़ाइलों और संरचनाओं में अपने एक्सटेंशन को स्थानांतरित और पैकेज करना होगा ताकि कक्षा X और Y में एक्सटेंशन ढूंढना आसान हो। पुन: प्रयोज्य समाधानों के साथ आने का प्रयास करें ताकि आप ऐसा कर सकें जब भी आपको थोड़ा बदलाव की आवश्यकता हो, हर बार एक नया एक्सटेंशन लिखने की आवश्यकता नहीं है।

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