Эликсир эффективного кода
Во время оно в голове у меня было только две мысли: написать программу, уложившись в ТЗ, и навариться на эпидемии вируса Chernobyl, имея под рукой программатор.
А ТЗ было очень даже заколдобистое. То есть программа должна была работать на XT без винта. С двух дискет. По филиалам у нас такие едва ли не до 98-го работали.
Кто писал объёмные проекты на Clipper, тот знает, чего стоит впихнуть клиппериану в 640К минус драйвер русской клавиатуры минус драйвер сетевой карточки минус драйвер принтера. То есть ~540К. И клипперовский рантайм на 320К.
И был у меня там модуль. Ничего сверхординарного: выборка по заранее не определённому, но конечному количеству параметров. Только Клиппер — это не SQL. Он не только сам запрос должен создать, но ещё и сам его обработать.
Был этот модуль в двух вариантах: либо быстро, но то
И тут пациент за восстановление погрызенного «Чернобылем» биоса подгоняет аж три литра настоящего привозного Хольстена. Дедлайн по проекту был не то что виден, а уже конкретно кусал за пятки, то есть оставалась до него пара дней. И решил я превентивно выпить и попрощаться с премией, а то и с работой.
После третьей бутылки мысли начали плавать легко и быстро, и душа попросилась за клавиатуру. Я поправил версию с беты на релиз (типа, сжёг мосты) и полез в этот грешный модуль. Как раз к концу шестой бутылки про меня вспомнила охрана и буквально на руках вынесла меня из кабинета в троллейбус.
Утром, придя на работу, я первым делом схватился за исходники. Бэкап был только от последнего релиза. Плохо. BAK-файлы. Их много. Время у них практически совпадало со временем моей эвакуации охраной. Очень плохо. Значит, на перекурах сохранялся. Где там наш большой авось?
Запускаю сборку. Собирается. Причём даже без привычных ворнингов. О как! Подцепляю тестовые базы. Гоняю в хвост и в гриву. Всё работает! Добавились кое-какие красивости интерфейса. Откуда бы? Запускаю эту, мать её, выборку. Работает. Быстро. Ну, это на 486-й. Засовываю дискетку в стендовую экстишку. Работает. Быстро. Проверяю ковырнадцать раз. И не ошибается. Тихо обалдеваю.
Глазам не верю. Лезу в исходник. До меня доходит, что я не понимаю, как он работает. Любая попытка
Спустя несколько лет мне позвонил мой преемник с вопросом: «Что-то я никак не пойму, как у вас работает модуль N». Пришлось рассказать ему эту самую историю.