समस्या सारांश:
लंबी कहानी छोटी, मुझे एक कोड आधार और एक विकास टीम विरासत में मिली जिसे मुझे बदलने की अनुमति नहीं है और भगवान की वस्तुओं का उपयोग एक बड़ा मुद्दा है। आगे बढ़ते हुए, मैं चाहता हूं कि हमारे पास रि-फैक्टर चीजें हों, लेकिन मुझे उन टीमों से पुश-बैक मिल रहा है जो ईश्वर की वस्तुओं के साथ सब कुछ करना चाहते हैं "क्योंकि इसका आसान" और इसका मतलब है कि मुझे फिर से फैक्टर की अनुमति नहीं दी जाएगी। मैंने अपने वर्षों के विकास के अनुभव का हवाला देते हुए कहा, कि मैं नया बॉस हूं, जो इन चीजों को जानने के लिए किराए पर लिया गया था, इत्यादि, और इसलिए तीसरे पक्ष के अपतटीय कंपनियों ने बिक्री प्रतिनिधि को निरस्त कर दिया, और यह अब कार्यकारी स्तर पर है और मेरी बैठक कल है और मैं सर्वोत्तम प्रथाओं की वकालत करने के लिए बहुत सारे तकनीकी गोला-बारूद के साथ जाना चाहता हूं क्योंकि मुझे लगता है कि यह लंबे समय में सस्ता होगा (और मुझे व्यक्तिगत रूप से लगता है कि कंपनी के लिए तीसरे पक्ष को क्या चिंता है)।
मेरा मुद्दा तकनीकी स्तर से है, मैं इसके अच्छे दीर्घकालिक शब्द को जानता हूं लेकिन मुझे अल्ट्रा शॉर्ट टर्म और 6 महीने के कार्यकाल से परेशानी हो रही है, और जबकि इसकी मुझे कुछ "जानकारी" है, मैं इसे संदर्भ और उद्धृत संसाधनों के साथ साबित नहीं कर सकता एक व्यक्ति (रॉबर्ट सी। मार्टिन, उर्फ अंकल बॉब), जैसा कि मुझसे पूछा जा रहा है जैसा कि मुझे बताया गया है कि एक व्यक्ति और केवल एक व्यक्ति (रॉबर्ट सी मार्टिन) का डेटा एक तर्क से अच्छा नहीं है ।
सवाल:
कुछ ऐसे संसाधन हैं जो मैं प्रत्यक्ष रूप से उद्धृत कर सकता हूं (शीर्षक, वर्ष प्रकाशित, पृष्ठ संख्या, उद्धरण) क्षेत्र के जाने-माने विशेषज्ञों द्वारा स्पष्ट रूप से कहा गया है कि "भगवान" वस्तुओं / वर्गों / प्रणालियों का यह उपयोग बुरा है (या अच्छा है, क्योंकि हम देख रहे हैं। सबसे तकनीकी रूप से वैध समाधान के लिए)?
अनुसंधान मैं पहले से ही किया है:
- मेरे पास यहां कई किताबें हैं और मैंने "देव वस्तु" और "देव वर्ग" शब्दों के उपयोग के लिए उनकी अनुक्रमणिकाएं खोजी हैं। मैंने पाया कि इसका लगभग कभी उपयोग नहीं किया गया था और उदाहरण के लिए मेरे पास मौजूद गोफ़ बुक की प्रति, कभी भी इसका उपयोग नहीं करता (कम से कम मेरे सामने सूचकांक के अनुसार) लेकिन मैंने इसे नीचे दो पुस्तकों में पाया है, लेकिन मैं और अधिक चाहता हूं मैं उपयोग कर सकता हूं।
- मैंने "गॉड ऑब्जेक्ट" के लिए विकिपीडिया पृष्ठ की जाँच की और वर्तमान में थोड़ा संदर्भ लिंक के साथ एक स्टब है, हालांकि मैं व्यक्तिगत रूप से इस बात से सहमत हूँ कि यह कहता है, यह मेरे पास ऐसे वातावरण में उपयोग नहीं कर सकता जहाँ व्यक्तिगत अनुभव को मान्य नहीं माना जाता है। उद्धृत पुस्तक को भी उन लोगों द्वारा मान्य माना जाता है जिन्हें मैं इन तकनीकी बिंदुओं पर बहस कर रहा हूं क्योंकि वे जो तर्क दे रहे हैं वह यह है कि "यह एक बार बुरा माना गया था, लेकिन कोई भी इसे साबित नहीं कर सका, और अब आधुनिक सॉफ्टवेयर कहता है" भगवान "वस्तुओं का उपयोग करने के लिए अच्छा है"। मैं व्यक्तिगत रूप से मानता हूं कि यह कथन गलत है, लेकिन मैं सच साबित करना चाहता हूं, चाहे वह कुछ भी हो।
- रॉबर्ट सी मार्टिन के "एजाइल प्रिंसिपल्स, पैटर्न, एंड प्रैक्टिस इन सी #" (आईएसबीएन: 0-13-185725-8, हार्डकवर) जहां पेज 266 पर लिखा है, "हर कोई जानता है कि भगवान कक्षाएं एक बुरा विचार हैं। हम चाहते हैं। एक सिस्टम के सभी इंटेलिजेंस को एक ही ऑब्जेक्ट या किसी एक फंक्शन में कंसंट्रेट करने के लिए। OOD के लक्ष्यों में से एक है, कई वर्गों और कई फंक्शन में व्यवहार का विभाजन और वितरण। " - और फिर कभी-कभी ईश्वर वर्गों का उपयोग करने के लिए कभी-कभी इसका बेहतर कहना आगे बढ़ता है (उदाहरण के रूप में माइक्रो-नियंत्रक का हवाला देते हुए)।
- रॉबर्ट सी मार्टिन के "क्लीन कोड: ए हैंडबुक ऑफ़ एजाइल सॉफ्टवेयर क्राफ्ट्समैनशिप" पृष्ठ 136 (और केवल इस पृष्ठ पर) "गॉड क्लास" के बारे में बात करता है और इसे "कक्षाओं को छोटा होना चाहिए" नियम के उल्लंघन के प्रमुख उदाहरण के रूप में कहता है वह एकल जिम्मेदारी सिद्धांत को बढ़ावा देने के लिए उपयोग करता है "पेज 138 पर शुरू होता है।
मेरे पास मेरे सभी संदर्भ और उद्धरण एक ही व्यक्ति (रॉबर्ट सी। मार्टिन) और एक ही व्यक्ति / स्रोत से हैं। मुझे बताया जा रहा है कि क्योंकि वह सिर्फ एक दृश्य है, "गॉड क्लासेस" का उपयोग नहीं करने की मेरी इच्छा अमान्य है और इसे सॉफ्टवेयर उद्योग में मानक सर्वोत्तम अभ्यास के रूप में स्वीकार नहीं किया गया है। क्या ये सच है? क्या मैं चाचा बॉब के शिक्षण को बनाए रखने की कोशिश करके तकनीकी दृष्टिकोण से चीजें गलत कर रहा हूं?
गॉड ऑब्जेक्ट्स एंड ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग एंड डिज़ाइन:
जितना अधिक मैं इस बारे में सोचता हूं उतना ही मुझे लगता है कि यह कुछ और है जो आप ओओपी का अध्ययन करते समय सीखते हैं और इसे कभी भी स्पष्ट रूप से नहीं कहा जाता है; इसके अच्छे डिजाइन का निहितार्थ मेरी सोच है (कृपया मुझे सुधारने के लिए स्वतंत्र महसूस करें, कृपया, जैसा कि मैं सीखना चाहता हूं), समस्या यह है कि मैं इसे "जानता" हूं, लेकिन हर कोई ऐसा नहीं करता है, इसलिए इस मामले में इसका एक वैध तर्क नहीं माना जाता है क्योंकि मैं प्रभावी रूप से इसे सार्वभौमिक सत्य कह रहा हूं जब वास्तव में अधिकांश लोग सांख्यिकीय रूप से अनभिज्ञ होते हैं क्योंकि सांख्यिकीय रूप से अधिकांश लोग प्रोग्रामर नहीं होते हैं।
निष्कर्ष:
मुझे इस बात का नुकसान है कि सर्वोत्तम परिणामों को प्राप्त करने के लिए क्या खोज करनी है, क्योंकि वे एक तकनीकी दावा कर रहे हैं और मैं सच्चाई जानना चाहता हूं और इसे एक वास्तविक इंजीनियर / वैज्ञानिक जैसे उद्धरणों के साथ साबित कर सकता हूं, भले ही मैं कोड के साथ अपने व्यक्तिगत अनुभव के कारण देव वस्तुओं के खिलाफ पक्षपाती हूं जिसने उनका उपयोग किया। किसी भी सहायता या प्रशंसा पत्र की गहराई से सराहना की जाएगी।