18+
реклама
18+
Бургер менюБургер меню

Максим Байтович – Run.rar. Как запустить тело, если ты разработчик (страница 2)

18

Если бы любой уважающий себя DevOps-инженер увидел сервер, работающий в таких условиях, он немедленно объявил бы критический инцидент и созвал совещание по устранению аварии. Среднее время наработки на отказ в такой конфигурации исчислялось бы не месяцами и не неделями, а часами. Но наше тело — система с огромным, эволюционно выработанным запасом прочности. Оно терпит. Месяцами. Годами. Оно не падает сразу, оно просто постепенно снижает производительность. И плата за это терпение списывается с самого дорогого счёта — с вашего субъективного ощущения энергии и жизненной силы.

Энергия — это не абстрактная мана из фэнтезийных игр. Это не мистическая субстанция и не «позитивный настрой». Это совершенно конкретный набор биохимических и физиологических процессов. Кровообращение доставляет кислород и питательные вещества к каждой клетке. Митохондрии, крошечные энергетические станции внутри клеток, преобразуют эти вещества в молекулы АТФ — универсальное биологическое топливо. Гормональная система регулирует циклы активности и восстановления. Мышечный тонус поддерживает позвоночник и внутренние органы в правильном положении.

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

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

1.2. Тело как Legacy-код: полная диагностика вашего монолита

Теперь, когда мы разобрались со средой, давайте посмотрим на само тело. Это будет неприятный разговор, но без него невозможно двигаться дальше. Представьте, что вам по наследству от предыдущей команды достался монолитный проект. Огромный, запутанный, с двадцатилетней историей. Что вы увидите, открыв этот репозиторий?

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

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

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

Но правда, которую мы часто отказываемся признавать, заключается в том, что без изменений легаси-система обречена. Она не будет работать вечно. Она будет деградировать, накапливая критические ошибки, пока в один, совсем не прекрасный день не рухнет окончательно. Вопрос не в том, случится ли отказ. Вопрос в том, когда и с какими последствиями. И самое важное: будет ли у вас возможность восстановить данные.

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

Сценарий первый: к концу рабочего дня вы чувствуете тупую, ноющую боль в пояснице. Вы списываете это на усталость, на неудобное кресло, на возраст. Что на самом деле говорит вам тело? Это сигнал уровня Warning, который очень скоро перейдёт в разряд Error. Слабые ягодичные мышцы, которые должны стабилизировать таз и поддерживать позвоночник, бездействуют. Они отключены. Их работу вынуждена выполнять поясница — структура, совершенно для этого не предназначенная. Если ничего не менять, траектория ведёт к протрузиям, грыжам межпозвонковых дисков и хроническому болевому синдрому, который будет с вами каждую минуту, а не только по вечерам.

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

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

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

Сценарий пятый, самый коварный: вы постоянно чувствуете усталость, которая не проходит после сна и выходных. Это не физическая усталость мышц. Это системная деградация. Митохондрии в клетках сократили свою популяцию, гормональный фон нарушен, дофаминовые рецепторы, отвечающие за чувство удовольствия и мотивацию, истощены. Это прямая дорога к клиническому синдрому хронической усталости и глубочайшему выгоранию.

Узнали себя хотя бы в двух сценариях? Это не приговор. Это постановка задачи. Это список багов в баг-трекере вашего проекта «Тело», который мы будем системно и методично исправлять, начиная с самой критической проблемы.

Важно понимать ключевой принцип рефакторинга, который работает и в программировании, и в физиологии. Рефакторинг никогда не начинается с полного переписывания кодовой базы с нуля. Это путь к катастрофе. Рефакторинг начинается с выделения одного, самого проблемного модуля. С одной функции, которая работает неоптимально. С одной строчки кода, которую вы приводите в порядок, а затем покрываете её тестами, чтобы убедиться, что ничего не сломалось в остальной системе.

Бег в нашей методологии и будет той самой первой строчкой нового, чистого, хорошо документированного кода, с которой мы начнём восстановление всего вашего проекта.

1.3. Бег — это новый Kernel для операционной системы человека

Давайте отбросим романтические представления. Я хочу, чтобы вы забыли всё, что вам рассказывали о беге в рекламных роликах и мотивационных пабликах. Бег — это не «свобода», не «преодоление себя», не «единение с природой» и даже, что может вас удивить, это не в первую очередь способ похудеть. Похудение будет приятным побочным эффектом, но не целью. Всё перечисленное — это пользовательский интерфейс. Это красивые обои на рабочем столе и плавные анимации открытия окон. Мы же с вами, как инженеры, спустимся на самый низкий, фундаментальный уровень.