Вспомнил недавно, что читал у одного известного автора (простите, не помню как его зовут), что выходить из функции/метода при наступлении какого-нибудь условия с помощью return - не самая полезная привычка.
Он объяснял это тем, что однажды код метода/функции будет модифицироваться, и тот кто будет спустя месяцы или годы добавлять что-то новое в логику, он может не придать должного внимания преждевременному возврату из функции/метода при определённом условии. Если меняется логика, то потенциально может потребоваться уточнение условий преждевременного выхода из тела метода/функции.
Автор советовал вместо того чтобы просто выходить при определённых условиях с помощью return не делать этого, а везде явно заключить всё в блоки, потому что это будет в будущем явно показывать: при таких-то условиях выполняется вот этот блок, а при таких-то условиях будет выполняться другой блок. Нигде не будет ни одного return на полпути, а только в конце метода/функции мы уже явно выдаём результат или просто выходим восвояси.
Интересно, что думают другие на этот счёт?
И ещё вспомнил один позабытый совет, который сейчас стал использовать. Автор одной книги делать не так, как принято у многих:
if (variable == CONSTANTA)
{
// bla bla bla
}
а делать так:
if (CONSTANTA == variable)
{
// bla bla bla
}
Потому что если по запарке напишешь не ==, а = (9 999 раз напишешь правильно, а в 10 000 раз всё-таки ошибёшься, потому что ты обычный человек, а ошибёшься в важном месте, и люди понесут серьёзные убытки из-за банальной человеческой невнимательности), то константа просто не позволит тебе сделать это физически.
Он объяснял это тем, что однажды код метода/функции будет модифицироваться, и тот кто будет спустя месяцы или годы добавлять что-то новое в логику, он может не придать должного внимания преждевременному возврату из функции/метода при определённом условии. Если меняется логика, то потенциально может потребоваться уточнение условий преждевременного выхода из тела метода/функции.
Автор советовал вместо того чтобы просто выходить при определённых условиях с помощью return не делать этого, а везде явно заключить всё в блоки, потому что это будет в будущем явно показывать: при таких-то условиях выполняется вот этот блок, а при таких-то условиях будет выполняться другой блок. Нигде не будет ни одного return на полпути, а только в конце метода/функции мы уже явно выдаём результат или просто выходим восвояси.
Интересно, что думают другие на этот счёт?
И ещё вспомнил один позабытый совет, который сейчас стал использовать. Автор одной книги делать не так, как принято у многих:
if (variable == CONSTANTA)
{
// bla bla bla
}
а делать так:
if (CONSTANTA == variable)
{
// bla bla bla
}
Потому что если по запарке напишешь не ==, а = (9 999 раз напишешь правильно, а в 10 000 раз всё-таки ошибёшься, потому что ты обычный человек, а ошибёшься в важном месте, и люди понесут серьёзные убытки из-за банальной человеческой невнимательности), то константа просто не позволит тебе сделать это физически.
Комментариев нет:
Отправить комментарий