2011-10-22 13 views
5

के बीच तुलना मैं सोच रहा था कि अगर दोनों प्रौद्योगिकियों में अनुभव किया गया था तो दोनों के बीच एक तुलनात्मक तुलना दे सकती है, यह मानते हुए कि आप एक जटिल वेब एप्लिकेशन बना रहे हैं जो सर्वर पर और समृद्ध दोनों में समृद्ध होगा ब्राउज़र।जीडब्ल्यूटी और स्प्रिंग एमवीसी

मेरे लिए पुराने प्रतिमान के साथ एक समस्या, स्प्रिंग एमवीसी परत की टेस्टेबिलिटी है। मुझे लगता है कि बहुत सारी बग है जो अवांछनीय टिप्पणियों के कारण आपके आवेदन में रेंग सकती है। यह मॉडल विकास चक्र भी धीमा करता है क्योंकि आपको एनोटेशन/कंट्रोलर कोड में परिवर्तन करने के लिए सर्वर को पुनरारंभ करना होगा ... जो कुछ मुझे व्यक्तिगत रूप से बहुत परेशान लगता है।

मैं जावास्क्रिप्ट की जटिलता से निपटना नहीं चाहता हूं। जावा में सभी एप्लिकेशन के साथ काम करना और परीक्षण करना मुझे अपील करता है। मैं वास्तव में एक और भाषा मास्टर नहीं करना चाहता हूं, और इसके सभी quirks, अजीब डिजाइन निर्णय, idiosyncracies और ब्राउज़र असंगतताओं का पूरा इतिहास सीखना चाहते हैं।

तो एक जटिल अनुप्रयोग के लिए, क्या जीडब्ल्यूटी एक बेहतर दृष्टिकोण प्रदान करेगा? क्या स्प्रिंग एमवीसी पर इस दृष्टिकोण के लिए कोई गंभीर सीमाएं हैं, जो शायद अधिक लचीला होंगी, हालांकि काम करना मुश्किल होगा? क्या कोई गठिया और सड़क ब्लॉक है जो जटिल अनुप्रयोगों के निर्माण के लिए आम हैं?

मैं वास्तव में दोनों के बीच तुलना की सराहना करता हूं। कृपया ध्यान रखें कि मुझे जीडब्ल्यूटी के साथ कोई अनुभव नहीं है, लेकिन वसंत के साथ लगभग 10+ साल का अनुभव है। धन्यवाद!

+0

जीडब्ल्यूटी पर विचार करते समय, जांचें कि प्रदर्शन आपके लिए स्वीकार्य है या नहीं। –

उत्तर

4

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

बिना किसी सफलता के जीडब्ल्यूटी सीखने की कोशिश करने के बाद, मैंने एक webservice प्लस या तो jQuery या ExtJS का चयन किया, जो भूमिकाओं का एक बहुत साफ अलगाव भी प्रदान करता है। मैं बैठ गया और जावास्क्रिप्ट सीखा, यह आसान नहीं था लेकिन जीडब्ल्यूटी का उपयोग करने से यह बेहद मजेदार था।

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

वैसे भी, यह काफी व्यक्तिपरक है, जीडब्ल्यूटी के साथ धाराप्रवाह दूसरा व्यक्ति, मेरा एक विपरीत दृष्टिकोण हो सकता है। मैं वैसे भी निम्न कारणों से अस्वीकार कर देंगे:

  • डिबगिंग में आसानी। अब और सत्य नहीं है: फ़ायरबग के साथ जावास्क्रिप्ट को डीबग करना बहुत आसान है, साथ ही जावास्क्रिप्ट में कोई व्यावसायिक तर्क नहीं होगा, केवल सेवा कॉल और डिस्प्ले होगा।
  • ब्राउज़र संगतता। याद रखने के लिए बहुत कम क्विर्क हैं, सबसे आम बात यह है कि आईई सूचियों में पिछली कॉमा स्वीकार नहीं करता है, जो कि मानक में नहीं है, लेकिन फ़ायरफ़ॉक्स उन्हें सहन करता है। कोई भी आधुनिक जावास्क्रिप्ट लाइब्रेरी आपके लिए अनुकूलता का ख्याल रखेगी।
  • गति। शुरू करने के लिए मैं कहूंगा कि ब्राउजर में किसी भी उचित गणना के लिए जावास्क्रिप्ट बहुत तेज़ है। धीमा क्या है डीओएम हेरफेर और निश्चित रूप से नेटवर्क से जुड़े कुछ भी, जैसे AJAX कॉल। आपका पृष्ठ सही काम करेगा यदि आप डिज़ाइन गलतियों को नहीं करते हैं, जैसे कि बहुत सी चीजें या अन्य समस्याएं भरना जो आपके तत्वों को बनाने के बजाय सीधे डीओएम में कई तत्व जोड़ते हैं और फिर इसे एक साथ जोड़ते हैं।

जहां तक ​​मेरा अब सोच सकते हैं, केवल वैध कारण है, मैं पहले से ही जावा पता है, मैं नहीं चाहता कि कोई अन्य भाषा का अध्ययन करना चाहते।

