![]() |
Часто ли вы психуете, если не можете найти ошибку в коде?
Пару дней назад начал финальную сборку своей рпгшки, которая отдельными компонентами работала отлично.
Там есть довольно сложная система построения карты местности, которую я долго писал, и уже казалось все идеально. Но вот собрал все воедино, и обнаружился один очень неприятный глюк с этой картой, который я уже часов 6 пытаюсь отловить всеми возможными способами от трейсов до брейкпоинтов. Я уже просто на грани нервного срыва, глюк никак не находится, а от самого кода волосы встают дыбом )) Все домашние уже незаслужанно попали под "горячую руку" =) Решил отложить все на завтра, а то правда нервный срыв будет :D Вот стало интересно, много ли кто сталкивается с такими ситуациями (именно в кодинге), которые доводят до психов? |
Меня часто с ума сводила верстка под ie! Просто ад! Верстаешь всё как положено, валидно, по фэн шую. Работает везде, кроме ie. И наступает пора костылей. Это меня реально бесит.
Мы у себя проверку под ie называем краш-тестом) Добавлено через 2 минуты А в плане кодинга часто сталкивался с подобными ситуациями, когда начинаешь искать ошибку сразу с "глубины", а спустя часы выясняется, что виной всему была "очепятка" где-нибудь на поверхности. Моя клавиатура и стол часто страдают от моих нервов:) |
Цитата:
Но тут я уже все на такие ситуации проверил, проблема в чем-то другом. |
Ситуация знакомая. У меня есть специальное место для ловли таких багов - балкон. Почти любая проблема решается, как ни странно, именно там, когда уходишь туда на "покурить" - прокручиваешь в голове все по шагам и баг ловится! Даже бывает, что решение приходит уже иногда даже на пороге балконном. Хотя до этого мог сидеть час или два перед монитором. Иногда удается отловить сам баг, иногда точно понять, откуда растут корни и где искать.
Когда заметил, стал специально использовать. Иногда использую не только для ловли бага, но и для решения трудной задачки - при кодинге или аналогичной процедуре. |
По идее надо как-то резко позитивно сменить занятие не на долго, но так что-бы никто не заметил, делать вид, что так и должно быть, потом казалось бы катастофа обычно превращается в пустяк, решаемый за 30 секунд.
|
Цитата:
А в целом, тупиковые моменты возникают редко, 1-2 в год, а так трейсы всегда помогают (чего не скажешь о дебаггере, поэтому им и не пользуюсь). Больше раздражает, когда проблема возникает не у меня, а у тестера. И ты не можешь ее поймать. У меня был один баг, который я не мог поймать 3 месяца, пока не купил себе мак и не прогнал swf на всех плеерах 10.x, только после этого понял в чем проблема. |
когда происходит затык, обычно бросаю все и на свежий воздух часок другой, потом когда проветрюсь, легче думать и можно дальше отлавливать
|
Ха! Подумывал этот же вопрос задать на форуме :) Хороший парень опередил :)
Вот только вчера вечером сидел за столом и подумывал: чтобы такое двинуть, чтобы потом не пожалеть :) В двух словах попробую: сижу, смотрю в код, в коде в конце некоторого метода вешается слушатель на некий объект, который в конце своей работы диспатчит событие, которое этот слушатель и отлавливает, и следующий же метод его обрабатывает. Так. Слушатель вешается, объект диспатчит... но событие не отлавливается!!! Как это может быть?! :(( И так всё замуровано, что объект выносить куда-то крайне неудобно - слишком много аргументов он требует (которые и симулировать то непросто). Читал код, лазил, уже наугад и туда и сюда, уже даже сам не зная зачем... даже версию плеера менял - ноль! Грешил уже на адобовцев, ну, думаю, не может так быть, значит ошибка где-то в используемых классах (adobe). Начал уже закипать, чувствую. Потом думаю: а чего это я ради буду сопли распускать? Ведь, не работает - значит есть причина, надо успокоится и найти её. И ведь нашел :) Оказалось, что событие диспатчившееся в методе обработчике, в этом коде, для объектов более высокого уровня, заставляло отрабатывать систему так быстро, что слушатель с предидущего объекта не уничтожался, а иже с ним и объект, который из за этого не успевал ликвидироваться, поэтому новый объект не успевал занять его место и подписка на его события, в результате, ничего не давала, так как он события то и не генерил, генерил тот объект, контроль над которым я уже потерял но не уничтожил.... Поменял две строчки местами и вуаля! Не знаю - понятно или нет обрисовал. Ну, вот так, вот получилось... :) А ещё таки вещи здорово достают когда дедлайн уже так близко, что раздражает уже всякое отклонение от запланированного хода построения или тестирования. :) |
постоянно психую когда чтото не получается
|
Ошибки свои легко находятся, а вот в фреймворке каком-нить или незапланированное/недокументированное поведение какого-нибудь компонента взрывает мозг (частенько заканчивается написанием своего). Поэтому фреймворки не очень люблю, будь он сто раз прекрасным и выбран каким-нить сообществом для поклонения, все равно остерегаюсь.
Обычно бесит кривое описание багов от тестеров. Был "баг": В фоновом градиенте приложения четко виден переход цвета (ступенями) - браузер ФФ2. |
У меня это происходит обычно так...сижу и часами невылазя ищу проблему пока сил уже не хватает чтоб моргать,иду спать и проблема решается уже с утра:)
|
Цитата:
Цитата:
|
На самом деле довольно забавно, когда сидишь в офисе, напряженно смотришь в монитор, и вдруг само-собой вырывается: "Да что за *****?!". И народ вокруг начинает как-то подозрительно на тебя коситься =)
|
Цитата:
Еще бывает полезно рассказать кому-то о проблеме (не обязательно даже специалисту в этой области). Пока рассказываешь, каким-то образом приходит осознание в каком направлении двигаться дальше. Подкорка - великая сила! |
Цитата:
|
Цитата:
|
Ага, качество кода измеряется в WTF в минуту, мну просто бесит ситуации такого рода, даже не знаю, что делать, намучавшись бросаю, и на след день, или два все вроде решается)
Добавлено через 38 секунд Но раздражает очень сильно хочется рвать и метать(( |
Высокий WTF/минуту вызывает сначала улыбку ("Во чуваки дают!"), потом, когда понимаешь, что "без поллитры" тут не разберешся - уныние, но не психоз.
Бесит, когда ты уже 2 часа долбишь один компонент, а он _не_ хочет работать, вроде вот код перед глазами, вроде ясно все, а скомпилированная версия так _не_ считает. Я обычно, после нескольких ударов лбом об клаву, поворачиваюсь к колеге и излагаю суть проблемы. Причина проблемы в 70% случаев вспылвает в мозгу на середине изложения :) |
Обычно начинаю с того, что во всем обвиняю кого-то другого. Потом читаю соответствующий раздел в Википедии, потом пишу тест, ну и дальше 50/50 :)
|
Цитата:
|
Я когда сталкиваюсь с такой бедой, то стараюсь воссоздать баг на минималистическом примере. Но как правило такие примеры работают как надо. Ну и тогда уже "Да что за *****?!".
|
Цитата:
|
Кстати клавиатуру классно об угол стола разбивать.
Куча брызг и мощное удовлетворение. Пока до магаза гуляешь за новой - расслабляешься и находишь решение. P.S.: клаву ломать лучше стоимостью до 300 рублей... |
Цитата:
А еще помнится у нас на одной сейшене в мохнатые годы гитарист одной местной группы не имел такой подменной и разбил инструмент гитариста из другой группы. Вот смеху-то было - им потом выступать надо было. Клаву на убой тоже можно у соседа схватить, если таковой имеется. :) |
Ну и абсолютно рентабельный вариант: http://www.korova.ru/humor/pics/2800/81229480861.gif
|
Цитата:
|
он должен не висеть, а выпускаться огромными тиражами и лежать наготове ))
|
Ндя... ну, то есть относительно топика, я понял - психуем мы редко.... но метко :))))
|
Как-то так:
Код:
TD — дата и время дедлайна Dcurr — текущее дата и время C — степень комфортности рабочей обстановки |
Да нуууууу....... Туда еще следует внести целый ряд нормировочно-калибровочных коеффициентов:
к1 - удовлетворение от ЗП к2 - придурочность начальника к3 - лояльность заказчика к4 - погода на улице (дождь-солнце) к5 - день недели (isMonday, isFriday) к5.1. - время года к6 - пил накануне или нет к7 - сытость (сильно голодный....тока что пожрал) к7.1. - что есть в наличии (ничего, доширак, бутики, утка печеная в апельсиновом соусе) к8 - степень интересности проекта (тупая нафик никому не нужная шняга ... мега_проект_века) к9 - обстановка на личном фронте к10 - температура в офисе к11 - время суток к12 - кто(коллега, смежник, рук-ль проекта) , где(канары дача) и как давно в отпуске (тока что ушел, задерживается из) к13 - слушает ли тупая секретутка на весь офис тупую радиостанцию с 20 тупыми песенками При определенном сочетании (D - Dcurr) становится пренебрежимым :) |
[quote=mooncar;1036587]Как-то так:
Код:
TПро балкон абсолютно согласен, верное средство, хоть и не курю. Можно еще пойти помыть лицо, а лучше всю голову, тоже помогает встряхнуться и начать думать с другого конца. |
Цитата:
То есть я посчитал, кто степень комфорта, которая складывается из твоих коэффициентов (их на самом деле больее), уже известна. :) |
Цитата:
PS: http://i919.photobucket.com/albums/a...cefreakout.gif тоже помогает, очевидно. |
А чего тут психовать.
Если у меня закралась какая-то ошибка и я не могу ее обнаружить, просто вырубаю проект как минимум до следующего дня и расслабляюсь :) |
Цитата:
|
Угу.... а вокруг, акульим плавником из океана, маячит шеф и каждые 5 мин спрашивает - ну как? Выкладываем апдейт? Сервак уже обновили, у юзеров все глючит, тебя все ждут....
Какой тут следующий день... хе.... :) |
| Часовой пояс GMT +4, время: 17:48. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.