तीन के नियम में तीसरी बार तक प्रतीक्षा करने का तर्क?


16

मैं अभी विकिपीडिया के " रूल ऑफ़ थ्री " लेख पर आया हूँ

तीन का नियम एक कोड का नियम है जो यह तय करने के लिए है कि कोड का एक दोहराया हुआ टुकड़ा एक नई प्रक्रिया द्वारा प्रतिस्थापित किया जाना चाहिए। यह बताता है कि कोड को एक बार कॉपी किया जा सकता है, लेकिन जब एक ही कोड का तीन बार उपयोग किया जाता है, तो इसे एक नई प्रक्रिया में निकाला जाना चाहिए। इस नियम को मार्टिन फाउलर ने रिफैक्टरिंग में पेश किया और डॉन रॉबर्ट्स को जिम्मेदार ठहराया।

मुझे पता है कि यह सिर्फ अंगूठे का एक नियम है, लेकिन केवल दूसरे दोहराव के बाद इसे रिफैक्ट करने की सिफारिश क्यों की जाती है? जब हम पहले दोहराव को लिखते हैं तो क्या रिफैक्टिंग में कोई कमी आती है?


2
देखें दो एक असंभव संख्या है और दृष्टिकोण के एक और सेट के लिए शून्य-एक-इन्फिनिटी नियम है।
आकाशवाणी A

सॉफ्टवेयर विकास के बारे में बात करते समय, विकिपीडिया की तुलना में मूल विकी अक्सर बेहतर स्रोत होता है। आखिरकार, वार्ड कनिंघम ने सॉफ्टवेयर विकास के बारे में बात करने के साधन के रूप में विकी का आविष्कार किया । देखें C2.Com/cgi/wiki?RuleOfThree
Jörg डब्ल्यू Mittag

2
यदि पुन: उपयोग के लिए 2 परिदृश्य हैं, तो आप तर्क को आसानी से शाखा कर सकते हैं (यदि, और)। एक बार जब यह तीन संभावित रास्तों पर पहुंच जाता है, तो इसे दोहराने और बनाए रखने की तुलना में पुन: कारक बन जाता है।
एंड्रयू लुईस


मुझे लगता है कि यह कॉपी-पेस्ट के लिए एक सुविधाजनक बहाना है, जब कोई वास्तव में रिफ्लेक्टर और सामान्य कर सकता है। जब आपको तीसरा मामला मिलता है, तो आप अधिक सामान्य कर सकते हैं।
एलेक्सी

जवाबों:


17

मुझे लगता है कि अंगूठे का यह नियम मौजूद है क्योंकि पहली बार या पहले दोहराव के बाद कोड डिजाइन करते समय "क्या हुआ अगर ..." खेलने में पकड़ा जाना आसान है। मुझे कुछ मामलों में गंभीर विश्लेषण पक्षाघात का सामना करना पड़ा है क्योंकि लोगों ने कार्यक्षमता डिजाइन करना शुरू कर दिया है जो बाद में आवश्यक हो सकता है। लेकिन तत्काल समस्या के लिए जरूरी नहीं।

भविष्य के री-फैक्टरिंग के लिए कोड को उत्तरदायी बनाए रखने के लिए केवल आपकी आवश्यकता के अनुसार डिजाइन / लेखन के लिए एक कला है।


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