Я работаю над большим количеством кода, который полон постоянно меняющейся бизнес-логики и нуждается в изменении через день. Два совета, которые, безусловно, помогли мне не отставать от изменений: избегайте всех остальных утверждений и возвращайтесь / выходите как можно скорее. Никогда не входите в глубокое вложение -> создавайте подпрограммы / функции.
Замена всех других операторов на отрицательные, если операторы значительно упрощают чтение вашего кода сверху вниз (близость условия и блока кода):
# business logic block
if ( $condition ) {
# do something
# code code code
} else {
# code code code
return;
}
# refactored:
if ( ! $contition ) {
# code code code
return;
}
if ( $condition ) {
# code code code
}
Во-вторых, возврат / выход как можно скорее. Мое мнение, конечно, но я не вижу смысла проходить через какие-либо дополнительные условия / тесты, когда вы уже определили результат подпрограммы, особенно когда вы хотите прочитать код сверху вниз. Устранение всей двусмысленности делает вещи проще.
В заключение я хотел бы избежать использования else, особенно в длинных списках BL. Вернитесь, как только узнаете результат. Если уровень вложенности больше 2, создайте подпрограммы / функции.