Как быстро находить ошибки в коде? Советы для начинающих

  Рет қаралды 39,053

Организованное программирование | Кирилл Мокевнин

Организованное программирование | Кирилл Мокевнин

Күн бұрын

Пікірлер
@hongaslahoenvaara
@hongaslahoenvaara 3 жыл бұрын
Еще стратегия по поиску ключей в квартире: восстановить траекторию своих перемещений по квартире за последнее время, и пройтись по ней. Применительно к коду: посмотреть, что трогали за время, прошедешее с последнего успешного запуска. Часто косяки либо напрямую там, либо правильный новый код триггернул скрытый косяк в другом месте. При нахождении "точки опоры" и обратного подключения частей программы, я обычно подключаю их не шаг за шагом, а "методом деления отрезка пополам" - раскомментирую сразу одну половину. Если программа работает - перехожу ко второй половинке тем же методом, если же ошибка всплыла - комментирую обратно одну из половинок раскомментированной части. Таким образом локализация ошибки происходит не за O(N), а за O(log N).
@АлексейТитов-д9э
@АлексейТитов-д9э 5 жыл бұрын
Многое зависит от приложения. Если отображаемая информация четко согласована с состоянием приложения, то тогда локализация занимает значительно меньше времени. Насчёт спускаться от точки опоры - спуск возможен, если путей один или два, иначе это уже перебор всего кода, отсюда стоит делать минимальное количество точек входа. А по поводу ключей: на последней стадии я не перерываю всё в одной локации, а навожу порядок - обычно после этого ключи легко находятся. Тоже самое у меня применимо и к коду - легкий рефакторинг и возможно станет ясна причина. Суммарно: чем строже и логичнее код, тем проще в нём искать баги, так как баг это что-то нелогичное и оно в логичном коде просто будет бросаться в глаза.
@ThisDaveAndThatJohn
@ThisDaveAndThatJohn 5 жыл бұрын
Лично я заметил, что применение TDD при малейшем изменении, реально помогает избегать большинство запутанных ошибок. По сути, Кирилл описал тот же принцип при отладке - разделяй и властвуй.
@pabiiiah_4uk154
@pabiiiah_4uk154 2 жыл бұрын
временами слушаю этот ролик как медитацию при прохождении заданий на Хекслет, зачастую код вроде правильный, но среди кучи символов иногда упускаешь какую-то мелочь)
@Артём_М
@Артём_М 2 жыл бұрын
выключил видео после слов о том, что магии не существует. а если серьёзно: классное видео, хорошие советы, спасибо)
@TealFoxPro
@TealFoxPro 9 ай бұрын
Если захожу в тупик при поиске ошибки, ложусь спать - пять утра, - не лучшее время продолжать поиски )
@СергейКондулуков-з9ч
@СергейКондулуков-з9ч Жыл бұрын
Очень интересно. Ключи всегда вешаю на гвоздик. Плохой ракеткой сыграть можно но трудно. Наклейки, резина. Насчёт сути. Во всём мне хочется дойти до сути. В работе, суете, душевной смуте. Б. Пастернак.
@staromand
@staromand 16 күн бұрын
Не знал, что Пастернак играл в теннис
@kestutissnieska
@kestutissnieska 7 ай бұрын
Изучал основы Python3 и было задание написать быстрое сортирование. Нашёл алгоритм с двух-концевым быстрым сортированием на JAVA и перевёл на питон оставляя for - а там изменяется переменная цикла внутри цикла и резултат был, что итоговый список выходил не как должен. Было интересно поучиться использовать средства отладки в питоне и в конце понять, что ошибка при переводе (поменял циклы на while и заработало).
@МаксимДзюбак-в5у
@МаксимДзюбак-в5у 2 жыл бұрын
Крутое видео! Благодарю, Кирилл!
@newhero3917
@newhero3917 2 жыл бұрын
Когда теряю ключи, всегда спрашиваю Кирилла, почему мои ключи у него.
@biblehebrew
@biblehebrew 2 жыл бұрын
Спасибо за видео. Узнал себя в некоторых моментах, а я только 2 месяца изучаю Python
@igork9338
@igork9338 2 жыл бұрын
Поиск ошибок - это искусство, которое дается только со временем и с опытом, и очень часто основывается на личной интуиции. Квалификация разработчика заключается именно в этом.
@Acid31337
@Acid31337 5 жыл бұрын
Забыл что ошибку нужно сначала воспроизвести, создав среду где она стабильно возникает )
@PyHard
@PyHard 3 жыл бұрын
Если компилятор указывает на строку где все нормально, а ошибка находится где то выше по коду, то чаще все использую отладочный вывод переменных на экран)
@sofiaost6162
@sofiaost6162 8 ай бұрын
Начала смотреть это видео, потому что не могла найти ошибку в коде. Поиск ключей. Представила, как бы искала. Начала с двери - не в замке ли они? Так и есть. Код тоже. Всё написала, всё здорово. Но самое главное - забыла нвписать print. )))
@turgayalekberli9554
@turgayalekberli9554 3 жыл бұрын
Спасибо за советы
@azmesmparser
@azmesmparser 5 жыл бұрын
В поиске ошибки может помочь git bisect.
@Acid31337
@Acid31337 5 жыл бұрын
И еще надо использовать git(или аналог) чтоб после боя все восстановить и по человечески исправить
@lightinthedark5708
@lightinthedark5708 5 жыл бұрын
спасибо, было интересно.
@dmitrijponkin
@dmitrijponkin 5 жыл бұрын
Спасибо!
@limonred5283
@limonred5283 3 жыл бұрын
Стакановерфлоу - наше все.
@pranamanna
@pranamanna 5 жыл бұрын
Пригодится инфа!
@UftKhaQ
@UftKhaQ 10 ай бұрын
Пррекрасный мультик для новичков. МилЧеловек, а что такое СтекОверфлоу? Что такое Сниппет? Если вы беретесь преподавать несведующим людям то каждый новый термин при первом упоминании должен быть расшифрован. Угу. Опять же.... Фреймворк? Можете объяснить внятным языком что это такое? Треды могут общаться... Гонки, Шаред Стейт..... Пдждите пжалста, язаписсывайу. Что касается вашего подхода, то была древняя шуточная задачка: как поймать льва в Пустыне и подход разных специалистов к этому процессу. Мой любимый способ - способ Деканата: Хвост есть - сам придет. А ваш это подход геометрический - делим пустыню пополам, смотрим где лев, дальше делим половину где лев еще пополам и.т.д. Чтобы мой комментарий не казался тупым наездом хочу сказать, что в названии ролика есть слова "для начинающих" и я сюда пришоло по ссылке с курса где учать писать "Hello, World."
@diplodockxxi1057
@diplodockxxi1057 10 ай бұрын
Отличное замечание. Я слушал это всё и у меня начались сильные сомнения смогу ли я стать программистом. Но твой комментарий снова воодушевил меня и я опять решил не сдаваться
@delir0
@delir0 Ай бұрын
Если есть желание стать программистом, то такого предложения стоять не может. Даже после 10+ лет в программировании я встречаю незнакомые слова. Незнакомые слова - это возможность. Загуглить, прочитать и понять. Плохо, когда непонятно что изучить и незнакомых слов нет. Если вы при встрече незнакомых слов вините автора, то это всего лишь говорит, что вы перекладываете ответственность за ваше обучение на автора.
@НеНуждаюсьВПсевдонимах
@НеНуждаюсьВПсевдонимах 4 ай бұрын
Не сладкая жизнь в it, много претензий у пользователей за плохо работающее ПО
@ДмитрийКозюк-ъ8к
@ДмитрийКозюк-ъ8к 5 жыл бұрын
Отладка методом пузырька:)
@АндрейЛисецкий-ч1д
@АндрейЛисецкий-ч1д 4 жыл бұрын
круто)
@АлександрЩербаков-о9щ
@АлександрЩербаков-о9щ 4 жыл бұрын
Просто напишу комментарий чтобы он был.
@евгенийдавыдов-я7б
@евгенийдавыдов-я7б 7 ай бұрын
....а если не знаешь как выглядит "ключ"? а вашем случае ключи все разные....
@user-evgeniy64
@user-evgeniy64 6 ай бұрын
В первую очередь нужно посмотреть в кармане😅
@dzianishrip5139
@dzianishrip5139 2 жыл бұрын
Да не правда все это, что он тут задвигает. Отладка - искусство) да, ага. И в спорте и везде конечно же играет роль насколько качественными инструментами ты пользуешься. Это просто проверить, ты играешь например в пинг-понг, проигрываешь. Меняешься ракетками - выигрываешь. Хм, почему же так)))
@olegv.istchenko6547
@olegv.istchenko6547 2 жыл бұрын
Странное обоснование утверждения, что инструменты для отладки не так важны - на примере мастера спорта с плохой ракеткой. Отлаживать вообще без инструментов, это всё равно, что играть в настольный теннис вообще без ракетки. Каким бы ты не был мастером спорта, играть так не получится. Вот и отлаживать без инструментов не получится. Ну никак.
@vlad4876
@vlad4876 2 жыл бұрын
Да ладно? Сам язык содержит средства отладки. Начни с print и добавляй обвязку к принту по мере потребности.
@olegv.istchenko6547
@olegv.istchenko6547 2 жыл бұрын
​@@vlad4876 С удовольствием понаблюдаю, как Вы будете отлаживать с помощью print код, который манипулирует коллекцией из нескольких сотен/тысяч объектов, каждый из которых содержит десяток-два полей =D. В отладчике в режиме останова я могу просматривать эту коллекцию как угодно, т.к. она загружена в память, Вам же придётся (а) выгружать в файл, т.к. в консоли просматривать килобайты текста нереально и (б) в текстовом редакторе потом с этим файлом общаться. Я даже не говорю о том, что в отладчике можно на лету подменять значения и смотреть, что из этого получится -- при использовании print такой возможности нет. Так что Ваш способ подходит (а) только для достаточно простых случаев и (б) если есть консоль. Если отлаживается код веб-сервера -- куда print выводит будет? Нужно прикручивать логирование. Так что ответ на "да ладно?" -- да, именно так. :)
@Paul-kr8dq
@Paul-kr8dq 4 ай бұрын
Чем отличается опытный разраб от джуна? У него есть привычка "класть ключи" всегда в одно и то же место, а также знать аналогичные привычки других. Поэтому, в случае пропажи, джун действительно начинает поиск по разным стратегиям, а опытный инженер просто идёт в нужное место и берёт ключи.😂
@Jeljuariy
@Jeljuariy 3 жыл бұрын
поставим мировой рекорд с 0 дизлайков?!
@Serega5j
@Serega5j 10 ай бұрын
ничего удивительного не расказано
@x1muk
@x1muk 3 жыл бұрын
Спасибо!
Производительность разработчиков. Почему она сильно отличается и как стать быстрее.
15:41
Организованное программирование | Кирилл Мокевнин
Рет қаралды 9 М.
Junior, Middle, Senior. В чем разница?
13:53
Организованное программирование | Кирилл Мокевнин
Рет қаралды 12 М.
“Don’t stop the chances.”
00:44
ISSEI / いっせい
Рет қаралды 62 МЛН
Quilt Challenge, No Skills, Just Luck#Funnyfamily #Partygames #Funny
00:32
Family Games Media
Рет қаралды 55 МЛН
СИНИЙ ИНЕЙ УЖЕ ВЫШЕЛ!❄️
01:01
DO$HIK
Рет қаралды 3,3 МЛН
Дженерики, горутины и перспективы Go: взгляд изнутри | Алексей Палажченко | #26
1:51:25
Организованное программирование | Кирилл Мокевнин
Рет қаралды 3,3 М.
Как ловить ошибки в JavaScript коде
14:24
Михаил Непомнящий
Рет қаралды 12 М.
Ищем ошибки в коде JavaScript. Дебаг для начинающих
18:20
WebDev с нуля. Канал Алекса Лущенко
Рет қаралды 10 М.
Нормально ли обучаться в рабочее время?
13:45
Организованное программирование | Кирилл Мокевнин
Рет қаралды 7 М.
Ошибки в коде 90% программистов
2:11:36
Желтый клуб — 1С программирование
Рет қаралды 40 М.
Как адаптироваться к кризису на рынке IT? | Кира Кузьменко | Организованное программирование #25
1:46:08
Организованное программирование | Кирилл Мокевнин
Рет қаралды 15 М.
“Don’t stop the chances.”
00:44
ISSEI / いっせい
Рет қаралды 62 МЛН