2010-10-11 16 views
23

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

मैंने हाल ही में टॉमकैट/जेएसपी (~ 30 गतिशील पृष्ठों) का उपयोग कर एक वेबसाइट बनाई है। मैंने तर्कसंगतता का उपयोग करते हुए जेएसपी में कोर लॉजिक के बड़े वर्गों को शामिल करने की नौसिखिया गलती की है कि यह "बस एक साधारण परियोजना" है।

मैंने कड़ी मेहनत सीखी। तो मैं अब ऐप का उपयोग कर Google एप इंजन में ऐप को फिर से बना रहा हूं और मॉडल-व्यू-कंट्रोलर डिज़ाइन पैटर्न का उपयोग करके इसे लागू करने के लिए वेग का उपयोग करने की योजना बना रहा हूं।

मैं स्ट्रूट्स को भी देख रहा हूं, लेकिन पहले फ्रेमवर्क का उपयोग नहीं किया है।

क्या कोई मुझे विश्वास दिला सकता है कि मुझे इस परियोजना में स्ट्रेट्स क्यों शामिल करना चाहिए? क्या यह वास्तव में मुझे एक या दो लोगों के मध्यम आकार के प्रोजेक्ट के लिए बहुत कुछ खरीदने जा रहा है?

स्ट्रेट के साथ अतिरिक्त सीखने की वक्र में स्पष्ट लागत है, क्या लाभ लागत से अधिक होंगे? या तर्क का उपयोग तर्क को अलग करने के लिए पर्याप्त होगा? राय?

+3

स्ट्रूट्स भयानक है। यदि आप स्वयं को एक पक्ष करना चाहते हैं, तो विकेट (घटक आधारित) या स्प्रिंग एमवीसी (क्रिया आधारित) का उपयोग करें। दोनों महान और अंतर्ज्ञानी ढांचे हैं। –

+6

स्ट्रूट्स स्ट्रेट्स से बहुत अलग है, और स्प्रिंग एमवीसी या स्ट्रिप्स (एक्शन आधारित) के समान ही – leonbloy

+7

स्ट्रूट्स 1 वास्तव में पुराना है। स्ट्रूट्स 2 किसी भी तरह से भयानक नहीं है। –

उत्तर

23

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

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

ने कहा, अन्य विकल्प हैं, उदा। वसंत में स्प्रिंग एमवीसी प्लस बहुत अधिक है। यदि आप एक सीखने की अवस्था पर काबू पाने में निवेश करने जा रहे हैं, तो इस बारे में सोचें कि कौन सा ढांचा आपको मध्यम अवधि में समग्र रूप से लाभ पहुंचाएगा: उदाहरण के लिए, आपके क्षेत्र में नियोक्ता कौन से ढांचे की तलाश करते हैं? इस समय, मैं वसंत के साथ जाऊंगा जहां मुझे लगता है कि गति है लेकिन स्ट्रूट्स यह करता है कि यह क्या करता है।

+1

बहुत अच्छा और वर्णनात्मक उत्तर। इसके लिए +1। और मुझे आशा है कि जब आपने स्ट्रूट्स का उल्लेख किया था, तो आप वास्तव में स्ट्रैट्स 2 का मतलब था। –

+1

धन्यवाद। वास्तव में स्ट्रैट्स का इस्तेमाल करने के बाद से यह लगभग 5 साल हो गया है लेकिन मुझे यादगार यादें हैं! – Brian

11

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

एक बार जब आप स्प्रिंग में जगह ले लेंगे तो आपको पता चलेगा कि आपका आवेदन बनाए रखने और समर्थन के लिए बहुत आसान है। आप सुरक्षा की तरह एन्हांसमेंट्स को भी जोड़ सकते हैं, बहुत आसान।

+0

हाँ, मैं भी इसे पसंद करता हूं। –

3

आपको स्ट्रूट्स क्यों सीखना चाहिए? मेरा जवाब है: क्योंकि नियोक्ता अक्सर इसके बारे में ज्ञान की आवश्यकता होती है, खासकर पुरानी परियोजनाओं को बनाए रखने के लिए। मैंने कोई सटीक माप नहीं किया, लेकिन मुझे लगता है कि मेरे क्षेत्र में जेएसएफ और स्ट्रूट्स का उपयोग वेब अनुप्रयोग विकास के लिए अक्सर किया जाता है।

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

4

तर्क को अलग करना सीखना उत्कृष्ट है। आप वेग, स्ट्रूट या किसी भी ढांचे का उपयोग किए बिना ऐसा कर सकते हैं, और यदि आप इसे कम से कम सहायता के साथ आजमाते हैं तो आप इस अलगाव को करने के लिए क्या करेंगे।

एक ढांचा सीखना (वास्तव में कई ढांचे) भी सार्थक है, लेकिन मैं व्यक्तिगत रूप से स्ट्रैट्स को पहले फ्रेमवर्क के रूप में नहीं चुनूंगा जब तक कि यह आपके नियोक्ता या संभावित नियोक्ता द्वारा उपयोग नहीं किया जाता है। यदि आपका नियोक्ता स्ट्रूट्स का उपयोग कर रहा है, तो मुझे उम्मीद है कि यह स्ट्रूट्स 2 है, क्योंकि स्ट्रूट 1 प्राचीन हो रहा है।

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

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

8

पहला: नाम आपको भ्रमित न करने दें: स्ट्रूट 2 और स्ट्रूट बहुत अलग ढांचे हैं।

दूसरा: जेएसपी से वेग तक बदलना एक अच्छा या बुरा निर्णय हो सकता है, लेकिन यह बिल्कुल सही नहीं है। बिंदु Model1 (बल्कि प्राचीन नामकरण, लेकिन अभी भी उपयोगी) से दूर स्विच करना है। यही है, अपनी तर्क परत से अपनी दृश्य परत decoupling। (आप अपनी दृश्य परत के लिए जेएसपी या वेग का उपयोग कर सकते हैं)। इसके अलावा, अपनी दृश्य परत का निर्णय लेने के लिए केवल आपके आर्किटेक्चर का एक हिस्सा है: आपको अभी भी यह तय करना होगा कि अनुरोध को संसाधित कौन करेगा और डेटा को उस डेटा का उत्पादन करेगा जो दृश्य में भेजा जाएगा। सबसे बुनियादी विकल्प सादे servlets का उपयोग करना है, लेकिन, फिर से, कुछ ढांचे का उपयोग करना बेहतर है। इसके लिए, जावा में lot of frameworks हैं। "एक्शन आधारित" उनमें से एक सबसेट है, शायद सीखने के लिए सबसे आसान है। उनमें से सबसे पुराना स्ट्रैट्स है; आज नई परियोजनाओं के लिए सबसे अधिक उपयोग किया जाता है (किसी विशेष क्रम में) स्ट्रूट 2, स्प्रिंग एमवीसी और स्ट्रिप्स - वे काफी समान हैं।

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