Предлагаю писать в эту тему самые интересные ошибки, с которыми вам довелось столкнуться.
Самое важное в теме описать как вы допустили эту ошибку, а не её тип. Пишите подробности и т.д.
И начну пожалуй с себя.
Недавно,
прочитал про программиста гугл, которого попросили описать свою ошибку, из-за которой компания потеряла много денег.
Я бы так и забыл об этом, если бы не скрипт, который я отлаживал уже месяц и который регулярно глючил. Ключевое слово - регулярно.
Логика скрипта для меня была очень сложная, скрипт работал с временными отрезками и приходилось думать в настоящем прошедшем и будущем одновременно со "сдвигами" в прошлое (когда подсчет идет до определенной даты в прошлом, а сдвиг считается от настоящего или будущего времени). Отладка тоже давалась нелегко, т.к. по всему скрипту нужно было проставить console.log(), прежде чем понять что и куда идет. Ну да суть не в console...
В течении месяца я перестраивал логику скрипта и в один момент понял, что всё работает и можно запускать и тут столкнулся с необъяснимым поведением скрипта, он глючил
в неизвестном месте...
После десятков, а может и сотен раз просмотра кода, я наконец нашёл это треклятое место, где была ошибка. Она очень простая и заключалась в ошибке логики.
if (условие1 && условие2) {
//тут расчёт один
}
else {
//тут другой рассчет
}
//Исправить оказалось очень легко:
//выглядит не так красиво и компактно, как в первом варианте, но зато правильно
if (условие1) {
if (условие2) {
//тут расчёт один
}
}
else {
//тут другой рассчет
}
Честно говоря я от себя такого не ожидал, первое мгновение просто не верилось, что я наступил на эти грабли, первый раз за наверное десять лет.
Я думаю в простом коде я бы на такие грабли не наступил, но из-за того, что приходилось много информации держать в голове, такие простые грабли ударили меня особенно сильно
Пишем железобетонный код.
Для себя я вывел следующее, не бояться добавить некрасивую вложенность, главное безошибочность.
Пишите свои интересные ошибки и то, как вы их находили и какие выводы после этого делали