LINUX.ORG.RU

История изменений

Исправление 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();
}

вынося проверки в сами методы, но повторю зависит от общего стиля кода. Но гораздо проще выставлять клоунов :-)))