Dec. 9th, 2012

metaclass: (Default)
Если бы вы знали, как меня заебали идиоты, которые не хотят обрабатывать ошибки.
Каждый божий день под руки попадается софт, в котором типичный способ обработки ошибок выглядит так:
try{
//инициалиация ебового окружения с десятками зависимостей от других софтов
}catch{
MessageBox("У нас что-то наебнулось. Все плохо.");
}

Ладно бы это был софт для обычных пользователей, которые испугаются, если им показать сообщение, выданное операционной системой или либами, или там стек-трейс. И то - в этом случае обычно принято делать два окна - одно с читабельным сообщением и кнопкой "отослать в службу поддержки" и второе - с технической информацией. Если влом - то хотя бы текстовый лог добавить.
А то ведь совершенно гиковский софт, который вообще средний человек даже в гугле не найдет, не говоря о том, чтобы его запустить (потому что под линуксами он собирается вручную с двумя десятками зависимостей, а под виндой инсталлятор вообще никак и нигде упоминает что ему еще нужны питоны и питоновые модули). Ну выведите вы этот несчастный питоний стек-трейс куда-нибудь, корона не свалится.

И вот это практически блин везде - "что-то сломалось" - берем в руки долбаные procmon и windbg и сидим чиним по фотографии. Или каждый раз при вытаскивании новой версии с апстрима накладываем свои мега-патчи, вся функциональность которых заключается в "нормально обрабатывать ошибки, запоминать настройки и вообще вести себя прилично".

С автором одного такого поделия пытался обсудить вопрос показа сообщения об ошибке более подробно. Весь ответ был "мой софт работает идеально, ошибки пользователи видеть не хотят, а вы должны ставить строго по инструкции, тогда все будет работать".

Вот это "строго по инструкции" - это надо нахер кувалдой отбивать пальцы, чтобы никогда больше клавиатуры не касались. Потому что это означает, что софт работает только в тепличных условиях в строго выверенном окружении (в пределе - только на машине аффтора) и любая проблема с ним означает необходимость сидеть и пытаться воспроизвести дурные баги, возникающие только на 10% компьютеров в зависимости от фазы луны, без логов и вся информация о баге будет заключатся в "у нас тут окошко с красным крестиком выскочило".

Ну запусти ты, скотина рукожопая, свое поделие на чистом компьютере, не настроив окружение - пусть оно не запустится, но хотя бы скажет, что ему надо, вместо падения с сообщением "у нас все плохо".

Или вот еще - баг в libusb. Возникает только при сочетании следующих условий: винда+отладочный билд+явная передача контекста(работа с несколькими устройствами в одном процессе)+вызов операций из разных потоков. Баг заключается в том, что вызов операции отмены io не из того потока в котором io начиналось, вызывает в отладочной версии запись warning. Этот warning использует ссылку на контекст в глобальной переменной, чтобы определить, включен ли вывод в лог. При этом - эта переменная инициализируется только в случае, если контекст явно не передается. Если передается - то в переменной null и вывод warning вызывает NPE, убивая софт на корню. Т.е. обработка ошибок вызывает сама ошибки. За это вообще нужно голову отрезать.

VS2010

Dec. 9th, 2012 06:28 pm
metaclass: (Default)
Ставлю сабжъ. Сначала один из инсталлеров внутри тупил в выключенный сервис Automatic Updates.
Потом вот такое: http://cacodaemon.org/content/hlm_vs2010.png
2012 год на дворе - окна маленького фиксированного размера с нерегулируемыми колонками, да.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 8th, 2025 03:08 pm
Powered by Dreamwidth Studios