Вложенные IFы отстой. Пиши лучший код

preview_player
Показать описание
Есть техника по улучшению читаемости кода за счет уменьшения вложенности. Так называемые Guard Statements. Работают в любом императивном языке программирования

Рекомендации по теме
Комментарии
Автор

Это общепринятый прием, называется ранний возврат. Всегда в работе этим пользуюсь, ибо на практике осознал нечитабельность вложенных)

vladyan
Автор

Мне наоборот легче так читать. Всегда понимаю что к чему относится

VvsevolodD
Автор

Как оказывается просто не создавать лук в коде 😅
Спасибо большое за этот лайфак!

kamillayesa
Автор

да, множественные точки выхода -- это то, что абсолютно не сложно читать. Инфа сотка

nonameypog
Автор

Я так полагаю это работает когда условие глобально для всего выполнения кода в функции, если же мне нужно отсечь только часть кода такая конструкция не применима.

insbhor
Автор

К такой штуке сразу следует говорить что метод не должен быть длиннее одной страницы на мониторе. И не следует такие возвраты пихать посреди лапши. Иначе усложнит отладку

Реди-дб
Автор

Это надо делать, в случае, если больше не ожидаешь никаких выполнений, вообще это правильно и не только в годо

СергейЦветов-нн
Автор

Фух, я думал, щас будет разворачивать if-ы в одну линию AND-ами, но пронесло

VeeGeeGaming
Автор

Ну это вкусовщина. Тут небольшая вложенность. Если условия сложные, то проще в переменные говорящие вынести или отдельные функции и потом в ифы запихнуть предрасчитанные значения. А вот ретурн по возможности, я бы держал всегда один на функцию.

АзатМингалеев-вк
Автор

не понимаю зачем. Если будет сбой и не сработает if, то последствия будут непредсказуемы. Таких случаев было много, потому полностью отказался от полоумных "читабельных" кодов. Лучше ещё дополнительных условий нагородить, чтобы функция вместо падения вывела сообщение...

horlonangel
Автор

Мне кажется, что вложенные IFы более читабельные. Наверное потому что я всегда так делал.

ynwdfff
Автор

И не только в годо, в других языках тоже так можно.

ЕлисейКудрашов
Автор

Идея отличная👍
Комментарии от автора кажутся лишними

aliguseinov
Автор

Жесть, что за советы? Когда все стремятся сократить количество интернов в угоду отладки, давать такие советы... Ретерн должен быть 1 и в конце метода. А в чем сложность чтения вложенного ифа, это не понятно.

TheKrivetko
Автор

А можно таки вообще всю программу написать полностью используя только if, при чем на современном железе никакой разницы в быстродествии не будет. Тем более что для оптимизации надо писать на чистом ассемблере, а-ля колибри ОС. Даже в момент учебы не мог понять почему преподу не нравятся лишние скобки в выражении если само выражение написано на турбопаскале, в 21 веке) безусловно существует такое понятие как чистый код и читабельность и так далее но в солопроекте в принципе не важно тем более если каждую строчку закоментировать. Если работает целая команда над проектом, тогда да. Но подобные видео на ютубе обычно все таки смотрят школьники которые пишут на питоне hello world. Не думаю что участники серьезного проекта вообще русскоязычный контент будут потреблять, как явление

ВалерийЖмышенко-ъу
Автор

А это да, но это может повлиять на производительность, так как идёт чтение большего количества сток.
Или я ошибаюсь?

ОлександрЯкимов-бй
Автор

Некогда не понимал проблемы влажности иногда я забивал на энды и просто делал много условий, и все нормально читалось

glasderes
Автор

А потом ты ищешь - на каком же этапе функция тебе хер показала😕 особенно если она находится в каком-нибудь родительском враппере...

takiekakmi
Автор

А с точки зрения скорости, первое условие должно отсекать большую часть вариантов. Тогда меньше последующих проверок)

clere
Автор

Если вы всё-ещё не задумываетесь о качестве вашего кода, вам рецепт: берём 8-битный микроконтроллер Atmega2560 или 128. Можно даже уже на плате Arduino. И пишем частотник для двигателя или инвертор... И постепенно начнёте задумываться, что код делает, как быстро, что происходит в фоне, почему тормозит и много весит сторонний код, начнёте ценить добротный отладчик, что оказывается от инструментария тоже зависит многое... :D :D :D

VeeGeeGaming
join shbcf.ru