
В пятницу тринадцатого, в час по-буржуйски и тринадцать часов по-нашему я сидел за рабочим столом и клевал носом в клавиатуру. Предыдущий проект завершён, следующий — ещё не согласован. В верхушке обсуждалась его дальнейшая судьба. Пока делать нечего, смотрел очередной экспресс-курс. Вдруг из-за ширмы раздался знакомый прокуренный голос:
— «Люблю тебя, Петра творенье… Люблю твой строгий, скромный вид». А уж модель для представленья и Билла Гейтса удивит!
«Опять Иваныч что-то изобрёл, надо пойти, посмотреть», — подумал я и, прихватив фирменную кружку с изображением третьей буквы латинского алфавита и знака «диез», поплёлся в соседний отдел, где сидел мой коллега Пьер Ле Гудрон. Сунув нос за ширму, я, если честно, немного офигел: Пётр Иваныч сидел за компьютером, обнимая правый монитор и страстно целуя экран.
— Эй, Пьер! — крикнул я так, что у сидевшего рядом с ним джуна Эникеева очки упали на клавиатуру.
— Не мешай. Я только что создал шедевр, — буркнул в ответ Пьер, отодвинувшись от экрана и являя моему взору… нечто.
Интерактивный дворцовый интерьер, в котором хаотически мерцали лампочки, выдвигались ящики, в окна влетали НЛО и прочие непонятной природы объекты. По щелчку мыши декорации на заднем плане медленно исчезали, и их сменяли другие. По нажатию на ящики оттуда выскакивали надувные уточки, которые, при наведении на них мыши, начинали крякать.
— Что-то я не понял, — почесал затылок я. — Это что?
— Реактивное приложение, — кратко пояснил Пьер. — Потрясающая штука, и как я раньше без этого жил?
Пьер с недавних пор считал себя лучшим специалистом по фронт-энду. Гений вёрстки и король пользовательских интерфейсов, он по праву называл себя «император всея Междумордии», что в переводе с древнерусского на английский означает «интерфейс». Но морды он тоже хорошо бил, причём не только младшим коллегам.
Спустя почти что час, после того как я подождал его в коридоре, мы всё-таки отправились вместе в столовую, а в коридоре нас перехватил тестировщик Саня Ижорский.
Саня — легенда нашей компании. Примкнул к ней ещё года два назад. Он тогда подрабатывал курьером в «Княжестве Пиццы», а в свободное время занимался тем, что выискивал ошибки в кодах, выложенных на «Гит-Хабе». В один прекрасный момент на него нарвался наш Пьер, и тут началось.
— Какой-то тип мои open-source приложения протестировал, нашёл такие баги, о которых я даже не знал! Целую простыню прислал с отчётом!
Отлично. Кажется, мы нашли идеального тестировщика. Осталось только привлечь его к деятельности в нашей компании. И что бы вы думали? Явился, каналья! Ижорский Александр Ильмарович. Причём не один, а ещё троих человек притащил на работу: свою жену — дизайнера, её брата — сисадмина и ещё какого-то родственника на должность помощника сисадмина. Самого зовут Саня, жену тоже зовут Саня и обоих протеже так же. Плюс ещё, как я узнал, у этих Ижорских двое детей: близнецы, мальчик и девочка, и оба тоже — Сани! А вот единственного домашнего питомца — черепашку — они величали Алексеем Петровичем.
Александр Ильмарович Ижорский, полурусский-полуэстонец тридцати пяти лет отроду, с маленьким вздернутым носом картошкой и хитрым огоньком в глазах. За свои оплошности нередко в морду получал. И поделом.
— Ребят, вы обедать, да? Я с вами! — и это вновь означало, что за украденные им из столовой ложки и вилки будем платить либо я, либо Пьер.
За всё в этой жизни надо платить, особенно если гениальный тестировщик вдруг оказывается клептоманом.
Этот дотошный инженер по качеству ПО безо всякого стеснения брал и совал себе в карман всё, что криво лежало. «Выискивал баги». Так, например, шторы из столовой снял и унёс домой, объяснив тем, что они плохо вписываются в интерьер нашего бизнес-центра. Воровал вилки, вешалки, пакетики с чаем в неограниченном количестве. Ле Гудрон всё это видел, но начальству не сдавал: «Хорошие тестеры на дороге не валяются!»
И это было правдой. Особенно в нашем случае, когда ценных кадров катастрофически не хватало. Дело в том, что лет десять назад в нашей IT-компании произошло переполнение, в связи с которым весь отдел веб-разработки сослали (в прямом смысле!) в ближнее зарубежье, прямо к нам под нос. Супруга даже поздравила меня с невероятной удачей — наконец-то на новый музыкальный центр заработаем!
Офис они открыли напротив нашего дома, и я, обрадованный тем, что гора сама пришла к Моисею, вскоре устроился туда на работу. Где встретил своих замечательных коллег.
— Амантий, у тебя в тарелке третий слева шампиньон повёрнут шляпкой к западу, — с серьёзным видом отметил за столом тестировщик.
Я без лишних слов, хотя и с долей праведного гнева, мгновенно переместил злосчастный гриб со своей тарелки на его.
— Помните, какой сегодня день? — спросил Саня, по-прежнему жадно исследуя содержимое наших тарелок.
— Пасмурный, — ляпнул я первое, что взбрело в голову, хотя дни в наших краях всегда были пасмурными.
— Пятница, — буркнул Пьер, который вообще не особо любил, когда его отвлекали за столом, хотя у этого алкаша каждый день пятница.
— Не угадали. Сегодня — день управления зависимостями, — напомнил Саня, осуждающе взглянув в наши тарелки, где были жареная картошка с грибами и с кетчупом. — А это значит что?
— Да пошёл твой ЗОЖ куда подальше, — рявкнул на коллегу Ле Гудрон. — Я вчера только развязал и не собираюсь портить себе выходные всякой здоровой фигнёй типа вашего спорта и правильного питания!
— Кстати, я слышал, что сегодня также имеет место другой праздник: день антипаттерна, — на ходу придумал я, и Пьер поддержал мою идею.
— Отличный праздник, после работы отметим.
Отмечать поехали на квартиру к бывшему токарю, чтобы не смущать своим антиобразцовым поведением мою и Санину вторые половинки. Пьер единственный из нашей компании в свои сорок пять был не женат. Вернее сказать, разведён в пятый раз.
Это и неудивительно. Внешность он имел неприятную, грубую и отталкивающую: высокий, тощий как жердь, вечно грязные чёрные волосы дыбом, нос — непропорционально огромный и горбатый, подбородок острый, губы и брови… отсутствуют. И вечно одет как последний гопник с Лиговки: старые, протёртые тренировочные штаны, блёклая футболка и на неё сверху пиджак. Супер. Хотя, никогда не жаловался. А тут вдруг...
— Не понимаю, — заплетающимся языком промолвил Ле Гудрон. — Вот ты, Амантий, дрищ ещё тот. А такую красотку отхватил! А я — мужчина в самом расцвете сил, и опять один!
— Так всё просто: я молодой, добрый и красивый, а ты — старый, злобный и страшный.
— Логично, — мрачно усмехнулся Пьер.
На кухне играло радио. Из старого динамика вдруг раздался крякающий баритон Эроса Рамаззотти.
— Ну кто так поёт! — возмутился Пьер и переключил канал на «Русское радио». По радио заиграли «Чёрный Бумер».
— Какой вам «Чёрный Бумер»! — вскипел Ле Гудрон и, достав из серванта бутылку, затянул гнусавым басом:
— «Старый Таллин», «Старый Таллин» в стопки разливается! «Старый Таллин», «Старый Таллин» всем клиентам нравится!
— Ведь у меня есть «Старый Таллин», он всегда со мной! Ведь у меня есть «Старый Таллин», самый дорогой! — начал подпевать я.
— Что-то я жрать хочу, — пожаловался Ле Гудрон. — Это всё ваша дурацкая закуска! Тут и с голоду помрёшь!
Ну ладно, делать нечего, замутили яичницу с грибами. Я на всякий случай поинтересовался, откуда эти грибы.
— А, так у одной бабки на рынке купил. Сказала, самые лучшие!
Хорошо, значит не те заграничные, из Ленобласти. При воспоминании о которых становилось страшно.
Пока препирались за столом на тему морали и нравственности, яичница с грибами подгорела. А что делать, пришлось есть, не выбрасывать же.
— По-моему, грибы какие-то не те! — промолвил Саня, икнув после очередной стопки ликера.
— Это ты не тот. А грибы те. Эй, кто там шарится в моих документах без разрешения? — гаркнул Ле Гудрон.
— Так я, ваш-величество! А то мало ли! — оправдывался я.
...Кто-то наверху отбил по полу азбукой Морзе: «Да пошёл ты!»
— Итак, пиши давай. Соседям моим, чтоб им пусто было. Я, Пьер Ле Гудрон, император всея Междумордии, приказываю вам, собаки, перестать заливать меня сверху!
Примечания:
Междумордия — буквальный перевод всем известного слова «интерфейс» (inter face)
«Модель для представленья» — модель представления (англ. ViewModel) — третья, связующая часть в шаблоне проектирования MVVM, грубо говоря, обеспечивает взаимодействие интерфейса и используемых в приложении данных.
Билл Гейтс — один из создателей компании Microsoft, чья небезызвестная программная платформа .NET Framework была выпущена в 2002 году.
Фронтэнд (англ. front-end) — клиентская сторона пользовательского интерфейса к программно-аппаратной части сервиса.
Бекэнд (англ. back-end) — программно-аппаратная часть сервиса.
Фронт- и бекенд — вариант архитектуры программного обеспечения.
На часах было за полночь, а мы всё ещё праздновали день антипаттерна. За этот вечер каждым из нас было выпито почти по полтора литра крепких напитков: начали, как всегда, абсентом, продолжили ликером «Vana Tallinn», затем дружно залили питерской водкой. В глазах расплывались смутные образы моих собу… сотрудников, запах табака и перегара заполонил помещение и щипал нос.
Пьер сидел за столом и отдавал команды в никуда, наподобие: «Добавить!», «Удалить!», «Редактировать!», — а исполнительный я, который по-прежнему шарился в его документах на диске «D:\», по очереди выполнял их.
— Истинный император Междумордии! Всем мордам — морда! Ик! И-коммандир[1]! — восторженно воскликнул по-прежнему икающий Саня.
В итоге я переместил в «Корзину» всю коллекцию видео непонятного мне содержания, а потом ещё на всякий случай отформатировал диск. Мало ли что. Потом Пьер врубил караоке на DVD-плеере и затянул песню, которую сочинил к предстоящему обеду с заказчиком, владельцем мебельного магазина, правда, на мотив всем известного хита «Вернисаж»:
Мы всех порвём, мы всех порвём!
И конкурентов мы набьём!
Получат в профиль и в анфас!
И помидором — в правый глаз!
«Ну нет, с этими зашкаливающими агрессией и нетерпимостью к не самым злобным клиентам пора завязывать», — подумал я.
Но ничего не сказал, так как уже не мог.
После десятой стопки мы явно сдали позиции. Я упал на диван, не в состоянии уже что-либо делать и говорить. Пьер с грохотом рухнул на свою кровать в углу, при этом бормоча себе под нос что-то вроде: «Куда мой поезд ушёл?». Потом он захрапел на всю квартиру.
Сквозь наползающий на глаза сон я увидел, что Саня, этот шельмец-клопоискатель, поднявшись с пола, зигзагами доплёлся до окна, открыл форточку и пропитым тенором грянул песню из «Покровских ворот», при этом переделав текст:
Я раньше у Петьки служил денщиком!
Был молод и ел я селедку! Селедку ел!
Сказать, что у этого тестировщика не все дома — значит ничего не сказать. Правда, они с Пьером давно уже играли в онлайн-игру, созданную подпольной бандой хакеров — кладовщиков из алкомаркета. Может, двадцать пятый кадр сделал своё дело, может, графика была слишком шикарной, но, как мне показалось, эти двое немного свихнулись на девяносто третьем уровне.
Несмотря на приглашения с их стороны, я им компанию не составил, поскольку сам несколько лет назад посетил психушку. Я сам туда поехал, на всякий случай, для профилактики. Они лишь понимающе покивали головами и прописали витамины.
Когда мне надоело слушать бредовые песни, я поднялся с дивана и хорошенько вмазал тестеру кулаком в нос, так что великий QA-инженер сразу упал. Ну, а вслед упал я, потому что голова закружилась от всего выпитого за вечер.
— Слушай, приятель. Ещё одно слово — и я полицию вызову, — грозно пробормотал я.
С полицией тут никто не хотел связываться. Уж больно дотошная и занудная, ещё хуже, чем в России.
— Ладно тебе, Амантий, — ухмыльнулся Саня Ижорский. — Давай так. Ты не сдаёшь меня в полицию, а я не сдаю тебя начальству за похищение «кредов» гендиректора.
Вот же догадался, гад! Совсем всё изгадил! И ладно ещё, «креды»! Я и личную почту его взломал, и совесть не замучила! И кто теперь из нас вор и клептоман? Правда, как позже выяснилось, это была его старая учётка, под которой заходили все подряд.
— Почему прекратили трансляцию? — раздался с кровати возмущённый прокуренный бас. — Давай, ребят, на два голоса! «Ах, вернисаж, ах, вернисаж!»
— Каких ещё вернуть Саш? — вскипел в доску пьяный я. — Меншиковых, никак?
— Верно говоришь, дружище. У Первого такой один был, а у меня — целых двое! Жулик и негодяй! Короче, спать… — с этими словами великого сеньора вновь вырубило. И на этот раз, к счастью, до утра.
Примечания:
[1] ICommand — известный интерфейс в .NET, грубо говоря, определяющий правила для команд, выполняющихся при, например, нажатии на кнопку.
К сожалению, третья часть не будет опубликована, поскольку ее писал мой соавтор, с которым мы больше не сотрудничаем.