'कोड स्क्यू ’क्या है?


11

स्काला पर ओ'रेली पुस्तक में, मैंने पढ़ा है कि कोड का कॉपी-पेस्टिंग बनाता है:

... कोड-ब्लोट, रखरखाव और तिरछा के मुद्दे बनाता है ,

मैं संदर्भ में तिरछा शब्द की कोई स्पष्ट परिभाषा नहीं देख सकता। मैं कॉपी-पेस्ट करने की समस्याओं से अवगत हूं, लेकिन मैं उन्हें 'तिरछा' शब्द के साथ फिट नहीं बना सकता। चूंकि यह एक ओ'रिली किताब में उपयोग किया जाता है इसलिए मैं अनुमान लगा रहा हूं कि यह एक वास्तविक प्रोग्रामिंग शब्द है।

कोई संकेत?

जवाबों:


19

अपनी सबसे पारंपरिक परिभाषा में तिरछा का अर्थ है संरेखण से बाहर (समानांतर नहीं)। जाहिर है जब कोड की नकल की जाती है और चिपकाई जाती है तो दोनों प्रतियां समान और समानांतर होती हैं। यह कोई आक्रमणकारी नहीं है। एक प्रति में किए गए परिवर्तन को दूसरी प्रति (लापरवाही या अज्ञानता के कारण) के लिए बनाने की गारंटी नहीं है। अब कोड के दो संस्करण दो अलग-अलग स्थानों में मौजूद हैं जो तिरछे हैं (अब समान नहीं हैं)। यह अजीब बग पैदा कर सकता है जब व्यवहार एक जगह काम करने लगता है और दूसरे में नहीं। अपना कोड DRY रखें (अपने आप को दोहराएं नहीं)।

EDIT / ADDITION: यदि आपके पास कॉपी और पेस्ट करने का आग्रह है, तो आपको जो करना चाहिए, उससे अधिक आप एक साझा सुपरक्लास (ऑब्जेक्ट ओरिएंटेड) में कॉपी कर रहे हैं या किसी प्रकार का यूटिलिटी फंक्शन (फंक्शनल) शामिल कर रहे हैं।


एक अच्छी व्याख्या के लिए +1। कुछ रेचन के लिए भी - मुझे एक कोडबेस से निपटना पड़ता है जिसमें कॉपी-पेस्ट कोड की सैकड़ों और सैकड़ों लाइनें होती हैं, इस तरह की समस्या के साथ, जिसे ठीक करने की जरूरत है।
KChaloux

2

कभी एक बच्चे के रूप में टेलीफोन खेल खेलते हैं? आप जानते हैं कि प्रत्येक व्यक्ति पंक्ति में अगले व्यक्ति के लिए एक वाक्यांश फुसफुसाता है और अंत में, अंतिम व्यक्ति जोर से वाक्यांश कहता है और सभी हंसते हैं कि यह मूल से कितना अलग हो गया है? वह तिरछा है। जब आप कोड को कॉपी और पेस्ट करते हैं, तो आप अनिवार्य रूप से एक या अधिक प्रतियों में छोटे बदलाव करते हैं। और जितनी बार आप एक ही कोड को कॉपी और पेस्ट करते हैं, उतने ही अधिक परिवर्तन होते हैं और कोड मूल से दूर तिरछा हो जाता है। मैंने सैकड़ों कॉपी और पेस्ट किए गए ब्लॉक के साथ कोड देखा है, प्रत्येक को केवल कुछ पात्रों द्वारा अलग-अलग किया गया है, इसे बनाए रखना लगभग असंभव है। यदि आप स्वयं को कोड के एक भाग को काटना और पेस्ट करना चाहते हैं, तो आपको कम से कम इसे अपने कार्य में लगाने पर विचार करना चाहिए।


3
अंतर कॉपी-और-पेस्ट के कारण नहीं होते हैं । कॉपी-एंड-पेस्ट के बाद वे होते हैं।
स्टीफन सी

1
यह सच है, लेकिन यदि कोड को कॉपी और पेस्ट नहीं किया गया होता, तो मतभेद नहीं होते।
जिम नट

यह एक अच्छा उदाहरण है, लेकिन सादृश्य अवधारणा से तिरछा है। सादृश्य में, पेस्ट एक अलग प्रतिलिपि बनाता है, जबकि वास्तविक अवधारणा में, प्रतिलिपि समान है, लेकिन सिंक्रनाइज़ नहीं है, इसलिए तिरछा का कारण बनता है।
सुंदरदीप
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.