Bazen, bir if
ifade oldukça karmaşık veya uzun olabilir, bu nedenle okunabilirlik açısından karmaşık çağrıları if
.
örneğin bu:
if (SomeComplicatedFunctionCall() || OtherComplicatedFunctionCall())
{
// do stuff
}
bunun içine
bool b1 = SomeComplicatedFunctionCall();
bool b2 = OtherComplicatedFunctionCall();
if (b1 || b2)
{
//do stuff
}
(verilen örnek o kadar da kötü değil , sadece örnek amaçlı ... birden fazla argüman içeren diğer çağrıları hayal edin, vb.)
Ancak bu ekstraksiyonla kısa devre değerlendirmesini (SCE) kaybettim.
- Gerçekten her seferinde SCE'yi kaybeder miyim? Derleyicinin "optimize etmesine" ve yine de SCE sağlamasına izin verilen bazı senaryolar var mı?
- İkinci pasajın gelişmiş okunabilirliğini SCE'yi kaybetmeden korumanın yolları var mı?