metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2008-12-02 10:53 pm

Программистские комплексы

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

[identity profile] wildman.livejournal.com 2008-12-02 09:39 pm (UTC)(link)
а что логгер не конфигом рулиться?

[identity profile] metaclass.livejournal.com 2008-12-02 10:12 pm (UTC)(link)
Рулится. И все отладочные сообщения и прочее - все остается в продакшене.
Но натурально это со стороны выглядит, как будто "разработчики сами не знают, что у них и как работает, поэтому оставляют логи включенными". Типа "настоящий" софт должен работать и без того, чтобы от клиентов логи на изучение получать.

[identity profile] wildman.livejournal.com 2008-12-03 10:17 am (UTC)(link)
ну тогда это точно тараканы :)
буквально на неделе столкнулся - на третью неделю работы продакшен сервера софтина падает без объяснения причин.
поменял в конфиге logging=CRITICAL на logging=DEBUG и теперь хоть есть что анализировать :)

[identity profile] metaclass.livejournal.com 2008-12-03 11:59 am (UTC)(link)
Вот :)
"Стыдно. У нас сервер падает, а мы не знаем почему".
Я никак не привыкну, что системы настолько сложные и зависят от такого количества внешних факторов, что добится 99.999% надежности невозможно просто в силу того, что внешние зависимости не обладают такой надежностью.

-=========<;>~

(Anonymous) 2008-12-03 09:13 am (UTC)(link)
Только так, никаких релизов, даже отладочную иформацию оставить.
Логи в файлах данных и снаружи. Пошли все нафиг, ибо мозговых червей (как своих, так и чужих) можно отловить только по их следу в системе.

[identity profile] g-rub.livejournal.com 2008-12-03 12:54 pm (UTC)(link)
Я правильно понимаю, что под "релиз-билдом" понимается такая сборка, из которой целенаправленно вырезаны все вызовы логгера?

Скажите мне, что я неправ.

[identity profile] metaclass.livejournal.com 2008-12-03 03:49 pm (UTC)(link)
У меня нет. Я релиз-билд вообще не делаю, кроме случая с C++ рунтаймом(проекты в дебаг конфигурации линкуются с отладочным рунтаймом и никогда не запускаются у пользователей, т.к. там этого рунтайма нет).

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

[identity profile] g-rub.livejournal.com 2008-12-03 04:18 pm (UTC)(link)
Простите, не верю насчет "везде". :(
Отключить через конфиг -- да, но убирать из кода?

Как потом предполагается получать диагностическую информацию, если приложение повело себя непредсказуемо?

[identity profile] metaclass.livejournal.com 2008-12-03 04:22 pm (UTC)(link)
Вот. Т.е. постулируется, что софт поставленный клиентам, может вести себя непредсказуемо, поэтому в нем надо оставить отладочную информацию.
А это равносильно тому, что сказать клиентам, что ты "плохой программист". "СТЫДНО!" :)

[identity profile] g-rub.livejournal.com 2008-12-03 05:10 pm (UTC)(link)
ИМХО предполагать, что твой софт будет работать детерминированным образом в любых условиях, включая нештатные -- это гораздо страшнее. Это расписаться в полном непонимании того, чем ты занимаешься.

[identity profile] metaclass.livejournal.com 2008-12-03 05:47 pm (UTC)(link)
Чтобы дойти до понимания, что софту разрешено ошибаться, если его окружение сношает в хвост и гриву, мне пришлось работать 10 лет :)
Я софт воспринимал, как решение математической задачи, в котором по определению не должно быть ошибок. Чтобы догадаться, что в условия задачи входит еще и окружение, это нужно очень долго и упорно работать :)

[identity profile] g-rub.livejournal.com 2008-12-03 07:05 pm (UTC)(link)
А, ну мне как физику проще.
У нас по определению все решения задач приблизительные, а наличие погрешностей и допущений -- аксиома.

[identity profile] metaclass.livejournal.com 2008-12-03 07:51 pm (UTC)(link)
Кстати, физические и инженерные задачи, связанные с расчетом погрешностей и отклонений для меня всегда были проблемой, да. И еще я дико всегда не любил эмпирические формулы.
Люблю точные расчеты и теоретические доказательства.

[identity profile] g-rub.livejournal.com 2008-12-03 09:05 pm (UTC)(link)
Эмпирику тоже не люблю, +1.

[identity profile] g-rub.livejournal.com 2008-12-03 09:09 pm (UTC)(link)
Однако, погрешности и отклонения могут привноситься не только экспериментом, а и за счет внутренних допущений в самой теоретической модели...