Читаем Bash.org.ru IT Happens Истории ## 3101 – 3200 полностью

Есть у нас здоровенный программный комплекс, обслуживающий научное оборудование. Оборудование весьма занимательное (на то и научное), поэтому и комплекс должен быть гибким: служит он такой куче исследований, что и сам не знаешь, на что именно натравишь этого монстра завтра.

Писался этот комплекс в три попытки. Первая представляла собой просто одиночную программу, которая перебиралась и перекомпилировалась, обрастая форками, ключами запуска и дефайнами до полной нередактибельности. Весь отдел ПО, вооружившись последними достижениями от MS, полгода ваял на Visual C++ замену. Итог: весь рабочий код уже обкатан на старой версии, язык C++, среда визуальная типа «интерфейс за один клик». Замена получилась модульная, и хотя перестыковка модулей осуществлялась с определённым сексом, приняли её на «ура».

Грянул кризис, утекли мозги, да и модульная софтина обросла костылями из-за трудностей с перестыковкой модулей. Свершилась третья попытка: руководство дало новым мозгам задание переписать всё заново, а для сокращения времени задействовали наимоднейшую концепцию «программирование без программирования» (UML и иже с ним: даёшь машине формулу, она в ответ — готовую программу). В этот раз в полгода уложиться явно не получилось: достижение стадии «самое начало комплекса уже иногда почти работает» вызвало всеобщий экстаз. Это, конечно, хорошо, но работать-то как?

Комплекс с сохранением модульности (только теперь модули перегруппировываются за секунду без всяких хитрых тайных знаний) я переписал в одно рыло (даже скорее в полрыла) вечерами за три месяца. Пользовался Open Watcom — дикой древней средой, в которой мышкой рисуются только диалоги. Си, «плюсы» в следовых количествах. Код полон if ((wParam&0xFFFF)==RUN_SERVO) SendCommand (MOTOR, 1); — кто знает WinAPI, тот поймёт, что такое ручная обработка оконных событий и какая это куча писанины. В теле сплошная работа непосредственно с указателями, проскакивают следы ассемблерных вставок. И почему же эта писанина совершенно не помешала мне работать в разы быстрее, чем все предшественники? Я вижу только две причины:

1) Работа программиста отнюдь не в наборе текста. Программист всё-таки не машинистка, скорость его работы не от количества знаков в минуту зависит.

2) Современные среды служат не для ускорения работы, а для снижения порога вхождения. Абстракция, оборачивающаяся во всё более и более толстую луковицу, нужна больше для сбора ста индусов в один хайвмайнд без их рассинхронизации (и вообще для того, чтобы индусы могли хоть как-то принять участие), а квалифицированному программисту, один раз изучившему системные «кирпичики», на которых держатся все разновидности таких сред, она производительность труда только снижает.

Завтра моя внеплановая четвёртая попытка, вызвавшая лёгкий шок, сдаётся в эксплуатацию. Бета выловила от силы полтора глюка — не в пример предшественникам (и это при том, что часть кода писалась вслепую без оборудования, с которым должна взаимодействовать). Вопрос напоследок: которая из четырёх версий обладает наибольшим быстродействием?

<p>#3119: Квестовая цепочка</p>

13:00 16.05.2010, IT happens

Как-то понадобилась помощь нашего админа по очередным ошибкам винды. Он в этом шарит, но не больно-то любит отвечать на вопросы чайников, а мне всё надо знать.

Обычно связь держим через мыло техподдержки. Пишу ему на мыло. Приходит ответ от автоответчика: «Если я вам СРОЧНО нужен, ищите меня в аське». Смотрю в аську: его там нет, стоит двухдневной давности статус: «Если я вам СРОЧНО нужен, ищите меня в скайпе». Иду в скайп. Смотрю статус: «Если я вам СРОЧНО нужен, ищите меня в контакте». Иду в контакт: «Если я вам СРОЧНО нужен, ищите меня по мобиле». Блин, а ведь правда, лучше б сразу позвонил, а то скоро терпение лопнет. Надо сказать, что номер немногие знают (тоже своеобразная защита от полных чайников), благодаря чему квест на этом этапе может зависнуть.

Звоню. Что бы вы думали? Автоответчик вещает: раз, мол, я такой упорный, что выполнил многоступенчатый квест, то, может, толк и выйдет. И на том конце поднимается трубка.

<p>#3120: Наглядное пособие для отвода глаз</p>

13:00 16.05.2010, IT happens

У на на работе стоит два сервера: обычный и конфиденциальный. Так вот, в отличие от многих «коллег», наш стелс-сервер находится не в потайной каморке, а прямо у меня в серверной.

Рецепт прост: на лист фанеры прикручиваются мамка, харды, блок питания и остальные внутренности. Всё это добро вешается на стенку с подписями, из чего состоит комп, как наглядное пособие для ламеров и интересующихся. А что оно жужжит — ну чтоб показать, что и как работает.

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

<p>#3121: Песня из-за кулис</p>

13:00 16.05.2010, IT happens

Перейти на страницу:

Все книги серии Bash.org.ru IT Happens

Похожие книги