Я второй ответ Грэма Перроу. В некоторых случаях, когда у меня есть что-то вроде
bool someCondition = ( hereIsOneLongCondition &&
hereIsAnotherOne &&
hereIsYetAnother &&
ohNoHereIsMore);
Вместо этого я склоняюсь к выражению в функции:
bool someCondition = Foo();
, преимущество которого заключается в возможности более простого редактирования Foo () - я могу комментировать отдельные строки:
bool Foo()
{
bool result = true;
if (!hereIsOneLongCondition)
{
result = false;
}
if (!hereIsAnotherOne)
{
// this was added to fix such-and-such bug
result = false;
}
// etc
return result;
}
Выше я сказал кое-что , поскольку это не всегда возможно, и это производит больше строк кода. Однако обнаружить ошибки и рефакторинг проще.