kika: (Default)
[personal profile] kika
Вспомнил тут историю в контексте другого обсуждения, и решил повеселить публику.

Меня как-то наняли спасать проект с огромной базой кода на С++. Мягкий реалтайм, система управления буровой установкой для горизонтального бурения. Там был странный плавающий баг, который на симуляторе приводил к потере головки, то есть это нельзя было выпускать ни в коем случае. Они к моменту моего прихода искали баг всей командой уже три месяца. Я нашел баг (это было непросто и это оказался наш любимый off by one) исправил его, победно затрубил и запустил симулятор. Через 10 часов потерял головку. Стал искать баг опять. Нашел его снова, неисправленный. Тут Зоркий Глаз начал что-то подозревать и обнаружил 6 (шесть!) копий класса, который отвечал за считывание статуса и подачу команд на управляющую железку. Просто во всех местах где надо было пользоваться API этого класса, им надо было этот API чуть модифицировать и класс просто копировали, называли по-другому, подпиливали API и пользовались.

Кроме того, как выяснилось, железка не умела отвечать сразу нескольким клиентам, поэтому то, что у них все совсем не взорвалось было чистым везением (ну или невезением, взорвалось бы раньше, быстрее бы нашли).
From:
Anonymous( )Anonymous This account has disabled anonymous posting.
OpenID( )OpenID You can comment on this post while signed in with an account from many other sites, once you have confirmed your email address. Sign in using OpenID.
User
Account name:
Password:
If you don't have an account you can create one now.
Subject:
HTML doesn't work in the subject.

Message:

 
Notice: This account is set to log the IP addresses of everyone who comments.
Links will be displayed as unclickable URLs to help prevent spam.

Profile

kika: (Default)
kika

January 2017

S M T W T F S
1234567
89 1011121314
151617181920 21
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 26th, 2017 02:32 pm
Powered by Dreamwidth Studios