Code Complete - обычно рекомендуемая книга, в которой подробно рассматриваются такие стилистические вопросы. Также подумайте о том, чтобы взглянуть на некоторые из опубликованных руководств по стилю организации, чтобы узнать, есть ли у них мнения по этому вопросу; Руководство по стилю Google , например.
Что касается того, что я предпочитаю, второй пример гораздо лучше для меня. Первый - это, по сути, злоупотребление конструкцией do {} while, позволяющей избежать использования goto, догматически придерживаясь буквы «избегать gotos любой ценой», в то же время упуская из виду «код для ясности, не используйте неочевидные языковые трюки» ,
Фактически, единственная причина, по которой вообще можно использовать goto, заключается в том, чтобы догматически придерживаться подхода «только одна инструкция возврата на функцию», когда вы можете избежать простого, читабельного
if (!isAdmin()){
return false;
}
else if (!isConditionOne()){
return false; }
else if (!isConditionTwo()){
return false; }
else if (!isConditionThree()){
return false; }
else
return generateReport();
Другие мысли?
Не называйте локальные переменные, которые используются для хранения вычисленного состояния успеха, «returnValue» или подобное. Очевидно, что бы вы ни возвращали, это возвращаемое значение, любой, кто может прочитать C, может увидеть, что возвращается. Скажите мне какие вычисления он проводит. Имя «returnValue» не дает мне никакой информации относительно того, что это означает, когда это правда или ложь. В этом примере гораздо более предпочтительным может быть «мог бы сгенерировать репорты» или подобное.