avva: (Default)
avva ([personal profile] avva) wrote2015-10-23 03:09 pm

у каждого свои методы, коллега

Очень люблю рассказ Чапека "Смерть барона Гандары" и часто его вспоминаю.

Не буду его пересказывать, там полторы страница текста. Прочитайте, если не знаете. И вообще, если вы не читали "Рассказы из одного/другого кармана" Чапека, вам совершенно не стоит это откладывать.

Но я к чему. Так, как в этом рассказе с убийствами - у меня с багами в программировании. Вечно мне попадаются какие-то особо глубокие и заковыристые. Такие, чтобы их найти и починить, надо перепахать гору логов, добавить в код двадцать тысяч отладочных распечаток, увидеть, как из-за них баг пропадает, снова и снова недоуменно пялиться на экран и восклицать: "Но как такое может быть"? Только менее цензурно. Вот и сейчас, извините за неровный почерк.

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

А другой сел бы за ту же самую проблему и за полчаса нашел бы совершенно обыденное объяснение и починил в пять строк очевидного кода. Вот точно так бы и было.

Потому что нечего выпендриваться.

У меня иначе.

(Anonymous) 2015-10-23 12:24 pm (UTC)(link)
Большинство багов, которые я продуцирую, очень глупые, типа просто что-то забыл или не обратил внимания. Как зевок в шахматах. Изредка бывают и сложные баги, вот сейчас например, но только когда приходится использовать чужой софт (или код) с не вполне понятными свойствами. Наверно я просто не сильно сложные вещи программирую.

[identity profile] http://users.livejournal.com/_sabiko/ 2015-10-23 01:06 pm (UTC)(link)
Я недавно целый день ковыряла воспроизводимую ошибку в коде - которая в итоге оказалась багом SQLite, теперь уже пофикшенным к тому же. Так мне это показалось страшно сложной и неожиданной причиной, а вы так походя, "если повезёт", "что-нибудь попроще, типа бага в компиляторе". Вот что значит опыт!

[identity profile] isk.livejournal.com 2015-10-23 01:37 pm (UTC)(link)
у SQlite был баг? у системы, для которой тестов по объему больше чем собственно кода?

[identity profile] tabernac1e.livejournal.com 2015-10-23 02:59 pm (UTC)(link)
И что тут удивительного?

[identity profile] isk.livejournal.com 2015-10-23 07:21 pm (UTC)(link)
но разве это не означает, что TDD не работает?

[identity profile] tabernac1e.livejournal.com 2015-10-23 09:39 pm (UTC)(link)
Нет, не значит. Ещё есть вопросы?

[identity profile] isk.livejournal.com 2015-10-23 09:50 pm (UTC)(link)
Ну есть один - каков критерий того, что TDD не работает?

[identity profile] nalivalovo.livejournal.com 2015-10-23 11:54 pm (UTC)(link)
Когда он совсем-совсем не поможет.
А все это - показатель и критерий того, что идеала в мире нет и едва-ли будет.

[identity profile] e2pii1.livejournal.com 2015-10-26 04:07 am (UTC)(link)
"test-driven development" не является способом тестирования (это способ developmenta)

(Anonymous) 2015-10-23 07:01 pm (UTC)(link)
https://www.sqlite.org/changes.html - реулярно баги фиксятся, как же без них?

[identity profile] tr1gger.livejournal.com 2015-10-23 08:15 pm (UTC)(link)
Не просто больше, а в 811 раз больше. Конечно, я и не надеюсь что эти тесты писались руками.

[identity profile] a-konst.livejournal.com 2015-10-26 02:25 pm (UTC)(link)
Тестов больше, чем кода, у любой нормально протестированной системы.

[identity profile] digest.livejournal.com 2015-10-23 01:11 pm (UTC)(link)
Старинная английская пословица: У соседа всегда газон зеленее баги проще.
На самом деле свежий (посторонний) взгляд ОЧЕНЬ полезен при слишком глубоком погружении в сложный баг. При долгом поиске растет не только дерево возможных причин проблемы и тестов для ее обнаружения, но ищущий эмоционально проникается сложностью бага и обязательной неординарностью его починки.
Edited 2015-10-23 13:12 (UTC)

[identity profile] a-konst.livejournal.com 2015-10-26 02:26 pm (UTC)(link)
Не всегда.
У меня обычно бывает наоброт - пока ищу, мне кажется, что все пипец как сложно, но как найду - чаще всего решаю, что все очень просто, и найти мог бы в три раза быстрее, если бы сразу догадался, куда посмотреть.

[identity profile] led-off.livejournal.com 2015-10-23 01:42 pm (UTC)(link)
Это как в анекдоте про внедорожник.

Который застрянет там, куда другая машина не проедет. :)
Edited 2015-10-23 13:45 (UTC)

[identity profile] tracktourist.livejournal.com 2015-10-23 06:57 pm (UTC)(link)

Красиво.

