2010-05-23 7 views
7

एक ग्रेल्स ऐप जो मैं काम कर रहा हूं वह बहुत बड़ा हो रहा है, और इसे में कई मॉड्यूल में पुन: सक्रिय करना अच्छा होगा, ताकि हमें हर बार पूरी चीज़ को फिर से तैनात करने की आवश्यकता न हो।एक बड़े Grails ऐप मॉड्यूलर करने के लिए सबसे अच्छा अभ्यास?

कई मॉड्यूल में Grails ऐप को विभाजित करने का सबसे अच्छा अभ्यास क्या है? विशेष रूप से मैं डोमेन कक्षाओं + प्रासंगिक सेवाओं का एक पैकेज बनाना चाहता हूं और इसे मॉड्यूल के रूप में ऐप में उपयोग करना चाहता हूं। क्या यह संभव है? क्या प्लगइन्स के साथ ऐसा करना संभव है?

उत्तर

8

है कि क्या प्लगइन्स के लिए कर रहे हैं। कई मॉड्यूल में एक बड़े ऐप को विभाजित करने के मामले में, "इनलाइन प्लगइन" सुविधा का उपयोग करना बेहद उपयोगी है। बस

grails.plugin.location."<plugin-name>" = "<path to plugin dir>" 

अपने ऐप के grails-app/conf/BuildConfig.groovy पर जोड़ें। ऐसा करके, प्लगइन के अंदर प्रत्येक संशोधन के बाद आपको package-plugin और install-plugin चलाने की आवश्यकता नहीं है।

प्लगइन्स का उपयोग करने के विवरण के लिए, Grails संदर्भ दस्तावेज़, या उपलब्ध पुस्तकों में से एक देखें: "परिभाषाओं के लिए परिभाषित मार्गदर्शिका" या "क्रिया में Grails"। दोनों अपनी लागत के लायक हैं।

+0

मैं अत्यधिक बर्ट बेकविथ द्वारा "प्रोग्रामिंग Grails" की सलाह देते हैं। यह ऊपर वर्णित शीर्षकों में से किसी एक से अधिक उन्नत और हालिया है। –

3

Grails 'plugins ऐप्स में कोड/डिज़ाइन/स्कीमा पुन: प्रयोज्यता के लिए एक अच्छा पैकेजिंग तंत्र है, या कई लेखकों में कोड स्वामित्व को स्पष्ट करने के लिए (जो एक बड़े ऐप की संभावना है), लेकिन मुझे नहीं लगता कि वे सहेजेंगे आप तैनाती दर्द के मामले में बहुत - सब के बाद, कोड अभी भी वहाँ अनुप्रयोग में है, और एप्लिकेशन को अभी भी, प्लगइन कॉन्फ़िगर करने के लिए है आदि

हाँ, आप एक छोटे से समय की कैशिंग के कारण बचा सकते हैं तैनाती लक्ष्य पर प्लगइन, लेकिन आप कोड, परीक्षण और प्लगइन के संस्करण के प्रबंधन में अतिरिक्त जटिलताओं के साथ उस भुगतान का भुगतान करेंगे।

कहा कि, मैं एक डोमेन + सेवाओं प्लगइन डालने लगता है पुन: उपयोग के लिए एक अच्छा मॉड्यूल है - हम सिर्फ इतना है कि किया है - लेकिन इसे और अधिक तैनाती समस्याओं के साथ मदद की तुलना में चोट लगी है।

आईएमओ, एक बड़े ग्रिल ऐप के लिए 'सर्वश्रेष्ठ अभ्यास', ऐप को डेटाबेस या मेमकैच या मैसेजिंग के माध्यम से संचार के साथ छोटे ऐप्स में विभाजित करने के बारे में सोचना होगा - "क्लीनर" पूरी चीज को फिर से तैनात करना है "और बेहतर स्केलेबिलिटी की तरफ बढ़ता है। प्रत्येक ऐप में प्लगइन का उपयोग करें जहां आप कोड/डिज़ाइन पुन: उपयोग या स्कीमा अलगाव चाहते हैं और विभिन्न ओवरहेड्स को उचित ठहराने के लिए पर्याप्त पुन: उपयोग करने जा रहे हैं।

0

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

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