स्प्रिंग एमवीसी पर आपकी टिप्पणी के लिए। मैं स्प्रिंग एमवीसी का उपयोग कर रहा हूं और मुझे सर्वर को पुनरारंभ करने का दर्द महसूस नहीं होता है। वसंत का पूरा बिंदु यह है कि कंटेनर के बाहर काम करने के लिए सब कुछ आसान होना चाहिए! वसंत नियंत्रकों में मेरे पास बहुत ही कम कोड है जो केवल अंतर्निहित सेवाओं को कॉल करता है। मुझे यूनिट परीक्षण अच्छी तरह से करने की ज़रूरत है जो सेवाएं हैं।

नियंत्रकों के पास परीक्षण करने के लिए बहुत कम कोड हैं, मैं उन्हें केवल कॉल कर सकता हूं और उन्हें जुनीट के भीतर परीक्षण कर सकता हूं, लेकिन कम से कम अब तक, मेरे दृष्टिकोण में एक वेब पेज के माध्यम से एक साधारण बाहरी परीक्षण किया जा रहा है जिसमें jQuery कॉल प्रतिक्रिया (यह यूनिट परीक्षण नहीं है, यह एकीकरण परीक्षण है, लेकिन मुझे लगता है कि यूनिट परीक्षण नियंत्रक के लिए बहुत कम मूल्य है, अगर यह ठीक से लिखा गया है)।

+0

मैं अपने नियंत्रकों का भी परीक्षण करता हूं, इसलिए शायद मुझे और स्पष्ट होना चाहिए था। इकाई परीक्षण में अपने नियंत्रकों की टिप्पणियों का परीक्षण करना संभव नहीं है। उदाहरण के लिए, यदि आप विधि पैरामीटर में @PathVariable जोड़ना भूल जाते हैं, तो आपका यूनिट परीक्षण अभी भी पास हो जाएगा। साथ ही, यदि आप अनुरोध मैपिंग का गलत नाम या गलत वर्तनी करते हैं, तो आपको सर्वर को पुनरारंभ करने की आवश्यकता है। स्पष्ट रूप से इस बात की परेशानी व्यक्ति के बीच अलग-अलग हो रही है, लेकिन मैं विचारों का परीक्षण करने के लिए टॉमकैट शुरू करने से पहले जितना संभव हो उतना सामान परीक्षण करने में सक्षम होना चाहता हूं। इसके अलावा, स्प्रिंग कंटेनर/हाइबरनेट बड़े ऐप्स के लिए शुरू करने में बहुत धीमा है। – egervari

+0

मुझे आपकी अतिरिक्त स्पष्टीकरण मिलती है। हालांकि जीडब्ल्यूटी स्प्रिंग के प्रतिस्थापन नहीं है, इसलिए आपके द्वारा उल्लिखित समस्याओं को अभी भी स्प्रिंग + जीडब्ल्यूटी सेटअप में होगा। मेरे बाकी उत्तर के लिए, यह मेरी राय है, ज़ाहिर है। – stivlo

+1

यदि ऐसा है, तो मुझे लगता है कि मैं वेब अनुप्रयोगों को लिखने के साथ काफी कुछ कर रहा हूं। मैं सिर्फ जावास्क्रिप्ट का आनंद नहीं लेता हूं। सभी ब्राउज़रों में दी गई मूल एपीआई काफी खराब है, और मैं खुद को मूल प्रोग्रामिंग एपीआई प्राप्त करने के लिए 4-6 आवश्यक पुस्तकालयों (ऊपर jquery और jquery plugins) पर निर्भर करता हूं। इतने सारे जावास्क्रिप्ट कोडिंग शैलियों, नामकरण सम्मेलन इत्यादि हैं जो मुझे लगता है कि किसी ऐसे व्यक्ति के लिए बहुत अधिक संज्ञानात्मक भार है जो वर्षों से इसका उपयोग नहीं कर रहा है। यह वास्तव में सिर्फ दुर्भाग्यपूर्ण है। इसके अलावा, मैंने विभिन्न यूनिट परीक्षण विधियों का प्रयास किया है और उनमें से कोई भी मेरी संतुष्टि से मुलाकात नहीं की है। यह सिर्फ दुर्भाग्यपूर्ण है। – egervari

4

मैं एक जटिल परियोजना (पूरे परियोजना के लिए 200 केएलओसी) में एक साल से अधिक समय के लिए जीडब्ल्यूटी का उपयोग कर रहा हूं, और मैं आपको सलाह देता हूं कि आप जीडब्ल्यूटी को आज़माएं।

मेरी राय में जीडब्ल्यूटी सीखना काफी आसान है, इस तकनीक का उपयोग करने के तरीके के बारे में वास्तव में tutorials वास्तव में अच्छा है।

जीडब्ल्यूटी का उपयोग करने का लाभ यह है कि कोई भी ब्राउज़र, जावास्क्रिप्ट के बारे में बहुत कम जानने के बिना, अच्छे, तेज़, रखरखाव योग्य वेब ऐप्स बना सकता है। आप अपने क्लाइंट साइड कोड को जावा डीबगर के साथ डीबग भी कर सकते हैं और जटिल ऐप्स में यह बहुत बड़ा है।

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

1

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

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