2010-05-25 5 views
15

मैं एक नई परियोजना पर काम शुरू करना चाहता हूं, जो कुछ मैं अपने पहले स्वतंत्र बिक्री योग्य परियोजना के रूप में कुछ समय के बारे में सोच रहा था। यह व्यापक रूप से एक वेब-आधारित सेवा अनुप्रयोग बोल रहा है, और मेरी पहली पसंद, सर्वर-भाषा काफी आसान है ... मैं जावा को वेब वेब ऐप्स पर अतीत में काम करने से बहुत अच्छी तरह से जानता हूं।एक नई परियोजना के लिए 'बेहतर' या अधिक परिचित प्रौद्योगिकियों का चयन करें?

हालांकि मेरे अनुभव वेब क्षुधा शामिल JSP, सर्वलेट्स और JSTL कर ... मैं हाइबरनेट/स्प्रिंग की तरह नई प्रौद्योगिकियों के पीछे एक विचार जानते हैं, लेकिन उन्हें कभी उपयोग नहीं किया। इसलिए हमने अपने स्वयं के डीएओ लिखा, विशेष मिनी-जेएसपी पृष्ठों को लिखकर AJAX को संभाला, जो एक्सएमएल/जेएसओएन पेज जेनरेट किए गए थे।

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

मुझे याद है जोएल की जल्दी लेख में से एक ने कहा कि (मैं के बाद से मैं यह नहीं मिल सकता है व्याख्या करेंगे)

"परवाह किए बिना क्या शांत, हमेशा उपयोग प्रौद्योगिकियों कि नेतृत्व डेवलपर (या देव टीम?) सर्वश्रेष्ठ जानता है "

मुझे आश्चर्य हुआ कि लोगों ने इसके बारे में क्या सोचा था?

ps: क्या यह सीडब्ल्यू होना चाहिए?

+0

"सर्वश्रेष्ठ जानता है" बहुत ही बुद्धिमान सलाह है! –

उत्तर

1

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

मैंने अपना सबक सीखा है, हालांकि: अगली बार, मैं एक नया ढांचा नहीं दबाऊंगा जब तक कि मैंने पहले उत्पादन परियोजनाओं के लिए उपयोग नहीं किया हो। उस ने कहा, मुझे खुशी है कि अब मैं वसंत को समझता हूं (या कम से कम मुझे लगता है कि मैं करता हूं) और अगली बार इसे फिर से उपयोग करने में संकोच नहीं करूंगा।

तो मैं अगली बार एक नया ढांचा कैसे सीखूंगा? यदि कोई प्रोजेक्ट लीड है (इस मामले में मैं एक टीम की प्रोजेक्ट लीड हूं, वहां कोई मदद नहीं है) मैं उस ढांचे का उपयोग करूंगा जो उन्होंने किया था। यदि ऐसा नहीं है, या यदि मैं एक ढांचा सीखना चाहता हूं कि प्रोजेक्ट लीड का उपयोग नहीं कर रहा है, तो मैं इसे अपने समय पर एक साइड प्रोजेक्ट के लिए उपयोग करूंगा। सीखना अच्छा है। अवांछित तकनीक को फेंककर कंपनी को जोखिम में डाल देना इतना अच्छा नहीं है।

2

सभी को एक बार सब कुछ कोशिश मत करो - एक समय में एक नई तकनीक पर ले लो।

0

यह निर्भर करता है कि ग्राहक क्या चाहता है (परामर्श की दुनिया में)। आपको नई तकनीकों को सीखना है। क्या ग्राहक इसके लिए भुगतान करना चाहता है?

नहीं सभी नए लोगों को की चेतावनियां जाना जाता है, जबकि पुराने लोगों में बहुत अधिक साबित हो रहे हैं।

बेशक

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

0

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

0

किसी अज्ञात तकनीक के साथ एक बड़ा जाल है। आप नहीं जानते कि ड्रेगन कहां हैं, और आप नहीं जानते कि कैसे "बाल के साथ" नई तकनीक को रगड़ना है।

सीखना समय लगेगा, और आपको अपने अनुमानों में यह होना चाहिए। इसके अलावा आपके अनुमानों की संभावना बहुत कम होगी ...

1

मैं यह सुनिश्चित करने के लिए कह सकता हूं कि वसंत पर विचार करने लायक है। यह आपको उतना ही देता है जितना आप ले सकते हैं, लेकिन यह उन चीज़ों से आपको परेशान नहीं करता है जिनकी आपको आवश्यकता नहीं है।

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

इन सभी मामलों के लिए वसंत में इसका अपना सरल, सहज ज्ञान युक्त, हल्का वजन समाधान है।

6

मैं सलाहकार के रूप में काम करता हूं, और मैंने कई परियोजनाएं देखी हैं जहां देवों ने सर्वलेट + जेएसपी के साथ शुरुआत की क्योंकि वे यही जानते थे, और यह शुरू करना बहुत आसान है। हालांकि, यह टीम को अपने स्वयं के प्लेटफॉर्म को लिखने का अवसर/बहाना देता है, which is more fun than using someone else's and just writing an application

जैसे ही परियोजना बढ़ती है, टीम अधिक से अधिक पहियों को फिर से शुरू करती है, जिनमें से कुछ square समाप्त होती हैं। यही वह जगह है जहां मैं तस्वीर दर्ज करता हूं - इस अर्ध-लचीले प्लेटफ़ॉर्म पर नई सामग्री जोड़ना इतना जटिल हो गया है कि देवताओं को मजबूती में कॉल किए बिना और फिक्सिंग बग को जोड़ना जारी नहीं रख सकता है। चोट के अपमान को जोड़ने के लिए, आंतरिक देव आमतौर पर उबाऊ बग फिक्स करने के लिए असाइन किए जाते हैं क्योंकि बग फिक्स को टीम के मालिकाना दृढ़ता-और-वेब ढांचे के बनने वाले गोरियों के प्रवेश के बारे में अधिक जानकारी की आवश्यकता होती है, और इसलिए gosh-danged सलाहकार नई, मजेदार सामान करने के लिए मिलता है।

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

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

1

जब कोई नई परियोजना शुरू करने के लिए अपरिचित प्रौद्योगिकियों/ढांचे का उपयोग करने की संख्या सीमित होती है। प्रत्येक ढांचे में सीखने में समय लगता है और प्रत्येक ढांचे में समस्याएं होती हैं, खासकर अगर सही ढंग से लागू नहीं होती है।

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

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