मैं "स्पष्ट रूप से" अभ्यास को आप एक विरोधी-पैटर्न के रूप में संदर्भित करता हूं, क्योंकि यह इस तथ्य को अस्पष्ट करता है कि आपके लिए कोई विशेष-केस कोड नहीं है।
पठनीयता / स्थिरता आमतौर पर तब बेहतर होती है जब आपके पास ज्यादातर कोड-फ्लो निर्माणों के अलावा कुछ नहीं होता है, और आप उन्हें कम से कम करते हैं। इसका मतलब यह है कि निरर्थक योग हैं और यदि ऐसा है जो एक पूरे समारोह में एक गुंजाइश जोड़ देगा और इसे और अधिक कठिन बनाए रखेगा।
उदाहरण के लिए कहें कि आपके पास यह फ़ंक्शन है:
public void ConfigureOblogon(Oblogon oblogonToConfigure)
{
if (_validColors.Contains(oblogonToConfigure.Color))
{
oblogonToConfigure.ColorIndex = _validColors.IndexOf(oblogonToConfigure.Color);
}
else
{
oblogonToConfigure.Color = _validColors[0];
oblogonToConfigure.ColorIndex = 0;
}
}
अब आवश्यकता इस बात की आती है कि कॉन्फ़िगरेशन के दौरान आपको ओब्लॉगन के टाइप / टाइप इंडेक्स को भी निर्दिष्ट करना चाहिए, कई स्कोप हैं जो किसी को उस कोड को रख सकते हैं और अमान्य कोड के साथ समाप्त हो सकते हैं।
public void ConfigureOblogon(Oblogon oblogonToConfigure)
{
if (!_validOblogons.Contains(oblogonToConfigure.Type))
{
oblogonToConfigure.Type = _validOblogons[0];
oblogonToConfigure.TypeIndex = 0;
if (_validColors.Contains(oblogonToConfigure.Color))
{
oblogonToConfigure.ColorIndex = _validColors.IndexOf(oblogonToConfigure.Color);
}
else
{
oblogonToConfigure.Color = _validColors[0];
oblogonToConfigure.ColorIndex = 0;
}
}
else
{
oblogonToConfigure.TypeIndex = _validOblogons.IndexOf(oblogonToConfigure.Type);
}
}
इसकी तुलना इस बात से करें कि मूल कोड न्यूनतम नियंत्रण प्रवाह के साथ लिखे गए थे जो उस पर आवश्यक और न्यूनतम होते थे।
public void ConfigureOblogon(Oblogon oblogonToConfigure)
{
if (!_validColors.Contains(oblogonToConfigure.Color))
{
oblogonToConfigure.Color = _validColors[0];
}
oblogonToConfigure.ColorIndex = _validColors.IndexOf(oblogonToConfigure.Color);
}
अब गलती से कुछ गलत दायरे में लाना मुश्किल होगा या इस कार्य के दीर्घकालिक विकास और रखरखाव में दोहराव पैदा करने वाले स्कोप्स को समाप्त करना मुश्किल होगा। इसके अलावा यह स्पष्ट है कि इस फ़ंक्शन के माध्यम से संभावित प्रवाह क्या हैं इसलिए पठनीयता को बढ़ाया जाता है।
मुझे पता है, उदाहरण थोड़ा विवादित है, लेकिन मैंने कई बार देखा है
SomeFunction()
{
if (isvalid)
{
/* ENTIRE FUNCTION */
}
/* Nothing should go here but something does on accident, and an invalid scenario is created. */
}
इसलिए मुझे लगता है कि नियंत्रण-प्रवाह निर्माण के बारे में उन नियमों को औपचारिक रूप देने से लोगों को कुछ सूँघने के लिए आवश्यक अंतर्ज्ञान विकसित करने में मदद मिल सकती है जब वे इस तरह कोड लिखना शुरू करते हैं। तब वे लिखना शुरू करेंगे ।।
SomeFunction()
{
if (!isvalid)
{
/* Nothing should go here, and it's so small no one will likely accidentally put something here */
return;
}
/* ENTIRE FUNCTION */
}
else
फर्जी लगता है। अक्सर,else
जब तक आप पीछे की ओर झुकते नहीं हैं, तब तक ब्लॉक में डालने के लिए कुछ भी नहीं है ।