Кока-кола

Секретарша переключила телефон на меня. Трубка взорвалась криком. Я отодвинул ее от уха. Кричала наша машинистка-надомница. У нее было трое детей и в офисе она появлялась только забрать бумаги и отдать дискеты. Сейчас она жаловалось, что пропал весь набранный за последние два часа текст - полсотни обработанных анкет. Пачки этих анкет привозили из офиса Моторолы - в Израиль пришла сотовая связь. Каждый покупатель в обязательном порядке заполнял подробную на два листа анкету: возраст, семейное положение, количество детей и их возраст, ежемесячный доход... не было, разве что, вопроса про размер обуви. Я плохо понимал, какое отношение это может иметь к продажам сотовых телефонов и насколько вообще законна процедура подобного опроса, пусть даже и анонимного. Впрочем, это не моя забота. Моей заботой была та база данных на 4th Dimension, в которой сохранялись и обрабатывались все эти анкеты. Большая часть кода была написана мной, но я был занят в более важных проектах и часть была сделана Алексом - тощим рыжим срочником, приезжавшим к нам на весьма подержанной машинке в свободное от службы время. Квалификация Алекса исчерпывалась армейскими курсами по Макинтошу, что не мешало ему чувствовать себя крупным специалистом.

Знакомство наше началось с того, что не представившись, он объявил неверным один из моих проектов. - Что не так? - кротко поинтересовался я. Проект этот был проклятьем всей фирмы и моим в особенности - как исполнителя. Чем-то босс был обязан этой адвокатской конторе. А педантичная леди была секретарем нотариуса - на пенсии, но продолжала работать. Проект делался безвозмездно, но требований к нему она предъявляла на хорошую премию. Не говоря уж о коде, я вылизывал углы и отступы каждой формы. Ее требования к отчету были и вовсе фантастическими... 4D позволял до пяти пред-, пост- и условий на печать каждой линии - и я вынужден был задействовать их все, чтобы добиться желаемого ей эффекта. По всем другим проектам в сумме я получил меньше замечаний и требований, чем от нее одной. Старая карга не поленилась заполнить каждое и каждое поле всеми возможными вариантами и проверить все мыслимые условия, прежде чем я услышал от нее первые слова одобрения. Я сказал боссу, что каждый ее визит к нам на фирму, это как праздник для меня - он обязан оплачивать мне эти дни по двойному тарифу. Ткни Алекс в любой другой проект и скажи, что там есть ошибка - я бы поверил. Но не в этом.

Вместо ответа, он порылся в директории примеров, выбрал там какой-то проект и открыл диаграмму связей. - Видишь? - тыкал он мышью в соединительные линии. - И что? - А это твой проект! - он также открыл диаграмму связей. Ни одной соединительной линии на ней не было. Тут только до меня дошло, что он имел в виду: зависимости между таблицами. Угу, умник... Зависимости там были весьма непростыми и каскадное обновление и удаление было реализовано моим собственным кодом - тщательно выверенным и отлаженным. Это была невидимая, но красиво сделанная часть работы. Для меня она была гораздо важнее дорогого сердцу нотариуса отчета. Но я не стал объяснять этого Алексу. Пусть сам разбирается в коде, если хочет понять, почему все работает.

Так вот, эту форму ввода писал именно он. Не мог же он забыть на ней кнопку "Save"? - Дура, подумал я, вспомнив физиономию нашей надомницы. Забыла о сохранении. Дождавшись паузы в телефоне, я мягко объяснил ей, что перед переходом к новой анкете нужно обязательно сохранить отредактированный текст. - Крик возобновился и усилился. - Разумеется, она все сохраняла. Она специально проверила все дважды. Она попробовала разные ответы на вопросы... она попробовала все, прежде чем стала звонить в офис... она не такая дура, как я о ней думаю... ничего не сохраняется. Ничего и никогда, день работы насмарку!

Я предложил ей сделать пока перерыв и пообещал разобраться. Алекс появлялся не каждый день и, на мой взгляд, не сильно утруждал себя работой. При том, он как-то обмолвился, сколько получил за последний месяц: при работе по двенадцать часов в день - с девяти до девяти, у меня было вдвое меньше. Алекс, правда, тоже жаловался на недосыпание - спит по пять часов в день. - Парень, сказал я ему, - когда я служил в армии, я спал пять часов в неделю.

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

Квартирка у нее была маленькая, тесная, но чистая. Надо полагать, собственная. Дети, казалось, непрерывно крутились между ней и телевизором, работавшим чрезмерно громко. - Ладно, я пришел не за этим. Кнопка "Save" на форме, разумеется, была. Я набрал какой-то текст, сохранил - сообщений об ошибке не последовало. Попробовал поискать его в базе - ничего не нашлось. Проверил еще пару раз - результат тот же. Машинистка торжествовала. Странный баг. Я сделал копию всей базы на дискеты, разбираться буду завтра, на работе. По TV шла музыкальная реклама кока-колы. Дети подпевали. Все трое.

Утро я начал со сверки мотороловской анкеты с формой. Количество сошлось - все два листа, восемьдесят вопросов. Так, теперь сами вопросы: edit boxes, check boxes, radio buttons - все было корректно, Алекс ни в чем не смухлевал. Что же не так? Я полез в код. Хэндлер на кнопку, процедура сохранения, название соответствует, заходим внутрь. Упс! А где же код? Процедура пуста. Я протираю глаза - действительно, ничего нет. Совсем ничего. Даже комментария. По нажатию кнопки "Save" информация просто терялась. Безвозвратно.

Я задумался. Возможно, код был написан, но не попал в релиз. Или удален по ошибке. Или бездельник Алекс в самом деле забыл его написать. Уже неважно. Деньги он получил. Работа стоит. Исправлять - срочно - придется все равно мне. От того, что я "сдам" Алекса, мне ничего не обломится - "не свой". А вот он, напротив, будет искать случая устроить мне неприятность. Или, даже, подстроить... Лучше молчать... За полтора года работы я твердо усвоил, чего ждут от "оле": кланяйся и благодари, благодари и кланяйся. Стиснул зубы и принялся за работу. После обеда позвонил надомнице: - Геверет, в базе была ошибка, я ее исправил. Можно зайти, забрать новую версию... Спасибо, что указали на этот недостаток...


Рецензии