Добавить в корзинуПозвонить
Найти в Дзене
Уйти в АйТи

Начинающим программистам про ускорение отладки кода. Упрощай!

Здравствуйте, уважаемые подписчики и гости канала! Как ни странно, я сейчас не буду писать про дебагеры кода. =) Не буду писать про проблему «в лоб», зайду из далека. Время от времени я слышу от коллег, что что-то не работает, хотя вроде как должно. Типа условие какое-то не срабатывает или там — функция не то что-то возвращает. У меня, и, уверен, у вас, тоже так бывает. Короче как в школе когда калькулятор почему-то неправильно считал. 😂 Наверняка и такое с вами случалось. Надо сказать, что часто при этом мы тянемся проверять какие-то немыслимые гипотезы, баги в гугле ищем по схожему функционалу и тратим на это кучу времени, но забываем выполнить простое упражнение — упростить код. Конечно, это не всегда возможно, но согласитесь — часто ошибки глупые или на них другая часть кода как-то влияет. Об этом приеме, кстати, давным-давно поведал мне наш тех. дир. Николай Садомовский (далее Коля), за что ему большое спасибо — очень много часов дебаг мне сэкономил, а сейчас глядишь и тебе. Пом

Здравствуйте, уважаемые подписчики и гости канала!

Как ни странно, я сейчас не буду писать про дебагеры кода. =)

Картинка для привлечения внимания. Источник techcommunity.microsoft.com
Картинка для привлечения внимания. Источник techcommunity.microsoft.com

Не буду писать про проблему «в лоб», зайду из далека. Время от времени я слышу от коллег, что что-то не работает, хотя вроде как должно. Типа условие какое-то не срабатывает или там — функция не то что-то возвращает. У меня, и, уверен, у вас, тоже так бывает. Короче как в школе когда калькулятор почему-то неправильно считал. 😂 Наверняка и такое с вами случалось.

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

Помню, пересаживался я с apache на nginx, когда перешел работать в Риалвеб. Apache + php был простым, но в Риалвебе юзали nginx + php-fpm. И вот сижу я такой крутой прогер и полтора часа не могу location настроить - уже не конфиг, а простыня какая-то. Коля тогда к нам в кабинет зашел и спросил как у меня дела (я ж новенький), а я сказал - что что-то не могу настроить, вроде все по сайдам делаю, а не работает. Не помню точно, но вроде я как самый умный прочитав гайды решил не просто повторить, а «оптимизировать» (как я тогда думал) location и php и статику рулить регулярными выражениями внутри одного location =))))))) Сейчас смешно, да, но суть-то не в этом. Конфиг был длинный, много комментариев и переименованных, location ( чтоб не мешали 😁 ).

Пол интернета так работает, но ваш код не должен быть таким - вы должны его понимать, в основном =). Источник ru.linkedin.com
Пол интернета так работает, но ваш код не должен быть таким - вы должны его понимать, в основном =). Источник ru.linkedin.com

В общем, как вы могли предвидеть, Коля скопировал мой конфигурации в сторону, удалил из него неработающего 90% кода, увидел, что у меня реально работал другой location. Ну и показал как на самом деле готовить nginx. Вот и всё.

Суть очень проста и помогает в 99,999% случаев, когда ты сталкиваешься с неразрешимой проблемой — упрощай, взгляни под другим углом, не зацикливайся! Уменьшай свой код до минимума строк. Убирай все лишнее, чтобы убрать вероятность, что баг не там, где ты его ищешь уже полчаса. Если это язык программирования - сделай новый пустой файл и напиши там минимум кода для проверки. С nginx так же лучше взять тестовый конфигуратор и там должен быть один location, чтобы исключить влияние каких-нибудь регулярок, поищи другие конфиги с таким же server_name, посмотри активен ли твой конфиг. При этом, как в TDD, желательно добавить ошибку перед первым запуском и получить ее в рантаме. Ну и только потом мужественно её исправлять.

Иногда, кстати, почему-то прогеры любят запускать длинные задания и ждать по 10 минут. Так вот - если вы не оптимизируете память или CPU на обработке больших данных — упрощайте!

Секрет полишинеля раскрыт, можно идти работать. Да да, вроде просто, но почему-то мало кто пользуется в реальной жизни. Как говориться — "лучше меньше, да лучше".

Не согласен? Оставляй коммент, обсудим!

Подписывайтесь в Telegram: https://t.me/lets_goto_it

#debug #программирование #sql #nginx #python #php #cpp #java #совет профи