Czytaj książkę: «Код двух сердец»

Czcionka:

Код двух сердец

«…Я любил тебя больше, чем ангелов и самого,

и поэтому дальше теперь

от тебя, чем от них обоих…»

И. Бродский

Глава 1. Экран, на котором ничего не было

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

За единственным столиком у окна сидела Лея.

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

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

Она работала в компании «Гелиос-Софт» — маленькой, как кафе, в котором она сейчас сидела, и примерно такой же ненадёжной. «Гелиос-Софт» делал приложения для логистики: программы, которые считали, сколько коробок влезет в фуру, и как их уложить так, чтобы ни одна не помялась. Лея писала алгоритмы оптимизации. Это была честная работа — в том смысле, что она не врала ни коробкам, ни фурам. Но Лее было скучно. Коробки не спорили. Коробки не пытались тебя перехитрить.

Она допила кофе — он давно остыл — и открыла рабочий канал связи.

Там, в узком окошке мессенджера, мигало сообщение. Не от коллег. От незнакомца.

Незнакомец написал: «Твой алгоритм упаковки дырявый. Я нашёл шесть способов заставить его положить куб в круг».

Под сообщением — никнейм: niyar_dev.

Лея перечитала трижды. Потом открыла свой код — тот, который выложила в открытый репозиторий месяц назад, — и стала проверять. Через сорок минут она обнаружила, что незнакомец прав. Не во всём — куб нельзя положить в круг, можно положить в круг то, что притворяется кубом. Это было красиво. Это было так красиво, что Лея разозлилась.

Она написала в ответ: «Ты не нашёл шесть способов. Ты нашёл один и описал его шестью словами. Это разные вещи».

Нияр ответил через десять секунд: «Хорошо. Тогда я найду шесть».

И нашёл. К утру.

Глава 2. Чужой код

Нияр жил на Петроградской стороне, в квартире с потолками такими высокими, что верхняя их часть терялась в полумраке и казалась не потолком, а небом — серым, как и положено петербургскому небу, только с люстрой. Люстра не работала. Нияр не чинил её намеренно: ему нравилось, что в комнате есть предмет, который существует вопреки собственной функции. Он светился — но только когда солнце падало на его хрустальные капли под определённым углом, и тогда на стене вспыхивали маленькие радуги, похожие на сообщения на неизвестном языке.

Нияр работал из дома. Формально — фрилансер, фактически — человек, который пишет код для тех, кто боится сам. Его клиенты были мелкие компании, стартапы, однажды — благотворительный фонд, который потерял свою базу данных и хотел её восстановить. Нияр восстановил. Ему понравилось.

Когда он нашёл код Леи в открытом репозитории, он сначала не обратил внимания. Обычный алгоритм, обычная задача. Но потом он увидел комментарий в строке 847:

text

// Здесь я не уверена. Но пусть пока работает так.

Нияр никогда не видел, чтобы кто-то оставлял в коде признание в неуверенности. Программисты обычно пишут «// TODO» или «// FIXME» — короткие, деловые, как бирки на чемоданах. А тут — живой голос. Человек сомневался. Человек стоял на краю того, что знал, и смотрел дальше.

Нияр стал читать код Леи весь. Не строку за строкой — он читал его как роман: от функции к функции, от класса к классу, следя за тем, как меняется стиль, как в одних местах она пишет сжато и точно, как математик, а в других — размашисто, с лишними переменными и комментариями, которые ни к чему не относятся, как будто разговаривает сама с собой посреди ночи.

Он нашёл уязвимость не потому что искал. Он нашёл её, потому что понял, как Лея думает. Она строила стены и забывала про двери. Она защищала данные так, как защищают дом от дождя — крепко, со всех сторон — но оставляла открытым то, через что дождь не приходит: снизу.

Нияр написал ей. И ждал.

Когда она ответила — раздражённо, точно, с тем особым петербургским ядом, который растворяется в вежливости, — он понял, что нашёл не просто чужой код. Он нашёл человека, который пишет так, как он сам: будто код — это не инструкция, а письмо.

Они переписывались две недели. Потом — месяц. Потом перестали считать.

Лея рассказывала о коробках. Нияр — о чужих базах данных, которые он чинил, как чинят старые часы: осторожно, не дыша, с уважением к тому, кто их сделал. Они спорили о языках программирования так, как другие спорят о стихах: Python против C++, как свободный стих против сонета. Лея говорила, что Python — это разговор, а C++ — приказ. Нияр возражал, что приказ тоже может быть красивым, если приказавший понимает, зачем приказывает.

Потом Нияр предложил: «Давай ты попробуешь взломать мой код».

Лея согласилась. И началась игра, которая была не игрой.

Глава 3. Первый взлом

Код Нияра был как город. Лея бродила по нему три дня, заходила в функции, которые заканчивались тупиком, находила переменные, которым присваивались значения, а потом — ничего, просто существование. Она думала: он специально? Или он тоже не уверен?

Darmowy fragment się skończył.

Tekst, format audio dostępny
9,24 zł
Ograniczenie wiekowe:
12+
Data wydania na Litres:
16 października 2026
Data napisania:
2026
Objętość:
20 str. 1 ilustracja
Ilustrator:
Właściciel praw:
Автор
Format pobierania:

Podobne książki