मैं रेल फ्रेम, ग्रेल्स इत्यादि जैसे वेब ढांचे को देख रहा हूं। मुझे स्प्रिंग फ्रेमवर्क में हाइबरनेट के साथ अनुप्रयोग करने के लिए उपयोग किया जाता है ... और मुझे कुछ और उत्पादक चाहिए।मेरे लिए कौन सा वेब प्लेटफ़ॉर्म सही है?
मुझे पता चला कि चीजों में से एक यह है कि Grails में कुछ चीजें सेक्सी है, इसके साथ कुछ गंभीर समस्याएं हैं। Grails 'नियंत्रक:
1) बहुत लागू किया गया है। वे रनटाइम पर सुपर क्लास से विस्तार करने में सक्षम नहीं लगते हैं। मैंने बेस क्रियाओं और सहायक तरीकों को जोड़ने की कोशिश की, और ऐसा लगता है कि अंगूर उड़ाते हैं।
2) एक अप्रचलित अनुरोध पैरामीटर मॉडल (फॉर्म बैकिंग ऑब्जेक्ट्स के बजाय, जो बहुत अच्छे हैं) पर आधारित हैं।
3) परीक्षण करना मुश्किल है। कमांड ऑब्जेक्ट्स का पूरी तरह से अलग व्यवहार किया जाता है ... और यह वास्तव में नियंत्रक कोड लिखने के लिए परीक्षण लिखना बहुत मुश्किल है।
4) कमांड ऑब्जेक्ट्स पूरी तरह से अलग-अलग काम करते हैं। वे पूर्व-मान्य और बाध्य हैं, जो मूल पैरामीटर मॉडल की तुलना में बहुत अधिक असंगतता का कारण बनता है।
5) कमांड ऑब्जेक्ट्स पुन: प्रयोज्य नहीं हैं, और डोमेन की कक्षाओं, बाधाओं और क्षेत्रों जैसे अधिकांश सामानों का पुन: उपयोग करने के लिए पीछे की ओर दर्द होता है। बुनियादी वसंत में ऐसा करने के लिए यह सच है। Grails में क्या करना मुश्किल नहीं था?
6) जेनरेट की गई मचान शुद्ध बकवास है। यह आवेषण और अद्यतन को सामान्यीकृत नहीं करता है ... और यह वास्तव में कोड के ढेर को दो दृश्यों में कॉपी/पेस्ट करता है: create.gsp और edit.gsp। विचार खुद कुत्ते डू-डू के gargantuan ढेर हैं। यह इस तथ्य से आगे बढ़ाया गया है कि यह निम्न स्तर के पैरामीटर का उपयोग करता है न कि वस्तुओं।
एकीकरण परीक्षण वसंत एकीकरण परीक्षण से 30x धीमी है। यह घृणित है।
कुछ नकली परीक्षण लिखना बहुत कठिन है और तैनात होने पर काम करने की गारंटी नहीं है, मुझे लगता है कि यह तेजी से, tdd परीक्षण चक्र को हतोत्साहित करता है।
अधिकांश चीजें चलने के दौरान grails को खराब करने लगती हैं, जैसे टैगलिब जोड़ने, या वास्तव में कुछ भी। सर्वर पुनरारंभ समस्या बिल्कुल हल नहीं हुई थी।
मुझे लगता है कि स्प्रिंग/हाइबरनेट/जावा के साथ जाने का एकमात्र तरीका है। स्टार्टअप पर एक बहुत बड़ी लागत है, लेकिन मुझे पता है कि यह अंततः चिकनी हो जाएगा।
यह बेकार है कि मैं स्कैला जैसी भाषा का उपयोग नहीं कर सकता ... क्योंकि मूर्खता से, यह हाइबरनेट के साथ इतना असंगत है।
यह ऐप डेटाबेस पर रन-ऑफ-द-मिल यूआई भी नहीं है। इसमें से कुछ मिल गया है, लेकिन यह एक स्लच नहीं होने वाला है। मैं अब Grails के डर से डर रहा हूँ क्योंकि यह नियंत्रक परत में कैसे बकवास है।
मैं क्या कर सकता हूं पर सुझाव?
"यह बेकार है कि मैं स्कैला जैसी भाषा का उपयोग नहीं कर सकता ... क्योंकि मूर्खता से, यह हाइबरनेट के साथ इतना असंगत है।" - दिलचस्प, क्या आप विस्तारित करेंगे? –
असल में, क्योंकि बहुत से वसंत/हाइबरनेट विधियां ऑब्जेक्ट लेती हैं या लौटती हैं, आपको अपने कोड में इन्स्टेंसऑफ [ब्लेह] के रूप में बहुत कुछ करना होगा। स्कैला संग्रह और जावा संग्रह के बीच एक विसंगति भी है, इसलिए आपको उन्हें बदलने के लिए कुछ अतिरिक्त ब्लोट जोड़ना होगा। यह भी एक प्रदर्शन है। एनोटेशन का उपयोग करते समय, स्कैला को हर पैरामीटर के आस-पास ऐरे (...) का उपयोग करने की आवश्यकता होती है क्योंकि इसमें सिस्टैक्स में कोई भी तत्व तत्व अपवाद नहीं होता है ... जो कुछ चीजों को थोड़ा और अधिक फुलाता है। – egervari
उदाहरण का उपयोग क्यों करें? ऑब्जेक्ट प्रकार पर कोई जानकारी क्यों नहीं जोड़ें? –