2015-04-19 12 views
6

मान लें कि हमारे पास कुछ libs हैं। कोर और सामान्य पुस्तकालय के बीच क्या अंतर है। दोनों की जिम्मेदारियों को कैसे पहचाना और संगठित किया जाना चाहिए।आम बनाम कोर - अंतर

+Common 
    -Class1 
+Core 
    -Class2 
+Lib1 has : Common 
+Lib2 has : Core, Common 

आम trurerly आम (सभी libs इसका इस्तेमाल) होना चाहिए? या केवल उन लोगों के लिए आम है जिन्हें इसकी आवश्यकता है?

प्रोजेक्ट को पुन: सक्रिय करने/बनाने के दौरान अच्छा अभ्यास क्या है?

मुझे कोर और कॉमन के बीच वास्तव में अंतर महसूस नहीं होता है।

+2

अच्छा अभ्यास: ऐसी चीजें करें जो समझ में आती हैं, [कम से कम आश्चर्य के सिद्धांत] का उल्लंघन न करें (http://en.wikipedia.org/wiki/Principle_of_least_astonishment) वास्तव में एक अच्छे कारण के बिना। आप अंतर महसूस नहीं कर रहे हैं क्योंकि यह एक मनमाना निर्णय है। – Jon

उत्तर

7

मुझे लगता है कि यह आपके विशेष एप्लिकेशन पर बहुत निर्भर करता है। एक केंद्रीकृत ऐप में, मुझे लगता है कि Core और Common फ़ोल्डर्स के बीच थोड़ा ओवरलैप हो सकता है। लेकिन सबसे महत्वपूर्ण बात यह है कि आपके ऐप के लिए यह समझ में आता है। ऐसा महसूस न करें कि आपको उन फ़ोल्डरों को सिर्फ इसलिए रखना होगा क्योंकि आपने इसे अन्य ऐप्स में देखा है ...

मेरे लिए Core और Common फ़ोल्डर्स कुछ परिदृश्यों में बहुत अधिक समझ में आता है - उदा। एक एपीआई और एक ग्राहक के साथ एक वेब ऐप। आपके पास API पक्ष में Core फ़ोल्डर हो सकता है, जहां कोर निष्पादन (व्यवसाय तर्क) होता है, और उसके बाद Common फ़ोल्डर होता है जिसमें आपको कुछ चीजों के साथ एपीआई और क्लाइंट पक्षों की आवश्यकता होती है - उदाहरण के लिए, एचटीपी अनुरोध सत्यापन या एक जेसन कनवर्टर।

वैसे भी, यह Core और अन्य प्रकार के ऐप्स में Common फ़ोल्डर होने का अर्थ हो सकता है।
उदाहरण के लिए, Core फ़ोल्डर में उन वर्गों को शामिल किया जाएगा जो केंद्रीय आपके ऐप के लिए हैं - व्यवसाय मॉडल कक्षाओं का विशाल बहुमत वहां होगा।
Common फ़ोल्डर में, दूसरे हाथ पर, आप कुछ अन्य वर्गों है कि साझा कर रहे हैं हो सकता है, लेकिन नहीं केंद्रीय - जैसे, एक Logger या एक MessageSender वहाँ हो सकता है ...

अपने छोटे मसौदा के रूप में कोड संरचना का, मुझे लगता है कि आपके Core पैकेज को संशोधित करने वाला एक है - Lib1Core का उपयोग क्यों नहीं करता है? अगर कुछ कोर है, तो आमतौर पर ऐसा इसलिए होता है क्योंकि चलाने के लिए बाकी सबकुछ इसकी आवश्यकता होती है। यदि आपके पास कोड नहीं है जो संकल्पनात्मक रूप से केंद्रीय है, तो हो सकता है कि आप अपना Core पैकेज हटा दें और केवल Common रखें?

अपने अन्य प्रश्न के लिए के रूप में - मुझे नहीं लगता कि Common सामान सब अन्य संकुल, लेकिन सिर्फ 2 या अधिक संकुल कुछ साझा साथ द्वारा साझा किया जाना चाहिए, कि आम माना जा सकता है।

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