Как стать автором
Обновить

Комментарии 46

Я в таких случаях сожу подле себя первого попавшегося беднягу и начинаю объеснять как прога работает. В 99% баг находится)
Уже не помогло.
Не хочу, грубить, но иногда у такого бедняги бывает своих проблем полный рот. Вы его отвлекаете на минуту, а он потом полчаса назад в свою проблему вникает…
Во-первых, всегда можно отказаться.
Во-вторых, ему чужая помощь не помешает.
Вы наверно часто этим беднягой и являетесь, впрочем как и я)
Отношусь к подобному context switch, как разминке для ума, да и на чужой код полезно смотреть.
Нет. Чаще – я тот, кто пытается багу найти.
У меня в качестве такого бедняги 4 маленьких стеклянных ежика перед монитором. Пока всем 4ём расскажу — обязателньо находится баг. Отладка методом «резиновой уточки» :)
Рекомендую почитать Джоэла Спольски — у него очень хорошо написано о том, почему нельзя программистам работать одновременно над двумя задачами, и сколько стоит отвлечь другого программиста от работы, вместо того, чтобы поискать ответ самому :)
Существует — профильные сообщества в том же livejournal.com или тематические форумы.
Обычно там отвечают на вопросы, правда будет много «шума», но если фильтровать его — ответ можно найти.

А для необнаружимых багов рекомендую обратить внимание на следующие пункты:

1. Компьютер всегда работает так, как ему сказано. Если что-то глючит — значит ошибки в собственном коде. Осталось их найти.

2. Чтобы освежить голову надо отвлечься и отдохнуть — попить чай, поспать, полностью переключиться хотя бы на час. Многие проблемы решаются при свежем взгляде на проблему.

3. Есть такая книга «Как не надо программировать на С», рекомендую к прочтению.
1) Что делать если проект достаточно большой (как раз мой случай) — в жж не запостишь.

2) Не помогло.

3) Попоробую найти.
Так или иначе проблему надо локализовывать.

Попробуйте провести рефакторинг — выкинуть те фрагменты кода, которые Вам не нравятся, и написать их заново.
Для начала нужно найти такие фрагменты кода. В случае с «мистическими багами» это не так
В смысле не так легко.
Если код нельзя запостить в несколько строчек, то в этом «дерьме», извиняюсь, никто кроме Вас копаться не будет. Попробуйте локализовать ошибку до 5-10 строчек. В этой проблеме Вы сами все найдете. А также попробуйте Unit-тестирование и ТДД, зачастую этот способ позволяет избегать «мистических» багов.
Почему не запостишь? Нужно локализовать проблему, а потом уже постить, а не весь проект вываливать :)
Локализованная проблема, как правило, дает решение. Найти строчку я, допустим, нашел. Я не могу понять почему код работает не так, как я себе это представляю. В этом и заключается мистика.
Такую строчку как раз можно запостить на форум или в сообщество.
не очень вдохновляет разбираться в чужих помоях просто так
А никто о помощи и не просит.
я про «почему до сих пор не появилось сервиса»
Мне казалось, что на поиске багов «просто так» живет большинство opensource проектов. То есть никто не расчитывает на получение прибыли.
В таком случаен ответ на ваш вопрос — репозитории кода вроде Google Code или GitHub. Но без своего сообщества разработчиков никто там ваш код просматривать конечно не будет :)
Ищут и исправляют баги в опенсорс как правило те, кому эти баги мешают.
Обычно для этого используют irc. Но за просто так это конечно не особо весело, хотя хорошему человеку один раз помочь не особо сложно.
Примерно то же самое, что и с жж. Нельзя выложить проект целиком.
А вы выкладывайте не на irc. Вы просите о помощи на irc.
Сложнообнаруживаемые баги — это обычно баги, связанные с другими багами(в языке, в сторонних библиотеках), и зачастую решение простое — гуглить.
НЛО прилетело и опубликовало эту надпись здесь
пхп не в счёт.
Зарегался. Но там тоже проект не выложить. И вряд ли кто-то будет качать исходники.
Целый проект — только в SVN какой нибудь. И не будет никто в нём копаться. Надо локализовать баг :)
НЛО прилетело и опубликовало эту надпись здесь
Баг я нашел. Достаточно дурацким он был. Какими, наверное, окажутся большинство багов после их нахождения. Все баги в голове у программиста (не считая сторонних библиотек).
НЛО прилетело и опубликовало эту надпись здесь
А мне интересно что это за прога для универа, которая настолько большая, что её нельзя выложить? По своей памяти помню, что у нас в универе никогда не было очень больших проектов. Может вы просто не совсем представляете что значит действительно большой проект?
Две тысячи строк с лишним. Не очень много, я понимаю. Сложно выложить потому, что это около 10 модулей.
Если интересно – я уже отдебажил и могу выложить исходники.
Обычно, чтобы исправить более-менее серьезную багу, надо знать структуру программы. На форуме этого так просто не объяснишь, или получится длинная колбаса кода, которую большинство будет просто игнорировать.
Именно поэтому нужен какой-то специализированный ресурс, а не сообщевство в жж.
Все мистические баги обычно происходят от сайд-эффектов, собственных либо сторонних.
Bohr bug или Bohrbug (названы в честь боровской модели атома) — в отличии от Гейзенбагов никуда не исчезают и не мутируют по мере анализа причины рождения. Их просто-напросто невероятно тяжело найти и пофиксить на этапе использования. Скорее даже, они никогда не будут исправлены, но если перегрузить программу или компьютер, или отменить операцию и не подходить к компьютеру до тех пор, пока не сядет батарейка в БИОСе, то жук, наверняка, уберется восвояси… до следующей нескорой вылазки. Причина же возникновения Борбага кроется скорее во входе программы в невероятно редкие состояния.

www.rsdn.ru/Forum/Info/FAQ.humor.bugspedia.aspx
НЛО прилетело и опубликовало эту надпись здесь
Уважаемый georgthegreat, такого сервиса нет и, видимо, не будет. Публичный (видимо подразумевается бесплатный) дебаггинг — fail по определению. Если же Вам за деньги, то фрилансеры тут недалеко.
Частенько ловлю «мистические баги» в чужом коде. Обычно в таких случаях программист допустивший баг либо не до конца понимает как работает та или иная функция, либо он просто тупит. Я как бы намекаю что «мистических багов» как таковых не существует.
Как правильно здесь заметили про OpenSource я, например, в этих программах ковыряюсь только если мне мешает какой-нибудь баг этой программы или нехватает функционала.
Рад что свой баг Вы-таки нашли.
в си++ такие баги обычно вызваны проблемами с памятью которые могут проявиться а могут и не проявиться.
к примеру
bool b; в большистве случаев будет true но в одном из 255 будет false;
добавили в код новую переменную. Компилятор по-другому расположил данные, и тут ваша b становится false.
в 99% если баг реально мистический, то проблема лежит в корявых сторонних компонентах, иначе — днк разраба
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории