मैं समझता हूं कि एसओएलआईडी को उन परिस्थितियों में नियमित रूप से पूरा करने और उपयोग करने के लिए माना जाता है जहां मॉड्यूलरिटी महत्वपूर्ण है और इसके लक्ष्य स्पष्ट रूप से उपयोगी हैं। हालाँकि, दो चीजें मुझे इसे अपने कोडबेस पर लगातार लागू करने से रोकती हैं:
मैं समय से पहले अमूर्तता से बचना चाहता हूं। मेरे अनुभव में ठोस उपयोग के मामलों के बिना अमूर्त रेखाएं खींचना (जिस तरह का अब या निकट भविष्य में मौजूद है ) उन्हें गलत स्थानों पर खींचता है । जब मैं इस तरह के कोड को संशोधित करने की कोशिश करता हूं, तो एब्सट्रैक्शन लाइनें मदद करने के बजाय रास्ते में आती हैं। इसलिए, मैं किसी भी एब्सट्रैक्शन लाइनों को नहीं खींचने के पक्ष में गलत करना चाहता हूं जब तक कि मुझे यह पता नहीं है कि वे कहां उपयोगी होंगे।
अगर मैं अपने कोड को और अधिक क्रियाशील, समझने में कठिन, आदि बनाता हूं और किसी भी दोहराव को समाप्त नहीं करता हूं, तो मुझे अपने स्वयं के लिए बढ़ते प्रतिरूप को औचित्य देना कठिन लगता है। मुझे सरल, कसकर युग्मित प्रक्रियात्मक या ईश्वर ऑब्जेक्ट कोड लगता है कभी-कभी बहुत अच्छी तरह से फैली रवियोली कोड की तुलना में समझना आसान होता है क्योंकि प्रवाह सरल और रैखिक होता है। इसे लिखना भी बहुत आसान है।
दूसरी ओर, यह मानसिकता अक्सर देव वस्तुओं की ओर ले जाती है। मैं आम तौर पर इन रूढ़िवादी को प्रतिबिंबित करता हूं, केवल स्पष्ट अमूर्त रेखाओं को जोड़ते हुए जब मैं स्पष्ट पैटर्न उभरते हुए देखता हूं। क्या, अगर कुछ भी, भगवान की वस्तुओं के साथ गलत है और कसकर युग्मित कोड अगर आपको स्पष्ट रूप से अधिक प्रतिरूपकता की आवश्यकता नहीं है, तो महत्वपूर्ण दोहराव नहीं है और कोड पठनीय है?
संपादित करें: जहाँ तक व्यक्तिगत ठोस सिद्धांतों का तात्पर्य है, मेरा आशय इस बात पर जोर देना था कि लिस्कोव सबस्टीट्यूशन आईएमएचओ सामान्य ज्ञान की औपचारिकता है और इसे हर जगह लागू किया जाना चाहिए, क्योंकि अमूर्त का कोई मतलब नहीं है। इसके अलावा, हर वर्ग को अमूर्तता के कुछ स्तर पर एक ही ज़िम्मेदारी होनी चाहिए, हालांकि यह एक बहुत ही उच्च स्तर हो सकता है जिसमें कार्यान्वयन विवरण सभी एक विशाल 2,000 लाइन वर्ग में crammed हो। मूल रूप से, आपके अमूर्त को यह समझ में आना चाहिए कि आप अमूर्त को कहाँ चुनते हैं। जिन मामलों में मैं स्पष्ट रूप से उपयोगी नहीं है, उन मामलों में मैं जिन सिद्धांतों पर सवाल उठाता हूं, वे खुले-बंद, इंटरफ़ेस अलगाव और विशेष रूप से निर्भरता के उलटा हैं, क्योंकि ये मॉड्यूलरिटी के बारे में हैं, न कि केवल अमूर्तता का अर्थ है।