यह कुछ हद तक विवादास्पद विषय है, और मुझे लगता है कि प्रोग्रामर के रूप में कई राय हैं। लेकिन इसके लिए, मैं जानना चाहता हूं कि व्यवसाय में सामान्य प्रथाएं क्या हैं (या आपके कार्य स्थानों में)।
मेरे कार्य स्थान में हमारे पास एक सख्त कोडिंग दिशानिर्देश हैं। इसका एक भाग जादू के तार / संख्या के लिए समर्पित है। यह बताता है (C # के लिए):
प्रतीकात्मक स्थिरांक को परिभाषित करने के अलावा, अपने कोड में शाब्दिक मानों का, या तो संख्यात्मक या तार का उपयोग न करें। स्थिरांक को परिभाषित करने के लिए निम्नलिखित पैटर्न का उपयोग करें:
public class Whatever { public static readonly Color PapayaWhip = new Color(0xFFEFD5); public const int MaxNumberOfWheels = 18; }
अपवाद हैं: मान 0, 1 और अशक्त लगभग हमेशा सुरक्षित रूप से उपयोग किए जा सकते हैं। बहुत बार मान 2 और -1 ठीक भी होते हैं। लॉगिंग या ट्रेसिंग के लिए इच्छित स्ट्रिंग्स को इस नियम से छूट दी गई है। साहित्य की अनुमति तब दी जाती है जब उनका अर्थ संदर्भ से स्पष्ट होता है, न कि भविष्य में होने वाले परिवर्तनों के अधीन।
mean = (a + b) / 2; // okay
WaitMilliseconds(waitTimeInSeconds * 1000); // clear enough
एक आदर्श स्थिति जब कोड की पठनीयता / स्थिरता पर प्रभाव दिखाने वाले कुछ आधिकारिक शोध पत्र होंगे:
- मैजिक नंबर / स्ट्रिंग्स सभी जगह हैं
- मैजिक स्ट्रिंग्स / नंबरों को लगातार घोषणाओं द्वारा प्रतिस्थापित किया जाता है (या कवरेज के विभिन्न डिग्री में) - और कृपया "यथोचित" का उपयोग करने के लिए मुझ पर चिल्लाओ मत, मुझे पता है कि हर कोई अलग विचार रखता है कि "यथोचित" क्या है
- मैजिक स्ट्रिंग्स / नंबरों को अधिकता से और उन जगहों पर रखा जाता है जहां उन्हें नहीं होना पड़ेगा (नीचे मेरा उदाहरण देखें)
मैं यह करना चाहता हूं कि जब मेरे एक कोलेजियम के साथ बहस हो रही हो, तो कुछ वैज्ञानिक आधार वाली दलीलें दी जाए, जो इस प्रकार बताए जा रहे हैं:
private const char SemiColon = ';';
private const char Space = ' ';
private const int NumberTen = 10;
एक और उदाहरण होगा (और यह एक जावास्क्रिप्ट में है):
var someNumericDisplay = new NumericDisplay("#Div_ID_Here");
क्या आप अपनी आईडी फ़ाइल के ऊपर DOM ID चिपकाते हैं अगर उस ID का उपयोग केवल 1 स्थान पर किया जाता है?
मैंने निम्नलिखित विषयों को पढ़ा है:
StackExchange
StackOverflow
बाइट्स आईटी समुदाय में
और भी कई लेख हैं, और इन्हें पढ़ने के बाद कुछ पैटर्न उभर कर आते हैं।
तो मेरा सवाल यह होना चाहिए कि हमारे कोड में मैजिक स्ट्रिंग्स और संख्याओं का उपयोग किया जाए? मैं विशेष रूप से विशेषज्ञ उत्तरों की तलाश में हूं जो यदि संभव हो तो संदर्भों द्वारा समर्थित हैं।
NumberTen = 10
यह व्यर्थ है क्योंकि संख्या 10 को फिर से परिभाषित नहीं किया जाएगा। MaxRetryCount = 10
यह एक बिंदु है जिसे हम अधिकतम रिट्री काउंट बदलना चाहते हैं। private const char SemiColon = ';';
बेवकूफ। private const char LineTerminator = ';'
; होशियार।