लेख से:
आम तौर पर, यो-यो समस्या किसी भी स्थिति को संदर्भित कर सकती है, जहां किसी व्यक्ति को किसी अवधारणा को समझने के लिए सूचना के विभिन्न स्रोतों के बीच फ़्लिप करते रहना चाहिए।
स्रोत कोड को जितना लिखा जाता है, उससे कहीं अधिक बार पढ़ा जाता है। इस प्रकार, कई फाइलों के बीच स्विच करने की यो-यो समस्या एक चिंता का विषय है।
हालाँकि, नहीं , जब आप अन्योन्याश्रित मॉड्यूल या वर्गों (जो एक दूसरे के बीच आगे-पीछे कॉल करते हैं) के साथ काम करते समय यो-यो समस्या अधिक प्रासंगिक लगती है। वे पढ़ने के लिए एक विशेष प्रकार के दुःस्वप्न हैं, और संभावित रूप से यो-यो समस्या के संचयक के दिमाग में क्या था।
हालाँकि - हाँ , अमूर्तता की कई परतों से बचना ज़रूरी है!
सभी गैर-तुच्छ सार, कुछ हद तक टपका हुआ है। - लीक के सार का नियम।
उदाहरण के लिए, मैं मिमीमा के जवाब में की गई धारणा से असहमत हूं कि "आपको पता वर्ग को समझने के लिए ज़िपकोड कोड [(यात्रा)] के लिए यो-यो करने की आवश्यकता नहीं है"। मेरा अनुभव है कि आप ऐसा करते हैं - कम से कम पहली बार जब आप कोड पढ़ते हैं। हालांकि, जैसा कि अन्य ने नोट किया है, ऐसे समय होते हैं जब कोई ZipCode
वर्ग उपयुक्त होता है।
YAGNI (हां गोना नहीं है, यह की आवश्यकता है) लज़ान्या कोड (कोड भी कई परतों के साथ) से बचने के लिए पालन करने के लिए एक बेहतर स्वरूप है - जैसे प्रकार के रूप में संक्षेपण हैं, और कक्षाओं प्रोग्रामर वहाँ सहायता करने के लिए कर रहे हैं, और जब तक वे नहीं किया जाना चाहिए रहे हैं एक सहायता।
मैं व्यक्तिगत रूप से "कोड की पंक्तियों को बचाने" (और निश्चित रूप से संबंधित "सहेजें फ़ाइलें / मॉड्यूल / कक्षाएं", आदि) का लक्ष्य रखता हूं। मुझे विश्वास है कि कुछ ऐसे भी हैं जो मुझ पर "आदिम जुनूनी" का भाव लागू करेंगे - मुझे लगता है कि कोड के लिए अधिक महत्वपूर्ण है जो लेबल, पैटर्न और विरोधी पैटर्न के बारे में चिंता करना आसान है । किसी फ़ंक्शन, मॉड्यूल / फ़ाइल / क्लास को बनाते समय या किसी सामान्य स्थान पर फ़ंक्शन को रखने का सही विकल्प बहुत स्थितिजन्य है। मैं पुन: प्रयोज्य पुस्तकालय कोड के लिए 3-100 लाइन फ़ंक्शन, 80-500 लाइन फ़ाइलों, और "1, 2, n" के लिए मोटे तौर पर लक्ष्य रखता हूं ( एसएलओसी - टिप्पणियों या बॉयलरप्लेट शामिल नहीं है; मैं आमतौर पर कम से कम 1 अतिरिक्त एसएलओसी न्यूनतम प्रति पंक्ति चाहता हूं। बॉयलरप्लेट)।
अधिकांश सकारात्मक पैटर्न डेवलपर्स से ठीक उसी तरह से उत्पन्न हुए हैं, जब उन्हें उनकी आवश्यकता थी । हल करने के लिए एक ही समस्या के बिना पैटर्न लागू करने की कोशिश करने की तुलना में पठनीय कोड लिखना सीखना कितना महत्वपूर्ण है। कोई भी अच्छा डेवलपर फैक्ट्री पैटर्न को बिना किसी असामान्य मामले में पहले देखे बिना लागू कर सकता है जहां यह उनकी समस्या के लिए सही फिट है। मैंने फ़ैक्टरी पैटर्न, ऑब्जर्वर पैटर्न का उपयोग किया है, और शायद सैकड़ों के अलावा, उनका नाम जाने बिना (यानी, "चर असाइनमेंट पैटर्न" है?)। एक मज़ेदार प्रयोग के लिए - देखें कि JS भाषा में कितने GoF पैटर्न बनाए गए हैं - मैंने 2009 में लगभग 12-15 के बाद गिनती करना बंद कर दिया था। फ़ैक्टरी पैटर्न एक जेएस कंस्ट्रक्टर से एक वस्तु को वापस करने के लिए जितना सरल है, उदाहरण के लिए - कोई ज़रूरत नहीं है एक विजेट।
तो - हाँ , कभी-कभी ZipCode
एक अच्छा वर्ग होता है। हालांकि, नहीं , यो-यो समस्या कड़ाई से प्रासंगिक नहीं है।