Обновить

Нельзя использовать goto

Часто говорят, что goto плох. А собственно, почему?

В ассемблерном коде на машинном уровне все управляющие конструкции (if, while, for и другие) преобразуются в набор команд с безусловным переходом jmp (UPD: меня поправили, с безусловным или условным переходом, но по указанному адресу, то есть куда угодно).. А такой переход — самый настоящий goto. То есть ты весь такой изящный во фраке пишешь циклы, а наглый компилятор/интерпретатор выкидывает всю красоту и делает goto.

Так почему же сам goto является признаком плохого кода, если он на самом деле везде?

Ответ кроется в умении сохранять контекст. Человек может в голове держать 5-9 сущностей, больше не получается. Поэтому придумали функции, и придумали держать их небольшими — для снижения когнитивной сложности. Конструкция if переведёт тебя в одну из веток ниже, циклы for и while выполнят тело цикла или выбросят за его пределы. Команда goto сложность привносит — прыжок может быть куда угодно. А повышение сложности всегда приводит к росту числа ошибок.

Ну а ещё из-за goto может напасть велоцираптор
Ну а ещё из-за goto может напасть велоцираптор

Теги:
Всего голосов 4: ↑3 и ↓1+2
Комментарии6

Разбираемся с витамином D — пить или нет?

Инженер производства приносит анализ:

25(OH)D — 22 нг/мл // ниже нормы

Лицо у него как у человека, которому сообщили, что в нём зародилась новая жизнь, и это глисты.

Казалось бы, пускай дойдёт до врача, ему там назначат витамин D по 50 тысяч единиц раз в неделю в капсуле, и пускай не страдает. Но прикол в том, что рекомендаций аж три штуки:

— Старые мирового эндокринологического сообщества, где витамин надо пить. Они в большинстве случаев основаны на наблюдательных исследованиях (корреляциях, а не причинно-следственных цепочках), и там есть конфликт интересов. Упрощая, они говорят, что витамин D лечит примерно всё. Простуда? Низкий D. Усталость, хандра, плохой сон? D. Рак, диабет, давление — D мог бы помочь. Раз у больных людей этого витамина в крови мало, значит, дефицит и есть проблема.

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

— И наши отечественные рекомендации, которые сделаны с учётом того, что Россия — очень большая страна, в которой есть регионы с короткой солнечной активностью. Пить надо, но пороги другие.

Давайте разбираться.

Разбираемся с витамином D — пить или нет?

Публикации