История изменений
Исправление vtVitus, (текущая версия) :
Три условия в if с ветвящимися условиями точно не является хорошим и прозрачным кодом. Ты и сам это прекрасно увидел, раз написал комментарий к этому коду - «он не прозрачным и поэтому подложу соломку». Как правильно зависит от контекста и стиля текущего проекта. Предположу, что так
if( __hasPhoneOnly(phonebookEntry) ){}
else if( __hasPhoneWithName(phonebookEntry) ){}
else if( __hasIndexOnly(phonebookEntry) ){}
else if( __hasPhoneWithIndex(phonebookEntry) ){}
else if( __hasFull(phonebookEntry) {}else{
__logFail()
}
Прозрачнее, комментарии не нужны, и т.д. 25 лет назад я бы написал как-нить так -
Error r = !__phoneOnlyInfo(phonebookEntry) &&
!__phoneWithNameInfo(phonebookEntry) &&
!__indexOnlyInfo(phonebookEntry) &&
!__fullPhoneInfo(phonebookEntry);
if (r) {
__logFail(r);
}
вынося проверки в сами методы, но повторю зависит от общего стиля кода. Но гораздо проще выставлять клоунов :-)))
Исправление vtVitus, :
Три условия в if с ветвящимися условиями точно не является хорошим и прозрачным кодом. Ты и сам это прекрасно увидел, раз написал комментарий к этому коду - «он не прозрачным и поэтому подложу соломку». Как правильно зависит от контекста и стиля текущего проекта. Предположу, что так
if( __hasPhoneOnly(phonebookEntry) ){}
else if( __hasPhoneWithName(phonebookEntry) ){}
else if( __hasIndexOnly(phonebookEntry) ){}
else if( __hasPhoneWithIndex(phonebookEntry) ){}
else if( __hasFull(phonebookEntry) {}else{
__logFail()
}
Прозрачнее, комментарии не нужны, и т.д. 25 лет назад я бы написал как-нить так -
Error r = !__phoneOnlyInfo(phonebookEntry) &&
!__phoneWithNameInfo(phonebookEntry) &&
!__indexOnlyInfo(phonebookEntry) &&
!__fullPhoneInfo(phonebookEntry);
if (r) {
__logFail();
}
вынося проверки в сами методы, но повторю зависит от общего стиля кода. Но гораздо проще выставлять клоунов :-)))
Исходная версия vtVitus, :
Три условия в if с ветвящимися условиями точно не является хорошим и прозрачным кодом. Ты и сам это прекрасно увидел, раз написал комментарий к этому коду - «он не прозрачным и поэтому подложу соломку». Как правильно зависит от контекста и стиля текущего проекта. Предположу, что так
if( __hasPhoneOnly(phonebookEntry) ){}
else if( __hasPhoneWithName(phonebookEntry) ){}
else if( __hasIndexOnly(phonebookEntry) ){}
else if( __hasPhoneWithIndex(phonebookEntry) ){}
else if( __hasFull(phonebookEntry) {}else{
__logFail()
}
Прозрачнее, комментарии не нужны, и т.д. 25 лет назад я бы написал как-нить так -
Error r = !__phoneOnlyInfo(phonebookEntry) ||
!__phoneWithNameInfo(phonebookEntry) ||
!__indexOnlyInfo(phonebookEntry) ||
!__fullPhoneInfo(phonebookEntry);
if (r) {
__logFail();
}
вынося проверки в сами методы, но повторю зависит от общего стиля кода. Но гораздо проще выставлять клоунов :-)))