avl (avl) wrote,
avl
avl

Category:

86. Две ошибки могут взаимокомпенсировать друг друга (и найти это - очень тяжело)

Очередной перевод - об анекдотичной ситуации про две ошибки, компенсирующие друг друга и ошибкой не являющиеся :)

А если серьезно, то проблема еще как актуальна! Не так давно это произошло в моей практике...

Мне пришлось портировать написанный до меня код, работающий в паре со специальным устройством, генерирующим разные сигналы, на новую версию этого устройства. Одна из функций в этом коде должна была определить знак генерируемого сигнала, и в ней изначально была ошибка, но она на старом устройстве просто не проявлялась. Новое же устройство генерировало немного более шумный сигнал, что приводило к тому, что из-за этой ошибки функция практически все время определяла знак неправильно. Но! Одновременно с этим само новое устройство генерировало этот сигнал с противоположным знаком! В результате две ошибки в большинстве случаев компенсировали друг друга, и на то, чтобы найти обе проблемы (и в функции, и в самом устройстве), ушло очень много времени, гораздо больше, чем найти каждую из них по отдельности...
Tags: 97_things_programmer_should_know
Subscribe

  • Тест на способность доводить до конца пройден!

    Сегодня закончил переводить серию "97 вещей для программиста"! Вот здесь - три последних перевода: 95. Пишите тесты для людей - еще одна статья о…

  • Еще три перевода

    92. Когда программисты и тестеры объединяются - о том, что объединяться для общей цели всегда выгодно. 93. Пишите код так, как будто вы будете…

  • Еще четыре перевода

    88. Юникс-утилиты - это ваши друзья - название говорит само за себя :) 89. Используйте правильные алгоритмы и структуры данных - интересная и…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments