# Программист чинит древний артефакт как баг в коде (фрагмент)

Максим Городецкий

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

# Программист чинит древний артефакт как баг в коде. Максим Городецкий

## Программист чинит древний артефакт как баг в коде

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

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

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

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

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

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

Работал он вслух — привычка, вынесенная с прежней работы, где проговаривание кода самому себе часто помогало найти баг быстрее, чем молчаливое разглядывание экрана. Маги вокруг слушали его бормотание с нарастающим недоумением: «так, это условие проверяет чистоту намерения... а вот тут почему-то развилка на пустое место... ладно, идём дальше» — звучало не как заклинание, а как разговор мастера с самим собой за работой, и постепенно даже самые скептичные члены совета придвинулись ближе, забыв о собственном раздражении.

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

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

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

Это бесплатный фрагмент. Полная версия — на LibAuthor.ru