avva: (Default)
[personal profile] avva
Очень люблю рассказ Чапека "Смерть барона Гандары" и часто его вспоминаю.

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

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

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

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

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

У меня иначе.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Красиво.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 07:41 am
Powered by Dreamwidth Studios