Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Лови знакомую рыбу, открывай новые места и стань мастером рыбалки в сердце России!

Рыбалка по-русски

Казуальные, Симуляторы, На ловкость

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
anetto1502
anetto1502
Лига программистов

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

8 месяцев назад

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

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

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

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

Ну а ещё из-за goto может напасть <a href="https://pikabu.ru/story/nelzya_ispolzovat_goto_12583316?u=https%3A%2F%2Fxkcd.ru%2F292%2F&t=%D0%B2%D0%B5%D0%BB%D0%BE%D1%86%D0%B8%D1%80%D0%B0%D0%BF%D1%82%D0%BE%D1%80&h=b4fb4e894ae317dbd4e6f8aa8ca1f5e1ef76eee2" title="https://xkcd.ru/292/" target="_blank" rel="nofollow noopener">велоцираптор</a>

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

Показать полностью 1
[моё] Программирование IT Goto Хороший код
26
6
mefutu
mefutu

И правда⁠⁠

3 года назад

В чем разница между senior, middle и junior?

Junior - верит, что он ещё встретит хороший и чистый код.

Middle - догадывается, что не встретит его никогда

Senior - знает, что хороший и чистый код, как святой грааль, все ищут, а его нет.

[моё] IT юмор Junior Хороший код Программист Программирование Текст
2
532
tproger.official
tproger.official
Типичный программист

Важный совет⁠⁠

3 года назад
Важный совет
Показать полностью 1
IT юмор IT Программирование Pepe Хороший код
21
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии