2011-03-22 10 views
7

मैं ग्रोवी और ग्रेल्स की एक मौजूदा कोडेबेस चुन रहा हूं, लेकिन पैकेज संरचना मेरे लिए बहुत अजीब लगती है।Grails पैकेज संरचना

एक डोमेन वर्ग वे उस वर्ग के नियंत्रक के लिए उसके बाद निम्न पैकेज com.company.domain में रख लिए यह com.company.controller

कि संरचना डोमेन और नियंत्रक के बाद से मेरे लिए बहुत दूर लगता है कक्षाएं पहले से ही grails-app फ़ोल्डर में अपने फ़ोल्डर्स के तहत व्यवस्थित की जाती हैं।

मेरी योजना com.company.billing और com.company.util जैसे वास्तविक उपयोग के आधार पर संकुल और समूह को फिर से शुरू करना है।

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

उत्तर

10

मुझे लगता है कि पैकेज नामों को विभिन्न व्यावसायिक पहलुओं से संबंधित कोड अलग करना चाहिए। उदाहरण के लिए एक शॉपिंग वेबसाइट, मैं सलाह देते हैं:

  • com.mycompany.myfancywebsite.product सभी उत्पाद से संबंधित सामान के लिए (जैसे उत्पाद डोमेन वर्ग, ProductDetailController आदि)
  • सभी शॉपिंग कार्ट संबंधित सामान (जैसे CartController, ShippingCostCalculationService आदि) के लिए com.mycompany.myfancywebsite.cart
  • सभी भुगतान संबंधी बातें करने के com.mycompany.myfancywebsite.payment

IMHO यह भावना कोड के "प्रकार" भेद करने के लिए पैकेज के नाम का उपयोग करने के लिए नहीं है (उदाहरण के लिए डोमेन, नियंत्रक, सेवा ...), यह केवल n कहते हैं ओ इसके लिए मूल्य।

मैं पैकेज नामों में util का उपयोग करके सावधानी से अनुशंसा करता हूं, यह एक संकेत हो सकता है कि आपका कोड केंद्रित नहीं है।

आगे पढ़ने के लिए, उत्कृष्ट पुस्तक "स्वच्छ कोड" देखें। http://weblog.dangertree.net/2008/11/22/grails-package-naming/

+0

धन्यवाद, मैं ज्यादातर सामान्य में कुछ सामान्य कोशिश करने और उपयोग करने के लिए उपयोग में फेंक देता हूं। –

+0

मैंने लिंक को बहुत अच्छा लग रहा है और यह विशेष रूप से कोड के प्रकार के लिए पैकेज का उपयोग न करने के लिए कॉल करता है। "साफ कोड" का सुझाव देने के लिए –

+2

+1 .. यह वास्तव में एक अद्भुत पुस्तक है :) – lucke84