[identity profile] muh2.livejournal.com 2015-10-23 02:24 pm (UTC)(link)
Как я Вас понимаю. Но это Вы не пробовали дебаггировать СВЧ - систему. С криогенными элементами. И супер- ультра- низкошумящими усилителями.

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

А окажется, поди, какая-нибудь отвалившаяся масса (одну уже нашли, но есть подозрение, что она отвалилась в процессе дебаггирования).

[identity profile] old-radist.livejournal.com 2015-10-24 06:41 pm (UTC)(link)
Наудачу в СВЧ помогает очень редко. Надо применять левоинтуитивные методы.

[identity profile] muh2.livejournal.com 2015-10-24 07:58 pm (UTC)(link)
Да вот пытаемся, да. Но чуствую - получится наудачу.

[identity profile] migmit.livejournal.com 2015-10-23 02:59 pm (UTC)(link)
Горе от ума.

[identity profile] caztd.livejournal.com 2015-10-23 04:54 pm (UTC)(link)
Везет вам. С багами процессора/борда уже сталкивались?

[identity profile] dimrub.livejournal.com 2015-10-23 05:39 pm (UTC)(link)
Ну ты ведь знаешь анекдот про Хэмингуэя, писателя Платонова и начитанного мальчика? Короче вот я бы хотел уметь находить путем длительных изысканий баги в компиляторах там и в железе (как Джесси однажды сделал), а вместо этого нахожу обыденные объяснения.

[identity profile] alex-levit.livejournal.com 2015-10-23 07:42 pm (UTC)(link)
А мне в этом сборнике Чапека больше всего нравится первый рассказ: "Случай с доктором Мейзликом". Бывает придумаешь какую-нибудь штуку и потом гадаешь: это простая удача, или это какие-то способности? А если способности, то как эту удачу повторить?

[identity profile] avva.livejournal.com 2015-10-23 11:31 pm (UTC)(link)
Да, он отличный.

[identity profile] tr1gger.livejournal.com 2015-10-23 08:23 pm (UTC)(link)
Кстати, я давно заметил, что в высокоуровневом серверном программировании сложных багов намного меньше. Если структура кода соответствует ходу мыслей человека, и аккуратно расставлять лог-мессаги (не для дебаггинга, а стандартные информативные), то баг обычно сразу виден по логам. Если не виден -- я считаю такой код плохим. Точно так же если код сложный, то он плохой.

В низкоуровневом не так, там и структура кода соответствует железу, оптимизирована, и логгинг не везде расставишь.
Edited 2015-10-23 20:23 (UTC)

[identity profile] vnarod.livejournal.com 2015-10-23 10:45 pm (UTC)(link)
Потому что есть два стиля программирования: чтобы было как правильно и чтобы прямо сейчас заработало. Руководству почти всегда нужен второй.

[identity profile] old-radist.livejournal.com 2015-10-24 06:45 pm (UTC)(link)
Надо попросить ув. Авву сделать опрос на тему "у нас скрам" vs. "а у нас нет". :-)

[identity profile] xfqybr.livejournal.com 2015-10-23 10:53 pm (UTC)(link)
Спасибо, бегу читать!
nechaman: (i)

[personal profile] nechaman 2015-10-24 04:19 pm (UTC)(link)
Мой муж когда-то с одним знакомым работали электронщиками на ЭВМ в России. Не потому что у них было образование такое, а просто взяли их, других видно не было. Машина эта часто ломалась.
Друг моего мужа лазал по схемам искал, где причина сбоя. А мой муж вынимал последовательно все микросхемы (тогда уже были первые чипы) и вставлял их назад - и после этого все начинало работать. Усилия его друга тоже приводили к позитивному результату, он находил причину и устранял ее. Но у ПП это получалось быстрее.

[identity profile] link0ff.livejournal.com 2015-10-24 08:04 pm (UTC)(link)
Так же как и по телевизору было достаточно постучать в нужном месте, чтобы исправить изображение.
nechaman: (Default)

[personal profile] nechaman 2015-10-24 08:35 pm (UTC)(link)
Теперь уже не поможет стучать по экрану. И детей не бьют. Продвинутый уровень цивилизации.

[identity profile] mfi.livejournal.com 2015-10-25 11:05 am (UTC)(link)
Потому что 90% всех проблем в той электронике - нарушение контакта. Вытащить и поставить - нормальный способ. Остальные 10 процентов брались последовательной заменой плат из соседней работающей машины :-)
nechaman: (Default)

[personal profile] nechaman 2015-10-25 03:10 pm (UTC)(link)
Правильно.

[identity profile] nuladno.livejournal.com 2015-10-26 09:59 am (UTC)(link)
ходячее выражение наших мальчиков-электронщиков было: "Электроника - это наука о контактах"
nechaman: (Default)

[personal profile] nechaman 2015-10-26 10:13 am (UTC)(link)
Я сама была когда-то электронщиком.
Но мне кажется, у нас говорили "электричество - это наука о контактах..."