वैरिएबल की व्याख्या करना
आपका मामला वैरिएबल रिफैक्टरिंग की शुरुआत करने वाला एक उदाहरण है। संक्षेप में, एक समझाने वाला चर वह है जो कड़ाई से आवश्यक नहीं है, लेकिन आपको पठनीयता बढ़ाने के उद्देश्य से किसी चीज़ को स्पष्ट नाम देने की अनुमति देता है।
अच्छी गुणवत्ता कोड पाठक के लिए इरादे का संचार करता है; और एक पेशेवर डेवलपर के रूप में पठनीयता और स्थिरता आपके # 1 लक्ष्य हैं।
जैसे, अंगूठे का नियम मैं सुझाऊंगा: यदि आपके पैरामीटर्स का उद्देश्य तुरंत स्पष्ट नहीं है, तो एक अच्छा नाम देने के लिए एक चर का उपयोग करने के लिए स्वतंत्र महसूस करें। मुझे लगता है कि यह सामान्य रूप से एक अच्छा अभ्यास है (जब तक कि दुरुपयोग न हो)। यहाँ एक त्वरित, आकस्मिक उदाहरण दिया गया है - विचार करें:
editButton.Enabled = (_grid.SelectedRow != null && ((Person)_grid.SelectedRow).Status == PersonStatus.Active);
बनाम थोड़ा लंबा, लेकिन यकीनन स्पष्ट:
bool personIsSelected = (_grid.SelectedRow != null);
bool selectedPersonIsEditable = (personIsSelected && ((Person)_grid.SelectedRow).Status == PersonStatus.Active)
editButton.Enabled = (personIsSelected && selectedPersonIsEditable);
बूलियन पैरामीटर
आपका उदाहरण वास्तव में हाइलाइट करता है कि एपीआई में बुलियन अक्सर एक बुरा विचार क्यों होते हैं - कॉलिंग पक्ष पर, वे यह समझाने के लिए कुछ नहीं करते हैं कि क्या हो रहा है। विचार करें:
ParseFolder(true, false);
आपको यह देखना होगा कि उन मापदंडों का क्या मतलब है; अगर वे एनम थे, तो यह बहुत अधिक स्पष्ट होगा:
ParseFolder(ParseBehaviour.Recursive, CompatibilityOption.Strict);
संपादित करें:
, जोड़ा शीर्षकों और दो मुख्य पैराग्राफों के आदेश बदली क्योंकि बहुत सारे लोग बूलियन मानकों भाग पर ध्यान केंद्रित कर रहे थे (निष्पक्ष होने के लिए, यह था पहले पैराग्राफ मूल रूप से)। पहले भाग में एक उदाहरण भी जोड़ा।