<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <language>ru</language>
    <title>Работа</title>
    <description/>
    <link>https://tproger.ru/tag/job</link>
    <atom:link href="https://tproger.ru/tag/job/feed" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Sun, 04 Oct 2026 08:07:06 GMT</lastBuildDate>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>12</sy:updateFrequency>
    <image>
      <title>Работа</title>
      <link>https://tproger.ru</link>
      <url>https://tproger.ru/apple-touch-icon.png</url>
    </image>
    <item>
      <title>Как получать удовольствие от работы: качаем скилл</title>
      <link>https://tproger.ru/articles/kak-poluchat-udovolstvie-ot-raboty-kachaem-skill</link>
      <comments>https://tproger.ru/articles/kak-poluchat-udovolstvie-ot-raboty-kachaem-skill?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дима Дмитриев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-poluchat-udovolstvie-ot-raboty-kachaem-skill</guid>
      <description><![CDATA[<p>Рабочее удовольствие зависит от сна, сильных сторон и фокуса внимания. Разбираем привычки, ритуалы и порог задач, который пора менять.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-poluchat-udovolstvie-ot-raboty-kachaem-skill">Как получать удовольствие от работы: качаем скилл</a>»</p>]]></description>
      <category><![CDATA[Для мотивации]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 24 Sep 2026 09:09:47 GMT</pubDate>
      <content:encoded><![CDATA[<p>Работу часто воспринимают как способ получать доход и сохранять стабильность, а удовольствие от процесса при этом считают приятным бонусом. Это может показаться рациональным, особенно в нестабильной экономике, но такой режим плохо работает на длинной дистанции. Если каждый рабочий день проходит в ожидании пятницы, постепенно снижаются вовлечённость, продуктивность и удовлетворённость жизнью.</p><h2>Сколько времени занимает работа</h2><p>Рабочий день разработчика заканчивается не всегда вместе с закрытием терминала, к нему добавляются дорога, рабочие переживания и время, когда вы уже дома, но мысленно продолжаете разбирать задачу.</p><p>В среднем человек бодрствует около 16 часов. На работу, дорогу и всё, что с ней связано, уходит 8–10 часов, а иногда и больше. Получается, профессиональная сфера занимает от ½  до ⅓ активного времени.</p><p>Если большую часть этого времени приходится ждать окончания недели, снижаются вовлечённость и удовлетворённость жизнью. Напряжение забирает тот же ресурс, который нужен для концентрации, обучения и восстановления.</p><p>Реакция на рабочий ритм у всех разная: одному человеку нужны сложные задачи и постоянное преодоление, иначе становится скучно. Другому помогает спокойная повторяемость процессов. Разница в реакции на работу сама по себе не означает проблему.</p><p>Проблемой становится постоянный стресс, который сопровождает большую часть недели. Он постепенно истощает ресурс и отражается на результатах работы. Поэтому способность получать удовлетворение от деятельности связана с продуктивностью и ментальным здоровьем на длинной дистанции.</p><p>Для начала полезно посмотрите на вашу обычную неделю целиком: сколько времени вы отдаёте задачам, сколько занимают дорога и рабочие переживания, а сколько остаётся на восстановление, чтобы понять, где именно накапливается нагрузка.</p><h2>Сначала ресурс, потом мотивация</h2><p>Удовольствие от работы редко появляется благодаря одной мотивационной технике. Оно опирается на базовое физическое состояние. Сон и водный баланс напрямую влияют на концентрацию и способность регулировать эмоции.</p><p>При хроническом недосыпе или обезвоживании мозгу сложнее удерживать внимание и справляться с напряжением. На этом фоне техники осознанности и разговоры о смысле работы дают ограниченный эффект. У организма просто не хватает ресурса, чтобы ими воспользоваться.</p><p>Менять всё сразу тоже не стоит. Абстрактное решение «начать лучше спать» работает хуже, чем конкретный шаг: например, лечь сегодня на полчаса раньше. Выберите одно или два изменения, которые могут дать максимальный эффект, и закрепляйте их постепенно.</p><p>На перестройку привычки может уйти от 21 до 40 дней. В этот период сопротивление нормально: новая модель поведения ещё не стала автоматической. Несколько неудачных дней не отменяют весь процесс.</p><h2>Сильные стороны помогают тратить меньше усилий</h2><p>Навыки, которые даются легко, часто кажутся незначительными. Быстро составить письмо, разложить сложную информацию по полочкам или заметить деталь, которую пропустили другие, можно принять за обычную работу. На деле это проявления сильных сторон.</p><p>Попробуйте выписать три навыка, которые у вас получаются почти автоматически. Затем сравните их с текущими задачами. Если пересечений мало, часть рабочего времени уходит на действия, которые требуют постоянного внутреннего напряжения.</p><p>Так можно объяснить ситуацию, когда человек формально справляется с обязанностями, но не чувствует удовлетворения. Результат есть, а ощущения, что работа даётся естественно и приносит пользу, не возникает.</p><p>Сильные стороны не обязаны полностью совпадать с должностными обязанностями. Однако чем чаще вы их используете, тем легче поддерживать рабочий темп. Иногда для этого достаточно изменить порядок задач, договориться о другом распределении обязанностей или выбрать направление внутри той же профессии.</p><h2>Фокус внимания меняет отношение к рутине</h2><p>Даже интересная работа состоит из повторяющихся действий. Вопрос в том, что именно вы в них замечаете.</p><p>Это хорошо показывает притча о трёх каменщиках. Первый говорит, что кладёт кирпичи. Второй объясняет, что зарабатывает на жизнь. Третий считает, что строит храм. Действия у них одинаковые, но смысл, который они в них видят, разный.</p><p>Психика быстрее фиксирует неприятные события, поэтому рабочие сложности могут вытеснять всё остальное. Один из способов скорректировать внимание заключается в короткой записи в конце дня. Отметьте три вещи, за которые готовы поблагодарить работу, коллег или себя.</p><p>Речь не идёт о попытке убедить себя, что любая задача прекрасна. Вы просто возвращаете в поле зрения то, что обычно теряется на фоне усталости: закрытый вопрос, помощь коллеги, собственный прогресс или удачное решение.</p><h2>Если задачи не вдохновляют</h2><p>Не каждая рабочая задача обязана нравиться. Когда неинтересные дела занимают до 40–50% времени, с ними можно работать через организацию процесса. Найдите смысл в результате, автоматизируйте повторяющиеся действия, делегируйте часть нагрузки или поставьте такие задачи в участок дня, когда у вас больше энергии.</p><p>Сложнее ситуация, в которой большая часть рабочего времени вызывает внутреннее сопротивление. Тогда проблема может быть связана уже не с отдельными обязанностями, а с ролью или направлением. Постоянное истощение не компенсируется одной прогулкой или техникой осознанности.</p><p>Полезно замечать, как вы реагируете на трудности. В одной метафоре муха на цветущем поле ищет неприятное место, а пчела даже на свалке находит цветок. Устойчивый специалист не игнорирует проблемы, но умеет управлять вниманием и искать то, на что может повлиять.</p><p>Это даёт более реалистичный контроль над состоянием. Работа не обязана быть лёгкой каждый день, но у человека должно оставаться ощущение, что он способен менять качество процесса и своё самочувствие.</p><h2>Ритуалы снижают внутреннее сопротивление</h2><p>Небольшие повторяющиеся действия помогают переключиться в рабочий режим и снизить напряжение перед началом дня. Они не требуют специального оборудования или большого количества времени.</p><ul><li>Свободное письмо в течение 5–7 минут помогает выгрузить накопившиеся мысли.</li><li>Фраза «Я выбираю заниматься своей работой», произнесённая вслух, возвращает ощущение собственного решения.</li><li>Короткая прогулка, чашка чая без телефона или несколько минут тишины дают паузу перед следующей задачей.</li></ul><p>Такие ритуалы работают благодаря регулярности. Один раз они могут просто немного облегчить состояние. Если повторять их каждый день, мозг постепенно начинает связывать эти действия с переходом к работе и восстановлению.</p><p>Психолог <a href="https://centicore.ru/">Centicore Group </a>Наталья Дремина рассматривает рабочее состояние через повседневные привычки, сильные стороны и фокус внимания.</p><h2>Удовольствие от работы можно тренировать</h2><p>Фразу о том, что нужно найти работу по душе и тогда не придётся работать ни одного дня, часто приписывают Конфуцию. В реальности её полезнее воспринимать как ориентир, а не как обещание постоянной лёгкости.</p><p>Удовольствие от работы складывается из нескольких навыков: замечать ценность результата, использовать свои сильные стороны, беречь физический ресурс и управлять вниманием. Ни один из них не включается навсегда после одного решения.</p><p>Начните с одной привычки и оставьте её на неделю. Это может быть более ранний отход ко сну, короткая запись в конце дня или анализ задач, которые даются легче всего. Небольшой регулярный шаг показывает, что рабочее состояние можно менять через конкретные действия.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как может выглядеть карьерный маршрут: 5 историй инженеров YADRO</title>
      <link>https://tproger.ru/articles/ot-odnogo-noutbuka-do-seti-dlya-sputnikov-pyat-istorij-istovyh-i</link>
      <comments>https://tproger.ru/articles/ot-odnogo-noutbuka-do-seti-dlya-sputnikov-pyat-istorij-istovyh-i?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дима Дмитриев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/ot-odnogo-noutbuka-do-seti-dlya-sputnikov-pyat-istorij-istovyh-i</guid>
      <description><![CDATA[<p>Истории инженеров YADRO: смена специализации, новые технологии, карьерный рост и неожиданные профессиональные маршруты от разработки и схемотехники до архитектуры и руководства командами.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/ot-odnogo-noutbuka-do-seti-dlya-sputnikov-pyat-istorij-istovyh-i">Как может выглядеть карьерный маршрут: 5 историй инженеров YADRO</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 22 Sep 2026 05:00:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Инженерная карьера редко идёт по прямой. Можно начать с робототехники, а через несколько лет проектировать микросхемы. Прийти в компанию на одну роль, а со временем возглавить целое направление. Или однажды прочитать статью инженера — и спустя время оказаться с ним в одной команде.</p><p>Истории наших героев получились очень разными: со сменой специализаций, новыми технологиями и задачами, которых раньше в их опыте не было. Но в каждой из них есть инженерное любопытство — желание разбираться в новом, искать следующую задачу и иногда идти туда, где заранее не знаешь, что получится.</p><h2>Неожиданный путь к цели: от C к C++ — и обратно</h2><p><b>Илья</b> пришёл в YADRO в ковидном 2020 году и в первый же день попал на встречу, где рассказывали о ближайших планах компании. Там он познакомился с коллегами и поймал себя на мысли, что пока не дотягивает до их уровня экспертизы. Но это только сильнее подстегнуло развиваться.</p><p>Илье всегда хотелось поработать с C, но в YADRO он пришёл на позицию, связанную с C++. Первое время было непросто: свободное время уходило на книги и лекции. Но постепенно новый язык стал настоящим профессиональным увлечением.</p><p>За несколько лет он стал хорошо известен в C++-сообществе: писал статьи, выступал с докладами, модерировал дискуссии на митапах, а со временем вошёл в программный комитет одной из главных конференций сообщества.</p><p>Но на C++ история не закончилась. Спустя несколько лет в компании появилась возможность поработать и с C, которой Илья и воспользовался. Он перешёл в команду, которая занимается разработкой операционной системы для коммутаторов KORNFELD. Так следующим шагом его карьеры стало новое направление — и одновременно возвращение к давнему интересу. При этом C++ из его жизни уже никуда не исчез: Илья остаётся частью профессионального комьюнити и активно участвует в формировании программы конференции C++ Russia.</p><p>Сегодня Илья — ведущий инженер по разработке ПО. Получился почти полный круг: он всё-таки пришёл к тому, с чего когда-то хотел начать, — но уже с совсем другим опытом за плечами.</p><h2>От статьи — к работе, о которой мечтал</h2><p><b>Тохир</b> занимался робототехникой, но всегда мечтал создавать компьютеры и серверы. Однажды на Хабре он увидел статью инженеров YADRO о том, чем они занимаются. Это была как раз та область, которая давно его интересовала. Статья вдохновила Тохира откликнуться на вакансию компании, и спустя некоторое время он и сам стал частью команды YADRO.</p><p>Его путь в компании начался со схемотехники. Тохир создавал основу, на которой другие команды проектируют печатные платы и разрабатывают ПО, а ещё искал причины неполадок при тестировании устройств. Иногда проблема была в самой схеме, иногда — на уровне пайки или сборки.</p><p>Всё это сильно отличалось от того, чем он занимался раньше, поэтому параллельно приходилось многому учиться: изучать литературу, разбираться в современных интерфейсах и устройстве систем. Иногда Тохир так засиживался за работой, что его приходилось буквально выгонять домой.</p><p>Со временем усилия дали результат: Тохир дошёл до уровня экспертизы, когда одного взгляда на плату было достаточно, чтобы понять, где искать проблему. Но при этом желание учиться и разбираться в новом никуда не исчезло — и через несколько лет Тохир уже стал системным архитектором. Так мечта создавать компьютеры стала реальностью.</p><h2>Использовала прошлый опыт, чтобы построить направление с нуля</h2><p>До YADRO <b>Елена</b> много лет работала в Nokia в направлении телеком. В 2022 году компания закрыла R&amp;D-центр в Санкт-Петербурге, и большая часть команды, в которой работала Елена, перешла в YADRO.</p><p>Здесь опыт Елены и её коллег пригодился уже в новых условиях. Телеком-направление в YADRO тогда только появлялось, поэтому многое предстояло выстраивать практически с нуля. Но команда уже проходила этот путь и понимала, где могут возникнуть сложности и что теперь можно сделать иначе.</p><p>Сегодня команда Елены продолжает работать над масштабными телекоммуникационными системами, осваивает новые направления и наращивает собственную экспертизу. Вместе с этим развивается и роль самой Елены: если раньше она больше писала код сама, то теперь как технический лидер в основном определяет направление работы команды и планирует её дальнейшее развитие.</p><p>Так накопленный опыт стал отправной точкой для новых задач и вызовов.</p><h2>После 18 лет в одной экосистеме — к новым продуктам и технологиям</h2><p>До YADRO <b>Василий</b> 18 лет проработал в IBM. Начинал инженером по серверным платформам x86, а со временем стал руководителем сервисного департамента в России и странах СНГ.</p><p>В 2022 году IBM ушла из России, а установленное у заказчиков оборудование продолжало работать и требовало поддержки. Василий вместе с командой из 20 инженеров перешёл в YADRO. Так удалось сохранить накопленную за годы экспертизу и продолжить поддерживать заказчиков уже в новых условиях.</p><p>В YADRO профессиональный маршрут команды продолжился уже с более широким набором продуктов и технологий. К накопленному опыту добавилась работа прежде всего с собственными решениями компании — например, системами хранения данных TATLIN.FLEX и коммутаторами KORNFELD, — а также с оборудованием других производителей. Для инженеров это возможность расти горизонтально, развиваться в разных технологических областях и осваивать новые продукты и технологии.</p><p>А для Василия всё это стало возможностью продолжать развивать сервисное направление вместе с командой, которая за четыре года выросла вдвое — сегодня в ней больше 40 инженеров. Опытные специалисты передают знания молодым коллегам в ежедневной работе — на совместных выездах и при разборе сложных случаев. Такой обмен опытом помогает решать задачи, которые требуют всё более широкой инженерной экспертизы.</p><h2>От самостоятельной работы — к руководству командой</h2><p><b>Александр</b> начинал карьеру стажёром в молодой компании. Возможности учиться у более опытных коллег тогда практически не было, поэтому многое приходилось осваивать самому.</p><p>Навык самостоятельно искать ответы и разбираться в новом пригодился Саше и на следующем карьерном этапе — уже в YADRO. В верификации поводов для этого хватает: постоянно появляются новые сложно-функциональные блоки, не похожие друг на друга, и каждый требует своего подхода. Так постепенно Саша накапливал экспертизу и уже сам начал помогать коллегам находить решения.</p><p>Поэтому, когда появилась возможность взять на себя ответственность за отдельную команду, он согласился: у него уже были и готовность, и желание попробовать себя в новой роли.</p><p>Сегодня Александр руководит одной из команд по верификации. Получилась почти зеркальная история: когда-то ему самому не хватало более опытных людей, у которых можно было учиться, а теперь он сам помогает расти другим.</p><h2>У каждого свой путь</h2><p>У этих историй нет общего сценария. Кто-то менял специализацию, кто-то начинал строить направление с нуля, а кто-то находил новые возможности для развития в уже знакомой области.</p><p>Инженерный маршрут сложно спланировать на годы вперёд. Поэтому, кажется, важнее другое — сохранять любопытство, не бояться новых задач и быть готовым двигаться дальше, даже если следующий шаг не был частью первоначального плана.</p><p>Сегодня в YADRO работают более 9 000 человек — и у каждого своя профессиональная история. А если вы сейчас задумываетесь о переменах, загляните на наш <a href="https://careers.yadro.com/?utm_source=tproger&amp;utm_medium=social&amp;utm_campaign=blog_yadro&amp;utm_content=articles" rel="nofollow">карьерный портал</a>. Возможно, именно там ваш карьерный маршрут изменит направление.</p><p><i>Реклама. Рекламодатель: ООО «КНС ГРУПП» ИНН 7701411241, erid: 2W5zFGzXHYV</i></p>]]></content:encoded>
    </item>
    <item>
      <title>SDL3 получила поддержку HarmonyOS и OpenHarmony</title>
      <link>https://tproger.ru/news/sdl3-poluchila-podderzhku-harmonyos-i-openharmony</link>
      <comments>https://tproger.ru/news/sdl3-poluchila-podderzhku-harmonyos-i-openharmony?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Тимур Гайнутдинов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/sdl3-poluchila-podderzhku-harmonyos-i-openharmony</guid>
      <description><![CDATA[<p>Кроссплатформенная библиотека SDL3 для игр, эмуляторов и мультимедийных приложений получила официальный порт для HarmonyOS и OpenHarmony.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/sdl3-poluchila-podderzhku-harmonyos-i-openharmony">SDL3 получила поддержку HarmonyOS и OpenHarmony</a>»</p>]]></description>
      <category><![CDATA[C++]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 16 Sep 2026 10:40:48 GMT</pubDate>
      <content:encoded><![CDATA[<p>15 сентября разработчики объединили в основную ветку SDL порт для HarmonyOS и OpenHarmony. SDL упрощает создание кроссплатформенных игр и мультимедийных приложений, поэтому обновление в первую очередь касается разработчиков на C и C++, которым нужен ещё один целевой набор платформ.</p><p>Автор порта протестировал его на реальном устройстве Huawei. По его словам, возможностей уже достаточно для выпуска полноценных игр и приложений, а коммерческие проекты на базе порта готовятся к релизу. В репозитории также появилась подробная инструкция по настройке среды, сборке проекта и отладке.</p><p>Порт пока закрывает не все сценарии. Самый заметный пробел связан с поддержкой джойстиков; также остаётся добавить поддержку пера и диалоговых окон.</p><p>Для инди-разработчиков и небольших команд это означает, что HarmonyOS и OpenHarmony становятся официальной целью сборки SDL3, а не отдельной веткой, которую приходится поддерживать самостоятельно. Работа над портом была профинансирована Outfit7.</p><h2>Источники</h2><ul><li><a href="https://github.com/libsdl-org/SDL/pull/16281">harmonyos: Port SDL3 to HarmonyOS/OpenHarmony. by icculus · Pull Request #16281 · libsdl-org/SDL · GitHub</a></li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Почему белковая нейронка уже не тянет и кто такой руководитель нового типа</title>
      <link>https://tproger.ru/articles/pochemu-belkovaya-nejronka-uzhe-ne-tyanet-i-kto-takoj-rukovoditel-n</link>
      <comments>https://tproger.ru/articles/pochemu-belkovaya-nejronka-uzhe-ne-tyanet-i-kto-takoj-rukovoditel-n?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Неопознанный программист]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/pochemu-belkovaya-nejronka-uzhe-ne-tyanet-i-kto-takoj-rukovoditel-n</guid>
      <description><![CDATA[<p>ИИ купили все, выиграли единицы. Разбираем, почему инструмент сам по себе не работает, какие три операции стали дефицитом и как выглядит руководитель нового типа. Опыт Льва Шестопалова, Битрикс24.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/pochemu-belkovaya-nejronka-uzhe-ne-tyanet-i-kto-takoj-rukovoditel-n">Почему белковая нейронка уже не тянет и кто такой руководитель нового типа</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 10 Sep 2026 17:27:38 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Исполнение перестало быть дефицитом</h2><p>За последний год путь от идеи до рабочей версии сжался с кварталов до дней, а заметную долю нового кода, по отраслевым оценкам, уже пишет ИИ. Собрать что-то работающее стало быстро и дёшево, и ценность ушла оттуда, где лежала последние двадцать лет. Раньше дефицитом было исполнение, и выигрывал тот, кто мог сделать. Сейчас порог входа в «сделать» резко упал, а дефицитом стало другое: понять, что именно делать, и решить это раньше остальных.</p><p>Для руководителя это разворот, к которому оказался мало кто готов. Его работа много лет была устроена вокруг распределения исполнения: кто, что, к какому сроку. Теперь ограничением стал он сам, точнее скорость, с которой он входит в контекст, принимает решение и передаёт его дальше вместе со смыслом.</p><h2>Почему покупка инструмента ничего не даёт</h2><p>Логичный ход в этой ситуации: купить ИИ и успокоиться. Так и сделали почти все, результат известен. По опросу McKinsey, регулярно применяют ИИ хотя бы в одной функции почти девять компаний из десяти, но прирост операционной прибыли от пяти процентов и выше связывают с ним около шести процентов. Предварительный отчёт MIT по корпоративным пилотам даёт картину ещё резче, хотя выборка там небольшая и рецензирования он не проходил.</p><p>Инструмент ускоряет операцию, которая уже есть в процессе. Если память о проектах живёт в головах и в переписке, а согласования идут кругами, ускорение отдельной операции почти не считывается: ограничение в другом месте. Способ работы в команде задаёт руководитель, значит, меняться должен в первую очередь он, а не только его инструментарий.</p><h2>Шесть мест, где прежнее управление даёт сбой</h2><p>Если разложить обычный день руководителя по слоям, сбои видно поимённо.</p><p><b>Встречи. </b>Половину планёрки съедает пересказ статусов: работу памяти делают живые люди в самое дорогое время команды.</p><p><b>Решения. </b>Вопрос, требующий анализа, встаёт в очередь и возвращается через недели, когда вводные уже поменялись.</p><p><b>Память. </b>Через полгода никто не помнит, почему выбрали именно это, и спор «мы договаривались иначе» решается не фактом, а тем, у кого увереннее интонация.</p><p><b>Делегирование. </b>Задача уходит строчкой в трекере, картина остаётся у постановщика, дальше недели переписки «я не то имел в виду».</p><p><b>Команды.</b> Что происходит внутри, руководитель узнаёт раз в месяц на отчётке, а люди на грани ухода отчётки не ждут.</p><p><b>Развитие. </b>Честную обратную связь про себя руководитель получает раз в полгода, поэтому слепые зоны живут годами.</p><p>Ни один из этих сбоев не новый. Новое то, что в прежнем темпе они были терпимы, а в нынешнем перестали, и первым это чувствует самый загруженный.</p><p>Глория Марк из Калифорнийского университета в Ирвайне меряла, что происходит с человеком, которого постоянно дёргают: прерванную работу люди дописывают не медленнее, но платят за это стрессом, спешкой и заметно большим усилием на тот же объём. Возврат к прерванной задаче она оценивала примерно в 23 минуты, и это не выброшенное время, а время, в течение которого голова тащит несколько контекстов сразу. У руководителя таких переключений десятки в день. Дело не в собранности: человеческий мозг просто не рассчитан на тот объём, который на него грузят.</p><h2>Три операции, которые стали дефицитом</h2><p>Здесь стоит сказать прямо, кого это касается в первую очередь. Войти в контекст, принять решение и передать его дальше вместе со смыслом это не работа тех, кто пишет код. Это работа руководителя команды, проектного менеджера и продакта, то есть ровно тех ролей, которым последние годы приходилось объяснять бизнесу, зачем они нужны, если продукт делают инженеры.</p><p>Когда исполнение стоило недели, эти три операции выглядели накладными расходами вокруг производства. Их старались сократить, а потери от неточной постановки размазывались по кварталу и никого не пугали. Сейчас реализация стоит часы, и неточная постановка оплачивается сразу: команда быстро и качественно делает не то. Ошибка в понимании задачи стала дороже ошибки в исполнении.</p><p>То же с решениями. Вопрос, требующий анализа, раньше вставал в очередь и возвращался через недели, когда вводные поменялись, и это было терпимо, потому что реализация всё равно шла месяц. Теперь за эти недели половина работы уже сделана в одну из сторон, и решение принимается задним числом.</p><p>И третье, самое неудобное. Контекст, который руководитель помнит сам и раздаёт кусками по мере вопросов, перестал быть рабочим способом: команда успевает сделать раньше, чем задаст второй вопрос. То, что годами считалось накладными расходами, стало в производстве самым дефицитным ресурсом, и спрос на эти роли вырос вместе с требованиями к ним.</p><h2>Кто такой руководитель нового типа</h2><p><b>Формула короткая:</b> руководитель плюс ИИ-агент, с которым он работает в связке. Принципиально не название продукта, а роль: не инструмент, которому спихивают задачи, а второй контур, с которым думаешь.</p><p>Базовый уровень доступен сегодня каждому: разбор задач и исследований в диалоге с агентом, инженерный бэкграунд не нужен. Продвинутый уровень я называю вторым мозгом, и он устроен из трёх частей. Память направления в обычных текстовых файлах: решения, протоколы встреч, слой по каждому проекту и по каждому человеку. Агент, который эту память читает и пишет, а не просто отвечает на вопросы. И ритуалы, которые всё это прокручивают: утренний план, разбор встреч, недельная сводка, ежедневное зеркало.</p><p>Смысл конструкции в том, что она закрывает ровно те три операции. В контекст руководитель входит не по памяти и не по переписке, а по собранной картине темы. Решение готовится к встрече заранее, вместе с вариантами и возражениями. Задача уходит вниз не строчкой, а вместе с историей вопроса. Ни одна из трёх операций не исчезает, они перестают упираться в то, сколько человек успел вспомнить сегодня утром.</p><p>Правило «агент готовит, решает человек» произносят все, и оно почти ничего не гарантирует. В экспериментах Гарвардской школы бизнеса у людей с более качественным помощником усилие падало сильнее: они шли за рекомендацией не глядя и работали хуже тех, кому достался слабый инструмент, причём сами были уверены, что решают. Работает не декларация, а привычка просить не ответ, а развилку с аргументами против. Ошибается агент регулярно, поэтому спорное я перепроверяю в первоисточнике, а не в пересказе.</p><p>Про границы, потому что это спрашивают первым. Агент видит рабочий контур: отчёты и протоколы, к которым у меня и так есть доступ по роли. Личной переписки и скрытых от людей выводов там нет, и эту границу стоит проводить сознательно.</p><h2>Что это дало в цифрах</h2><p>Сразу оговорюсь: это опыт одного направления, а не исследование. Считал я сам, контрольной группы у меня нет.</p><p>Заметнее всего поменялись планёрки. Раньше около получаса из часа уходило на пересказ статусов, сейчас на это не уходит ничего: статусы собраны заранее и разосланы обеим сторонам до встречи, разговор начинается сразу с развилок. Час такой встречи закрывает порядка семи вопросов, большая часть мелкие, но раньше они расходились по переписке на неделю. Цикл «вопрос появился, решение принято» сжался с месяца до дня.</p><p>Появился и слой, которого раньше не было вообще: отчёты и протоколы, которые годами просто лежали, теперь складываются в общую картину. Дважды из неё стало видно то, чего мне не сказали вслух: человеку не с кем обсудить своё будущее в компании. Разговор случился в ту же неделю, а не через полгода на ревью.</p><p>Есть и внешний замер. Доля положительных ответов по опроснику Gallup Q12 в направлении выросла до 86,7%, плюс 6,6 процентных пункта, и сильнее всего вырос пункт «получал признание за последние семь дней», плюс 16,6. Отнести это целиком на свою систему я не могу, в тот же период менялось многое. Но выросло сильнее всего ровно то, чем она занимается.</p><p>Отдельно про себя. Я написал агенту «научи меня фасилитации», и с тех пор он разбирает, как я веду встречи, от встречи к встрече. Съехать не получается: он помнит, что я обещал себе в прошлый раз. Раньше обратную связь такого рода я получал раз в полгода и в основном про результаты, а не про то, как я работаю.</p><h2>Делегировать надо контекст, а не строчку</h2><p>Обычное делегирование устроено так. Руководитель формулирует задачу в две строки и отдаёт человеку, а вся картина остаётся у него в голове: зачем это делаем, что уже пробовали, чего боимся, кого ещё касается. Дальше человек восстанавливает её вопросами или, что хуже, не восстанавливает и делает не то. Мы годами считали это нормой, хотя это чистые потери. Теперь задача уходит вместе с контекстом: агент собирает историю темы, роль человека, связанные решения и ограничения, и всё это идёт частью постановки.</p><p>Из той же логики растёт вещь, которая вызывает больше всего сопротивления: часть задач руководителю быстрее собрать самому. Экономия тут не на наборе кода, а на кругах согласования: старый путь идеи проходит через постановку, согласование приоритета, очередь спринтов, передачу через несколько рук и возврат на доработку. Новый короче: сформулировал, собрал черновик сам, отдал команде. Новый раздел документации я собрал за полчаса, а до продакшена его довела команда и сделала это лучше, чем сделал бы я.</p><p>Здесь важна граница, и я её держу. Сам беру только то, чего иначе просто не появилось бы: черновики и прототипы, на которые никто не планировал время. Приоритеты команды я этим не двигаю и в чужой спринт не лезу.</p><h2>С чего начинать</h2><p>Первый шаг не требует ни бюджета, ни разрешения сверху: перевести отчёты и решения в текстовые файлы, которые одинаково читают и люди, и агенты. Звучит скучнее всего и меняет больше всего, потому что у направления впервые появляется память, которую можно спросить. Дальше отдать агенту разбор встреч и завести рабочий слой по ключевым людям и проектам.</p><p>Каркас собирается за день, дальше растёт сам. Порог тут не технический, а дисциплинарный: нужна привычка фиксировать, а не держать в голове. Мы годами автоматизировали продукт и процессы команд, а собственную работу руководителя не трогали, и начинать стоит именно с неё.</p><h2>Что происходит с рутиной и с самим руководителем</h2><p>Всё сказанное выше звучит как реклама, поэтому дальше вторая половина.</p><p>Рутина правда уходит в фон, освободившиеся часы уходят в проекты и в людей. Но работы меньше не становится: решения принимаются быстрее, значит, решений становится больше. Руководитель превращается в конвейер принятия решений, и это выматывает голову иначе, чем раньше. Обещать разгрузку было бы враньём.</p><p>Сместилось и ограничение. Раз исполнение перестало быть дефицитом, дефицитом стали люди, способные вести проект целиком, как свой бизнес: от цели до результата, с решениями внутри. Отсюда и сдвиг в том, чего ждут от роли. Раньше от человека ждали, что он сделает поставленную задачу, а решения внутри были приятным дополнением. Теперь наоборот. Это не значит, что кто-то стал не нужен: планка сдвинулась у всех сразу, включая меня. И моя работа как директора дотянуть до этого уровня своих людей.</p><p>В должностной инструкции руководителя нового типа не меняется ни один пункт. Меняется то, сколько их туда влезает: проектов, решений, людей, за которыми успеваешь следить не по остаточному принципу. Должность та же, потолок другой.</p><p>Потолок поднимается не покупкой. Инструмент можно купить в любой момент, а память можно только накопить, и эта фора набирается каждый день, пока вы решаете, начинать или нет.</p>]]></content:encoded>
    </item>
    <item>
      <title>Какие рабочие визы в США доступны для IT-специалистов: актуальный обзор  на 2026 год</title>
      <link>https://tproger.ru/articles/kakie-rabochie-vizy-v-swa-dostupny-dlya-it-specialistov-aktualny</link>
      <comments>https://tproger.ru/articles/kakie-rabochie-vizy-v-swa-dostupny-dlya-it-specialistov-aktualny?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Elena Demygina]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kakie-rabochie-vizy-v-swa-dostupny-dlya-it-specialistov-aktualny</guid>
      <description><![CDATA[<p>Какие визы реально доступны для IT-специалистов в 2026 году, чем они отличаются и с какими сложностями стоит считаться — разбор с комментариями иммиграционного адвоката.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kakie-rabochie-vizy-v-swa-dostupny-dlya-it-specialistov-aktualny">Какие рабочие визы в США доступны для IT-специалистов: актуальный обзор  на 2026 год</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 03 Sep 2026 14:25:23 GMT</pubDate>
      <content:encoded><![CDATA[<h3>Существует множество мифов относительно получения рабочих виз в США. В интернете по-прежнему хватает недостоверной и просто устаревшей информации. Поэтому давайте разберёмся, какие рабочие визы сегодня актуальны и доступны для IT, возможно ли получить визу талантов — O-1 — и что для этого нужно. На эти вопросы отвечает Анна Аронова, визовый адвокат из Нью-Йорка.</h3><p>Несмотря на турбулентную реальность, надо сказать, что мир всё равно открыт для тех, кто стремится найти работу мечты. Российские IT-специалисты до сих пор востребованы, но есть одно «но» — это документы.</p><p>Если говорить прямо, то виз, которые реально подходят IT-специалистам, не так уж и много: O-1 (та самая «виза талантов»), H-1B, L-1 и иногда J-1 для стажировок.</p><p>Начнём с визы<b> L-1.</b> Она подходит тем, кто уже работает в компании за пределами США и переводится в американский офис. Виза L-1 даёт возможность иностранным компаниям переводить сотрудников со специализированными знаниями или управленческими должностями в свои дочерние структуры в США. Очень часто ей пользуются владельцы бизнеса за рубежом, которые хотят открыть филиал или запустить новый бизнес в Америке. При этом важно, чтобы зарубежная компания была реально действующей: оцениваются её обороты, прибыльность, наличие офиса, сотрудники, объём продаж, клиенты и контракты.</p><p><b>H-1B —</b> одна из самых известных рабочих виз. Она позволяет американскому работодателю привезти иностранного специалиста, на позиции, требующие высшего образования. Все заявки участвуют в ежегодной лотерее, которая проходит в марте, и только отобранные кейсы идут дальше на рассмотрение. Виза выдаётся на три года с возможностью продления ещё на три. Её плюс в том, что не нужно доказывать выдающиеся достижения — достаточно профильного образования или релевантного опыта. Но важно понимать: подать на H-1B самостоятельно нельзя, петицию подаёт только работодатель. Участвовать в лотерее можно несколько раз. После выигрыша работодатель платит государственную пошлину за своего сотрудника в размере $100 000 за подачу петиции в USCIS.</p><p>И наконец, <b>O-1 — виза талантов, </b>то есть виза для людей с выдающимися способностями. Эта виза предоставляет максимальную профессиональную свободу: можно работать с несколькими компаниями и выстраивать более гибкую карьеру. Для IT речь идет о категории O-1 в области науки (Computer Science), и требования здесь выше, чем, например, для креативных профессий.</p><p>Для O-1 важно показать реальные достижения. Это может быть опыт работы в известных компаниях — Google, Amazon, Uber, Яндекс — и, да, такие бренды в резюме дают дополнительные очки, но это не единственный путь. У IT-специалистов часто бывают патенты на разработки, и здесь важно, чтобы имя было указано в самом патенте. Также учитывается участие в создании продуктов, которые затем патентуются, публикации в профессиональных или научных изданиях, участие в жюри конкурсов и в целом вклад в развитие индустрие индустрии инновационных продуктов.</p><p>Отдельный плюс визы талантов O-1 в том, что она не ограничена квотами и не привязана к лотерее — подаваться можно в любое время. Она выдаётся до трёх лет и может продлеваться неограниченно. При этом не требуется обязательное высшее образование. Есть возможность работать с несколькими работодателями одновременно или, например, развивать собственный стартап. Каждый кейс рассматривается индивидуально — на основе достижений. За последние годы отношение к этой визе сильно изменилось: если раньше работодатели относились к ней осторожно, то сегодня это уже нормальная практика — нанимать специалистов по O-1.</p><p>Если говорить о том, какие специалисты сейчас наиболее востребованы, то в первую очередь это AI/ML-направление — разработчики и исследователи, которые создают технологии в области искусственного интеллекта и машинного обучения. У них часто есть научные публикации, патенты и реальные внедрения.</p><p>Но это не значит, что нужно «подгонять себя» под тренд. Если у вас нет опыта в AI/ML, это не закрывает возможность получить визу талантов O-1. Если вы сильный специалист в своей нише и можете это доказать, шансы остаются высокими.</p><p>Помимо этого, достаточно много кейсов у специалистов в software development и systems engineering. Хорошо подходят product managers и особенно кандидаты на высоких позициях, таких как Chief Technology Officer. Сложнее — специалистам в области quality assurance, но и это не исключает возможность получения визы.</p><p>Если говорить о том, что стоит делать уже сейчас, то это работа на перспективу: участие в хакатонах, получение наград, судейство конкурсов, научные публикации, экспертные интервью в СМИ, работа над патентами — всё это формирует сильный профиль.</p><p>Стандартный путь от начала до получения визы занимает в среднем от четырёх до шести месяцев. Из возможных сложностей — административная проверка. IT-специалисты с российским гражданством с ней сталкиваются. Сейчас чаще, чем раньше. Это дополнительная проверка в посольстве, связанная с вопросами национальной безопасности, например проверкой на предмет работы с чувствительными технологиями или государственными структурами. Она может увеличить сроки рассмотрения.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как должен выглядеть DR-план, который сработает в аварию</title>
      <link>https://tproger.ru/articles/kak-dolzhen-vyglyadet-dr-plan-kotoryj-srabotaet-v-avariyu</link>
      <comments>https://tproger.ru/articles/kak-dolzhen-vyglyadet-dr-plan-kotoryj-srabotaet-v-avariyu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дима Дмитриев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-dolzhen-vyglyadet-dr-plan-kotoryj-srabotaet-v-avariyu</guid>
      <description><![CDATA[<p>Разбираем структуру DR-плана: разделы документа, расчёт RTO и RPO, сценарии переключения, регламент учений. Читайте, как проверить план до аварии.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-dolzhen-vyglyadet-dr-plan-kotoryj-srabotaet-v-avariyu">Как должен выглядеть DR-план, который сработает в аварию</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Инфраструктура]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 14 Aug 2026 09:30:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>DR-план есть у многих компаний. Лежит где-нибудь в корпоративной вики или в папке на сетевом диске, чтобы аудитору показать в случае проверки. В плане расписаны определенные действия на случай аварии. Но когда авария действительно случается, выясняется, что по этому документу ничего сделать нельзя. Доступы не работают, контакты устарели, а последовательность шагов ведёт в тупик. С такой ситуацией сталкивалось множество ИТ-команд. И каждый раз это заканчивается одинаково: паника, хаос, простой, потеря данных и денег.</p><p>Поговорим о структуре документа, о том, какие сценарии аварий нужно отработать, как выбирать резервную площадку и тестировать план. Информация актуальна для ИТ-директоров, которые отвечают за непрерывность бизнеса, и инженеров, которые будут этот план исполнять.</p><h2>Что такое DR-план и какие задачи он закрывает</h2><p>План аварийного восстановления (disaster recovery plan, DRP) — это документ, который фиксирует, что и в каком порядке нужно делать, чтобы вернуть ИТ-системы к жизни после серьёзного сбоя. В нём прописаны ситуации, от которых защищаемся, приоритеты восстановления сервисов, ответственные люди, доступы, целевые сроки и критерий, по которому аварию считают закрытой.</p><p>Здесь мы будем говорить про DR-план, описывающий только ИТ-контур: серверы, базы данных, сеть, приложения и инфраструктуру. Если упал интернет-магазин, DR-план отвечает на вопрос «как поднять сайт и базу заказчиков». А вот что делать с условным колл-центром, который остался без рабочих мест , — это уже более широкий вопрос, который мы в этой статье не затрагиваем.</p><h3>Чем DR-план отличается от резервного копирования</h3><p><a href="https://linx.ru/cloud/rezervnoe-kopirovanie-v-oblako/">Резервное копирование в облако</a> и DR часто путают. Бэкап отвечает за наличие копии данных. DR-план отвечает за восстановление работающего сервиса в заданный срок с заданным процентом потери данных.</p><p><b>Разницу легко понять на примере.</b></p><p>У компании есть резервные копии всех баз. Они лежат на отдельном хранилище, регулярно обновляются. Всё хорошо. Но в один день дата-центр становится недоступным из-за аварии на подстанции, а ИБП и ДГУ не справились с нагрузкой. Серверы выключены, доступ к ним потерян. Копии есть, но развернуть их негде — резервной площадки нет. А даже если она есть, никто не отрабатывал их восстановление, а потому доподлинно не знает, в какой последовательности поднимать сервисы, кто за что отвечает, какие пароли использовать и т.п.. Копии есть, а работающего сервиса нет. DR-план как раз и закрывает эту проблему: он описывает, как из копий собрать работающую систему в нужный срок.</p><h3>Как DR-план связан с BCP</h3><p>BCP (business continuity plan) — это план непрерывности бизнеса. Он описывает, как компания будет работать в кризисной ситуации в целом: куда переедет офис, как сотрудники будут связываться друг с другом, как выполнять ключевые бизнес-функции без привычных инструментов. DR-план — это часть BCP, его ИТ-составляющая.</p><p>Порядок разработки обычно такой: сначала проводится бизнес-анализ (BIA — business impact analysis) и составляется перечень критичных бизнес-процессов. Для каждого процесса определяют, какие ИТ-системы его обеспечивают. И уже под эти системы пишут DR-план. Не наоборот. Нельзя взять и описать восстановление всех систем подряд — нужно понимать, какой сервис для чего нужен и сколько компания готова за него заплатить.</p><h2>Сколько стоит простой и как это меняет требования к плану</h2><p>Стоимость простоя — главный экономический драйвер для DR-плана. Чем дороже час без работы, тем жёстче целевые показатели восстановления и тем дороже схема резервирования, которую компания готова финансировать.</p><p>В июне 2026 года на Cnews были <a href="https://www.cnews.ru/news/line/2026-06-19_rost_stoimosti_prostoya_usilivaet">опубликованы</a> результаты CX-исследования, проведённого на основе глубинных интервью со 180 заказчиками. У 39% компаний за последний год стоимость часа простоя значительно выросла. Ещё 35% сказали, что она осталась на прежнем уровне. 14% отметили снижение благодаря внедрению резервных систем и процедур.</p><p>Рост стоимости простоя связан с несколькими факторами:</p><ul><li>бизнес сильнее зависит от бесперебойной работы цифровых сервисов;</li><li>оборудование стареет, восстановление после сбоев усложняется;</li><li>инфраструктура становится неоднородной — сложнее понять, как всё связано;</li><li>вендорская поддержка сокращается, особенно по зарубежному оборудованию и ПО.</li></ul><p>58% респондентов назвали главным вызовом на ближайшие два года высокие затраты на замену устаревших систем. Речь не только о закупке нового оборудования, но и о перестройке архитектуры, проверке совместимости, миграции, обновлении регламентов и обучении команд.</p><p>В ответ на это бизнес выбирает гибридную стратегию: часть систем замещают, часть продолжают поддерживать, часть переносят в облако. Такой подход используют около 50% компаний.</p><p>Приоритет смещается в сторону мер, которые снижают риск отказов и сокращают время восстановления. Наиболее эффективными респонденты назвали создание запасной инсталляционной базы на всех уровнях инфраструктуры (46%) и разработку детальных планов и регламентов аварийного восстановления (32%).</p><p>Ещё один способ снижать потери от недоступности ИТ-систем — страхование в облаке: решение, которое помогает управлять рисками и рационально распределять финансовые потоки. Провайдер Linx Cloud предлагает <a href="https://linx.ru/cloud/strahovanie-v-oblake/">собственную инфраструктуру</a> на базе двух сертифицированных ЦОД уровня TIER III в Москве и Санкт‑Петербурге, что позволяет строить катастрофоустойчивые архитектуры с гарантированным уровнем доступности.</p><h2>Как рассчитать RTO и RPO для своих систем</h2><p>RTO (Recovery Time Objective) — это время, за которое система должна быть восстановлена после аварии. Считается от момента, когда принято решение о переключении на резерв, до момента, когда сервис снова доступен пользователям.</p><p>RPO (Recovery Point Objective) — это допустимый объём потери данных. Показывает, на сколько часов (или минут) можно откатить систему назад. Если RPO = 1 час, значит, при аварии допустима потеря данных, созданные не более чем за последний час. Всё, что было раньше, должно сохраниться.</p><p>Показатели назначаются на каждый сервис отдельно. Нельзя поставить один RTO на всю инфраструктуру — у платежной системы и внутреннего чата для сотрудников требования к восстановлению будут разными.</p><p>Методика расчёта идёт от бизнеса, а не от ИТ. Сначала считают, сколько компания теряет за час простоя конкретного сервиса. Потом определяют, какой простой бизнес готов терпеть, — это и будет RTO. Аналогично с RPO: оценивается, сколько данных можно потерять без катастрофических последствий.</p><p><b>Пример.</b></p><p>Интернет-магазин с выручкой 5 млн руб. в сутки. В пиковые часы (10:00–22:00) это около 300–400 тысяч в час. Допустим, бизнес готов терпеть простой не больше двух часов — иначе убытки (денежные и репутационные) становятся критическими. Значит, RTO = 2 часа. Потеря данных за час — это потеря заказов, которые могли бы быть оформлены. Если за час через сайт проходит 30 заказов на сумму 50 тыс. руб., бизнес может с этим смириться. RPO = 1 час. Если такая потеря неприемлема, нужно снижать RPO до 15–30 минут и использовать более частую репликацию.</p><h3>Матрица критичности сервисов</h3><p>Все сервисы делятся на классы в зависимости от того, как долго они могут простаивать и сколько данных можно потерять. Каждому классу соответствует своя схема резервирования. Верхнеуровнево матрица может выглядеть так:</p><figure><img src="https://media.tproger.ru/user-uploads/99633/2026-08-17/76bfe9ef-cdae-4f75-b8d5-d01480ee7c59.webp" alt="" /></figure><h3>Типичные ошибки при назначении показателей</h3><ol><li>RTO назначает ИТ-отдел без согласования с бизнесом. Инженеры берут цифры «с потолка», исходя из того, что им кажется разумным или на что хватает существующих ресурсов. Бизнес потом удивляется, почему платёжная система простаивала четыре часа, хотя каждый час простоя стоит миллион. RTO должен утверждаться на уровне топ-менеджмента — это бизнес-решение, а не техническое. Часто после оценки стоимости обеспечения RTO со стороны ИТ, бизнесу приходится корректировать свои аппетиты и пересматривать метрику. Но в конечном итоге она точно должна согласовываться бизнесом.</li><li>Один общий показатель на все системы. Платёжный шлюз и система для внутренних отчётов не могут восстанавливаться за одно и то же время. Это просто-напросто сжигание бюджета расфокусировка ИТ команды. Разные уровни критичности систем — разные RTO и RPO.</li><li>В RTO не заложено время на принятие решения и проверку данных. В плане написано «восстановить за 2 часа», но забыли, что сначала нужно созвониться, принять решение о переключении,. Реальное время может оказаться в два раза больше, если процесс инициации восстановления не описан и не отработан..</li><li>Показатели ни разу не подтверждались измерением на реальном восстановлении. RTO и RPO, которые никто не проверял, — это просто цифры в документе. Без тестов они не имеют никакой ценности.</li></ol><h2>Из каких разделов состоит рабочий DR-план</h2><p>Документ должен быть структурирован так, чтобы по нему мог работать любой дежурный инженер, даже если он не участвовал в разработке. Никаких общих фраз и отсылок к «сложившейся практике». Конкретные команды, конкретные действия, конкретные люди:</p><ol><li>Область действия и перечень охваченных систем. Чётко указать, какие сервисы, площадки и компоненты инфраструктуры входят в план, а какие — нет. Если какой-то сервис не охвачен, это должно быть написано явно.</li><li>Карта сервисов и зависимостей. Схема, которая показывает, как сервисы связаны друг с другом и с внешними системами. Если упадёт база данных, какие приложения перестанут работать? Если откажет внешний API, что сломается внутри? Без этой карты восстановление существенно усложняется.</li><li>Целевые RTO и RPO по каждому сервису. Таблица с показателями для каждого сервиса из перечня. Цифры должны быть согласованы с бизнесом и утверждены.</li><li>Роли, зоны ответственности, матрица эскалации. Кто принимает решение о переключении на резерв. Кто выполняет технические действия. Кто проверяет целостность данных. Кто связывается с подрядчиками. Кто информирует руководство и пользователей. Если ответственный недоступен, кто его заменяет. Схема связи при недоступности корпоративных каналов — телефоны, мессенджеры, резервная почта.</li><li>Критерии активации плана и лица, принимающие решения. План не активируется автоматически при любом сбое. Должны быть чёткие критерии: время недоступности, характер отказа, оценка ущерба. И конкретный человек (или группа), который принимает решение и даёт команду «переключаемся на резерв».</li><li>Пошаговые сценарии восстановления (runbook). Самая объёмная часть. Для каждого сценария — последовательность команд, скриншоты интерфейсов, порядок проверок. Runbook должен быть настолько подробным, чтобы по нему можно было восстановить систему даже в 3 ночи в выходной.</li><li>Доступы, учётные записи, ключи шифрования, места хранения резервных копий. Где лежат пароли, как получить доступ к резервным копиям, если основная площадка недоступна, какие ключи нужны для расшифровки данных. Вся эта информация хранится отдельно от основного документа, в защищённом месте, но в плане должно быть описано, как до неё добраться.</li><li>Процедура проверки целостности данных после восстановления. После того как системы подняты, нужно убедиться, что данные не повреждены и доступны для использования информационными системами и конечными пользователями Эта процедура прописывается для каждого типа систем отдельно.</li><li>Критерии завершения аварии и порядок возврата на основную площадку. Авария считается закрытой, когда все критичные сервисы работают на резервной площадке и пользователи получили доступ. Но рано или поздно нужно вернуться на основную площадку — в плане указано, как это делается, в какой последовательности и с какими проверками.</li><li>Контакты подрядчиков, провайдеров, вендоров с номерами договоров и SLA. Когда падает оборудование, нужно звонить поставщику, когда отказывает облако — провайдеру. В плане должны быть актуальные контакты, номера договоров и согласованные SLA по времени реакции и решения инцидентов.</li><li>Журнал версий и ответственный за актуализацию. DR-план — живой документ. В нём фиксируется, кто и когда вносил изменения, какая версия сейчас действует, кто отвечает за его обновление.</li></ol><h2>Сценарии аварий, которые нужно описать в плане</h2><p>DR-план не может быть одним универсальным алгоритмом. У разных аварий — разные триггеры, разная глубина переключения и разные действия. В плане должно как можно больше типовых сценариев. Кратко они могут выглядеть примерно так:</p><p><b>Отказ отдельного узла или дискового массива.</b> Самый частый сценарий. Отказал один сервер или СХД . Признак: сервер недоступен, ошибки в логах хранилища. Первое действие: переключить нагрузку на другой узел в том же ЦОД. Целевой RTO: 15–30 минут. Восстановление происходит в пределах одной площадки, без переключения на резервный ЦОД.</p><p><b>Полная потеря площадки.</b> Авария в ЦОД — пожар, затопление, отключение электричества, обрыв кабеля на входе. Признак: все сервисы на площадке недоступны одновременно. Первое действие: активировать резервную площадку, переключить DNS. Целевой RTO: от 1 до 4 часов в зависимости от класса сервиса.</p><p><b>Шифровальщик и повреждение данных.</b> Злоумышленники зашифровали данные, включая резервные копии, если они были доступны. Это самый опасный сценарий. Признак: файлы переименованы, зашифрованы, появились записки с требованием выкупа.</p><p>Первое действие: изолировать заражённые системы, проверить целостность бэкапов на неизменяемых (immutable) носителях. Использовать только те копии, которые заведомо не были заражены. Immutable-копии — это данные, которые нельзя изменить или удалить даже с правами администратора в течение заданного срока хранения. Без таких копий восстановление после шифровальщика практически невозможно — последние годы злоумышленники уничтожают бэкапы в первую очередь.</p><p><b>Отказ канала связи и потеря сетевой связности.</b> Серверы работают, но до них нельзя добраться из-за обрыва канала. Признак: потеря пакетов, маршрутизация не работает. Первое действие: переключиться на резервный канал, изменить маршруты. Если резервного канала нет — это уже сценарий “Полная потеря площадки”.</p><p><b>Ошибка администратора или неудачное обновление.</b> Кто-то запустил скрипт не на той системе, обновление нарушило совместимость. Признак: после конкретного действия система перестала работать. Первое действие: откатить изменения, восстановить систему из снапшота. Это самый простой сценарий, который обычно закладывается в рамках процесса управления изменениями.</p><p><b>Недоступность вендорской поддержки и невозможность закупки запчастей.</b> Оборудование сломалось, а поставщик не отвечает или запчасти закончились. Это не техническая авария, а организационная. Признак: оборудование в отказе, поставщик не может помочь в срок. Первое действие: переключить нагрузку на резервное оборудование или облачную площадку. В плане должны быть прописаны альтернативные поставщики и сроки ожидания.</p><h2>Как выбрать резервную площадку и схему аварийного восстановления ИТ-инфраструктуры</h2><p>Выбор резервной площадки определяется целевыми показателями RTO и RPO. Чем жёстче требования, тем дороже и сложнее схема. Основные варианты — холодный, тёплый и горячий резерв.</p><h3>Холодный, тёплый и горячий резерв</h3><figure><img src="https://media.tproger.ru/user-uploads/99633/2026-08-17/8e2e188e-99c6-4263-99f5-b5789f340af2.webp" alt="" /></figure><h3>DRaaS как резервная площадка</h3><p><a href="https://linx.ru/cloud/draas/">DRaaS</a> (Disaster Recovery as a Service) — модель, при которой резервная площадка арендуется у провайдера. Компания не строит собственный резервный ЦОД, а использует облачную инфраструктуру провайдера.</p><p><b>Как это работает:</b> данные и конфигурации систем реплицируются в облако провайдера. В обычном режиме виртуальные серверы готовы к запуску, но не работают — оплата идёт только за хранение данных и ресурсы в режиме ожидания. При аварии, Клиент инициирует переключение, и сервисы запускаются на облачной площадке провайдера. Оплата — за фактическое потребление во время аварии.</p><p><b>Плюсы:</b> нет капитальных затрат на строительство резервного ЦОД, можно тестировать переключение без остановки продуктивной среды, ответственность провайдера зафиксирована в SLA, есть удобный инструмент для настройки и отработки разных сценариев.</p><p>До подписания договора задайте провайдеру несколько вопросов:</p><ul><li>Какой RPO может обеспечить сервис?</li><li>Как часто можно проводить тестовые переключения без дополнительной оплаты?</li><li>Где физически размещены данные — в каком регионе, в каком ЦОД?</li><li>Кто выполняет переключение — команда провайдера/ собственная команда заказчика/совместно?</li><li>Как организована поддержка в нерабочее время и в выходные?</li></ul><p>Облачная инфраструктура IaaS — модель аренды виртуальных сервисов и других ресурсов, при которой компании платят только за фактическое использование мощностей. Такой подход даёт гибкость и прозрачность расходов, но многое зависит от надёжности платформы. Компания Linx Cloud строит <a href="https://linx.ru/cloud/iaas/">IaaS</a> на базе собственных ЦОД — это даёт предсказуемую отказоустойчивость и возможность географически распределять нагрузки без оглядки на сторонние площадки. Плюс платформа работает на OpenStack, что упрощает интеграцию с существующей инфраструктурой и автоматизацию.</p><figure><img src="https://media.tproger.ru/user-uploads/99633/2026-08-12/efac511d-3460-42ad-b0e2-2fa76ddc44a8.webp" alt="" /><figcaption>Схема резервной площадки и переключения сервисов при аварии</figcaption></figure><h3>Разнесение площадок и каналы связи</h3><p>Резервная площадка должна быть географически и энергетически независимой от основной. Если обе площадки питаются от одной подстанции или находятся в одном регионе, при масштабной аварии они могут отказать одновременно.</p><p>Каналы связи между площадками нужно резервировать. Если основной канал оборвётся, репликация остановится, и RPO будет нарушено. В плане должно быть описано, как и кем переключаются DNS и публичные IP-адреса при переключении на резервную площадку.</p><p>Вариант <a href="https://linx.ru/datacenter/colocation/">размещения оборудования в ЦОД</a> — colocation, то есть использование сторонних площадок для своих ресурсов. Задействуются виртуальные частные сети — <a href="https://linx.ru/datacenter/arenda-kanalov-svyazi-l2vpn/">выделенные каналы связи L2VPN</a>.</p><h2>Требования регуляторов РФ к плану восстановления</h2><p>Для многих компаний DR-план — юридическое требование.</p><p>Основные нормативные акты, которые обязывают иметь план аварийного восстановления и проверяют его наличие.</p><p><b>152-ФЗ о персональных данных.</b> Операторы персональных данных обязаны обеспечивать восстановление данных, изменённых или уничтоженных вследствие несанкционированного доступа. Требования детализированы в постановлении Правительства № 1119 и приказе ФСТЭК № 21. Приказ ФСТЭК № 21 содержит группу мер по обеспечению доступности, включая резервирование и восстановление. Актуальная редакция приказа — от 14 мая 2020 года. С 1 сентября 2026 года вступают в силу новые меры, в том числе защита от современных угроз.</p><p><b>187-ФЗ о безопасности критической информационной инфраструктуры.</b> Для значимых объектов КИИ (ЗОКИИ) предусмотрены меры по реагированию на инциденты и действиям в нештатных ситуациях, включая планирование восстановления. Поправки к закону вступили в силу 1 сентября 2025 года.</p><p>26 февраля 2026 года Правительство РФ утвердило распоряжением № 360-р единый перечень типовых отраслевых объектов КИИ. Документ насчитывает 397 типовых объектов по отраслям: банки и финансовые рынки, наука, здравоохранение, энергетика, транспорт, связь, оборонная и ракетно-космическая промышленность.</p><p>Для отдельных отраслей приняты отраслевые особенности категорирования: для атомной энергии (постановление № 4 от 16.01.2026), для банковской сферы (постановление № 92 от 06.02.2026), для науки (постановление от 07.03.2026).</p><p><b>Приказ ФСТЭК № 117.</b> С 1 марта 2026 года вступил в силу приказ ФСТЭК № 117 от 11.04.2025, который обновил требования к защите информации в государственных информационных системах (ГИС). Документ распространяется не только на ГИС, но и на иные информационные системы государственных органов, государственных унитарных предприятий и государственных учреждений. Требования включают политику информационной безопасности, подразделения защиты, цикл Деминга и новый показатель защищённости КЗИ.</p><p><b>ГОСТ Р 53647</b> (менеджмент непрерывности бизнеса). Серия стандартов, которые задают методическую рамку для управления непрерывностью. Включает практическое руководство, управление человеческими ресурсами, управление организацией в условиях кризиса. Документы действуют в настоящий момент.</p><p><b>ГОСТ Р 57580.1</b> для финансовых организаций. Стандарт содержит более 400 организационных и технических мер защиты информации для банков, страховых, клиринговых компаний и финтех-стартапов. В ноябре 2025 года Банк России разослал финансовым организациям письма, обязывающие требовать от поставщиков ИТ- и ИБ-услуг соответствия стандарту. В феврале 2026 года проведены первые проверки крупнейших финансовых организаций.</p><p>Для организаций, работающих с персональными данными, важно выбирать соответствующую инфраструктуру — <a href="https://linx.ru/cloud/secure-cloud-152/">облако, аттестованное по 152-ФЗ</a>. Вариант для государственных информационных систем — <a href="https://linx.ru/security/private-cloud-gis/">частное облако для ГИС</a>.</p><h2>Тестирование DR-плана</h2><p>Документ без проверки на реальном восстановлении ничего не стоит. Тестирование — единственный способ убедиться, что план работает, а не просто красиво выглядит на бумаге.</p><h3>Виды тестов</h3><p>Разные уровни сложности — от простых до максимально реалистичных.</p><ol><li>Разбор сценария на бумаге (tabletop exercise). Участники собираются и проходят сценарий устно: «что делаем, если упала база?», «кто кому звонит?», «какие команды выполняет?». Проверяются логика, последовательность действий, понимание ролей. Риска для продуктивной среды нет.</li><li>Восстановление одной системы на изолированном стенде. Берётся отдельный сервис и восстанавливается из бэкапов на тестовой среде. Проверяется, что бэкапы читаются, данные консистентны , восстановление проходит без ошибок.</li><li>Тестовое переключение группы связанных сервисов. Несколько сервисов, которые зависят друг от друга, переключаются на резервную площадку в тестовом режиме. Проверяются зависимости, порядок запуска, работа интеграций.</li><li>Полномасштабное учение с переводом продуктивной нагрузки. Самый сложный и рискованный вариант. Реальная нагрузка переключается на резервную площадку, пользователи работают с резервной средой. Проверяется всё: от инфраструктуры до пользовательского опыта. Риск — если что-то пойдёт не так, бизнес пострадает. Поэтому такие учения планируют на периоды низкой нагрузки и с полным планом отката.</li></ol><h3>Периодичность и критерии успешного теста</h3><p>Полный пересмотр и проверка плана — не реже раза в полгода. Частичные проверки типа восстановления отдельной системы можно делать чаще — раз в месяц или после каждого значимого изменения инфраструктуры.</p><p>Критерии успешного теста:</p><ul><li>сервис поднят и доступен пользователям;</li><li>данные прошли проверку целостности;</li><li>фактическое время восстановления уложилось в целевой RTO;</li><li>потеря данных не превысила целевой RPO.</li></ul><p>В протоколе теста фиксируется фактическое время каждого шага. Не «восстановили за 2 часа», а «базу подняли за 35 минут, веб-серверы за 50 минут, проверка данных заняла 20 минут, итого 1 час 45 минут».</p><h3>Что делать с результатами</h3><p>После каждого теста составляется протокол с расхождениями между планом и реальностью. Например, в плане написано, что доступ к бэкапам получают за 10 минут, а на практике заняло 25, потому что ключи лежали не там. Или ответственный не взял трубку, и пришлось звонить его заместителю.</p><p>На основе протокола назначаются ответственные за устранение расхождений и сроки. Runbook обновляется по итогам. Если расхождение между целевым и фактическим RTO систематическое — это сигнал, что нужно пересматривать либо целевые показатели, либо схему резервирования.</p><h2>Как поддерживать DR-план в актуальном состоянии</h2><p>DR-план стареет быстро. Инфраструктура меняется, люди уходят, появляются новые сервисы. Если не обновлять документ, через полгода и даже раньше он перестанет соответствовать реальности.</p><p>Внеплановый пересмотр нужен в следующих случаях:</p><ul><li>ввод нового сервиса или интеграции;</li><li>изменение архитектуры, миграция на новую платформу;</li><li>смена ответственных сотрудников, увольнение ключевых специалистов;</li><li>смена провайдера или изменение условий SLA;</li><li>изменение нормативных требований;</li><li>ротация ключей и доступов.</li></ul><p>Организационная часть: у документа должен быть владелец, который отвечает за его актуальность. Место хранения — доступное, но защищённое. Обязательно наличие офлайн-копии (бумажной или на отдельном носителе) на случай, если корпоративные системы недоступны. Новые сотрудники, которые могут участвовать в восстановлении, должны быть ознакомлены с планом в рамках онбординга.</p><p>Комплексный <a href="https://linx.ru/professional-services/audit-i-proyektirovaniye-infrastruktury/">аудит инфраструктуры</a> и проектирование помогают выявлять точки, которые нужно отразить в DR-плане.</p><h2>Чек-лист готовности DR-плана</h2><p>Пройдите по пунктам и отметьте, что уже сделано, а что ещё нет:</p><p>☐ Перечень всех ИТ-систем, которые должны восстанавливаться, составлен и утверждён.</p><p>☐ Для каждой системы назначены RTO и RPO, согласованные с бизнесом.</p><p>☐ По каждому сервису назначен ответственный за восстановление и его заместитель.</p><p>☐ Критерии активации плана записаны, лицо, принимающее решение о переключении, определено.</p><p>☐ Доступы, пароли, ключи шифрования хранятся в защищённом месте, порядок доступа к ним описан.</p><p>☐ Порядок действий при недоступности основной площадки прописан и проверен.</p><p>☐ Дата последних учений и их результат зафиксированы в протоколе.</p><p>☐ Дата последнего обновления плана — не старше 6 месяцев.</p><p>☐ Офлайн-копия плана существует и хранится отдельно от корпоративных систем.</p><p>☐ Контакты подрядчиков, провайдеров и вендоров актуальны, номера договоров и SLA записаны.</p><p>DR-план — это постоянный рабочий процесс. Документ написали, протестировали, обновили, снова протестировали. Без тестирования и регулярной актуализации план — просто текст. С тестированием и актуализацией — инструмент, который реально помогает в аварии.</p><p>Если собственной резервной площадки нет или строить её дорого, стоит обратить внимание на сервис аренды резервной инфраструктуры от <a href="https://linx.ru/cloud/draas/">DRaaS от Linx Cloud</a>. Ресурсы компании позволяют снять вопросы с оборудованием, каналами и поддержкой, оставляя заказчику только настройку и управление процессом.</p>]]></content:encoded>
    </item>
    <item>
      <title>Матрица компетенций разработчиков: как устроить грейды, оценки и рост</title>
      <link>https://tproger.ru/articles/matrica-kompetencij-razrabotchikov-kak-ustroit-grejdy-ocenki-i</link>
      <comments>https://tproger.ru/articles/matrica-kompetencij-razrabotchikov-kak-ustroit-grejdy-ocenki-i?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дима Дмитриев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/matrica-kompetencij-razrabotchikov-kak-ustroit-grejdy-ocenki-i</guid>
      <description><![CDATA[<p>Как устроены грейдовые сетки в IT: вилка внутри грейда достигает 40%, а повышение занимает 3 месяца. О чём спросить работодателя до оффера?</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/matrica-kompetencij-razrabotchikov-kak-ustroit-grejdy-ocenki-i">Матрица компетенций разработчиков: как устроить грейды, оценки и рост</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 14 Aug 2026 08:23:45 GMT</pubDate>
      <content:encoded><![CDATA[<p>Джун, мидл и сеньор — стандартные грейды в IT и общая система, которая часто при переходе из компании в компанию перестаёт работать. Вчерашний сеньор получает оффер на мидла, а человек, которого несколько лет никто не повышал, спокойно тянет на тимлида.</p><h2>Почему джун, мидл и сеньор ничего не значат</h2><p>Самое главное, что вам нужно знать: грейды описывают степень самостоятельности. Джун работает под присмотром и решает небольшие задачи, мидл закрывает их сам, сеньор отвечает за технические решения и помогает расти остальным. Дальше начинаются расхождения: наполнение каждого грейда компания собирает под себя, исходя из того, какая работа у неё есть прямо сейчас.</p><p>Из-за этого грейд описывает роль, а не уровень человека. Собеседование в большинстве случаев работает как проверка соответствия конкретной вакансии: нанимающему важно, закроет ли кандидат ту работу, под которую открыта позиция, а решение принимают по задачам, которые он показывает на интервью.</p><p>Разница в оценках существует даже между командами внутри одной компании. В одном отделе ищут человека, который будет автономно вести фичу, в соседнем нужен тот, кто вытянет сложную интеграцию. Поэтому грейд в оффере сам по себе почти ничего не значит, а на собеседовании разработчику нужно понять:</p><ul><li>какие задачи закреплены за грейдом, на который вас зовут, и чем они отличаются от задач следующей ступени;</li><li>кто и по каким признакам решает, что человек до этой ступени дотянул;</li><li>есть ли письменное описание требований или всё держится на устной договорённости с руководителем;</li><li>что произойдёт с грейдом, если вы захотите сменить направление внутри компании.</li></ul><h2>Из чего собирается матрица компетенций</h2><p>Матрица появляется в тот момент, когда трёх грейдов перестаёт хватать. Разработчик пилит свои фичи, сам же их и тестит, наполовину закрывает работу продакта, а заодно общается с заказчиком напрямую. В системе оценки при этом он всё ещё просто мидл, и непонятно, как учесть половину того, что он реально делает. Поэтому оценку разносят по нескольким направлениям и смотрят на человека сразу вертикально (уровень требуемых компетенций) и горизонтально (количество смежных компетенций).</p><p>В вертикаль входит основной стек: язык, фреймворк, качество кода, умение проектировать решения. В горизонталь идёт всё остальное, что помогает довозить задачи, от баз данных и инфры до понимания, зачем бизнесу эта фича. Деньги в такой модели считаются на основе уровня базовых скиллов (вертикаль) и количества дополнительных (горизонталь), поэтому крепкий мидл по стеку с прокачанной продуктовой частью вполне может стоить дороже технаря с одним языком программирования.</p><figure><img src="https://media.tproger.ru/user-uploads/99633/2026-08-17/d4a7f0f0-bef3-4dc5-8020-f33364e6d0a0.webp" alt="" /></figure><p>С софтами история более понятная: для разработчика они работают как гигиенический минимум — достаточно нормально обсуждать задачи и не превращать ревью в мясорубку, чтобы претендовать на любой технический грейд. Планка поднимается, когда появляется ответственность за людей и процессы, потому что там договариваться приходится постоянно.</p><h2>Как происходит оценка и почему она субъективная</h2><p>Сама матрица грейдов никого не оценивает, оценивают разработчика на ревью. Раз в полгода команда проверяет, что человек закрыл, где вырос и куда двигается дальше. Но у такого процесса есть цена и она достаточно высокая: оценка 20 человек забирает у лида около 40 часов, а при команде побольше он выпадает из работы на месяц. Отсюда растёт соблазн перевести ревью на раз в год, но почти всегда это бьёт по мотивации сильнее, чем экономит время. Оптимальный компромисс: оставить полугодовой цикл и добавить возможность досрочного пересмотра для тех, кто вложился в большую цель и закрыл её раньше срока.</p><p>Основной стресс от ревью у разработчика возникает по другой причине. Полгода человек живёт в информационном вакууме, а потом узнаёт о себе много нового за одну встречу. Ситуация становится хуже, когда оценивают только по закрытым тикетам, потому что инициатива, разбор чужих проблем в трекер не попадают.</p><p>Что с этим делать разработчику:</p><ul><li>узнать, кто входит в оценивающую группу и по каким критериям она работает, до начала цикла;</li><li>вести свой лог задач и не рассчитывать, что лид вспомнит всё за полгода;</li><li>просить промежуточный фидбэк раз в пару месяцев, чтобы ревью не приносило сюрпризов;</li><li>сверять самооценку с матрицей заранее и приходить с готовыми аргументами;</li><li>спрашивать про досрочный пересмотр, если закрыли что-то крупное вне плана.</li></ul><h2>Как получить повышение</h2><p>Работающая схема почти всегда запускается снизу: разработчик сам приходит и говорит, что готов брать больше. Ждать, пока лид заметит и предложит, можно долго, потому что у него полсотни задач и своя команда, а хорошо закрытые спринты выглядят как норма, а не как заявка на рост.</p><p>После разговора обычно дают около трёх месяцев и заранее согласовывают список задач, по которым потом будут оценивать. Формулировки фиксируют до старта, чтобы через квартал никто не спорил о критериях. Задача чаще всего звучит как «возьми процесс, с которым ты раньше не пересекался, и почини его»: разобраться, как он устроен сейчас, собрать данные, предложить решение и в идеале довести его до продакшена.</p><p>Такая задача одновременно измеряет и харды, и софты. Допустим, вам достался медленный код-ревью. Сначала придётся понять, где именно теряется время, потом сходить к бизнесу и выяснить, мешает ли им это, потом договориться с лидами соседних направлений. Если кейс не выгорел, спокойно разбирают причину. Иногда человек изначально понял задачу неправильно, иногда упёрся в то, что не смог договориться. Повторная попытка нормально заходит через полгода, когда есть что показать поверх работы над ошибками.</p><p>Отдельная засада ждёт тех, кто метит в лиды. Количество таких мест ограничено, и пока текущий лид на месте, вакансия не появится. Рабочих вариантов тут два: дождаться масштабирования, когда команда растёт и лидов реально становится больше, либо найти незанятую зону ответственности, которая важна бизнесу, и защитить её. Второй путь длиннее, зато он работает даже в статичной структуре.</p><p>Чтобы не приходить на повышение с пустыми руками, помогает несколько вещей:</p><ul><li>держать в своих годовых целях хотя бы одну, которую вы придумали сами и можете объяснить, зачем она компании;</li><li>заранее спросить, какие задачи закреплены за следующим грейдом, и начать подтягивать их до первого разговора о повышении;</li><li>фиксировать договорённости письменно, включая критерии успеха и сроки;</li><li>показывать промежуточный результат, а не приносить всё разом в конце трёх месяцев.</li></ul><p>Инициативу сверх плана компании обычно поощряют отдельно, от поездок на профильные конференции до внутренних конкурсов и премий. Штука приятная, но на грейд она влияет косвенно, поэтому рассчитывать стоит всё-таки на согласованный список задач.</p><h2>Деньги, вилки и разброс внутри грейда</h2><p>К каждому грейду привязана вилка с минимумом, серединой и максимумом, а разброс между краями обычно составляет 30–40%. Внутри неё можно двигаться без всякого повышения: для этого есть ежегодный пересмотр, завязанный на цели и премию. Как только хочется заметно больше, вилка упирается в потолок, и единственный способ его пробить состоит в смене грейда.</p><h3>Как вообще назначают зарплату</h3><p>Кадровая служба раз или два в год делает срез рынка и подтягивает границы, потому что рынок ведёт себя как биржа. Двух одинаковых по скиллам мидлов, нанятых с разницей в 2–3 месяца, может разделять большая сумма: за прежние деньги нового человека уже не находят, приходится платить больше. Те, кто давно работает в компании при этом остаются со старой зарплатой, а система грейдов начинает ломаться.</p><p>Для тех, кто не собирается в менеджмент, компании обычно держат отдельные способы добавить денег: индексацию за стаж и бонусы за конкретную пользу бизнесу. Работает это ровно настолько, насколько компания готова платить сильному технарю сопоставимо с управленцем. Когда у менеджмента вилки вдвое выше, разработчики довольно быстро делают выводы и уходят в лиды, включая тех, кому это противопоказано.</p><h2>Как проверить систему грейдов на входе</h2><p>Всё, что описано выше, проверяется до подписания оффера за один разговор с нанимающим лидом. Вопросы стоит задавать так, чтобы человек не отвечал общими словами про заботу о развитии.</p><figure><img src="https://media.tproger.ru/user-uploads/99633/2026-08-17/4c4980c5-53af-4d25-be46-fc8764a6e51f.webp" alt="" /></figure><p>У нас в<a href="https://centicore.ru/career/"> Centicore Group</a> всё устроено примерно так же: требования по грейдам лежат в открытом доступе, а наставничество вынесено в отдельную роль, поэтому можно и ментора себе найти, и самому взять новичка. Статьи с докладами на конференциях у нас идут в зачёт роста наравне с задачами по проекту.</p><h2>Итого</h2><p>Грейд описывает роль, которая нужна компании прямо сейчас, поэтому одно и то же слово в двух офферах означает разную работу и разные деньги. Проверять имеет смысл содержание: какие задачи закреплены за уровнем, кто и по каким критериям оценивает, есть ли путь наверх для того, кто не хочет управлять людьми.</p><p>Со своей стороны стоит перестать ждать, пока рост заметят. Заявка на повышение почти всегда идёт снизу, дальше выдают 3 месяца и список задач, по которым будут судить, поэтому выгоднее прийти с готовым предложением, чем ждать полугодового ревью. Свой профиль по компетенциям полезно держать в актуальном состоянии независимо от того, есть ли в компании формальная система: он одинаково пригодится и на внутреннем ревью, и на собеседовании в другом месте.</p>]]></content:encoded>
    </item>
    <item>
      <title>4 аналога MS Project для управления проектами в 2026 году</title>
      <link>https://tproger.ru/digest/4-analoga-ms-project-dlya-upravleniya-proektami-v-2026-godu-2</link>
      <comments>https://tproger.ru/digest/4-analoga-ms-project-dlya-upravleniya-proektami-v-2026-godu-2?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/digest/4-analoga-ms-project-dlya-upravleniya-proektami-v-2026-godu-2</guid>
      <description><![CDATA[<p>Собрали программы для управления проектами на замену MS Project: диаграммы Ганта, ресурсы, миграция данных и цены. Сравните Timetta, GanttPRO, Kaiten и Redmine.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/digest/4-analoga-ms-project-dlya-upravleniya-proektami-v-2026-godu-2">4 аналога MS Project для управления проектами в 2026 году</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Управление проектами]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Подборки]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 14 Aug 2026 07:20:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Microsoft Project остаётся эталоном для классического планирования, но в России его всё чаще заменяют на решения с локальной инфраструктурой, рублёвой оплатой и гибридным подходом. В подборке — четыре инструмента, которые закрывают главные сценарии MS Project: диаграммы Ганта, управление ресурсами, учёт трудозатрат, бюджеты и миграцию данных.</p><p><b>Timetta</b> — российская PPM-платформа с финансовым учётом, портфелями и on-premise для крупных компаний.</p><p><b>GanttPRO</b> — специализированный онлайн-инструмент для диаграмм Ганта с импортом MS Project и простым интерфейсом.</p><p><b>Kaiten</b> — российский сервис для гибридного управления: Kanban, Scrum, Гант и модульная тарификация.</p><p><b>Redmine</b> — бесплатное open-source решение для команд, готовых самостоятельно разворачивать и дорабатывать систему.</p><h2>Как мы выбирали</h2><p>Критерии отбора были простыми и близкими к реальным задачам проектных офисов: полноценная диаграмма Ганта с зависимостями, управление ресурсами и загрузкой, возможность учитывать трудозатраты и бюджеты, поддержка импорта из MS Project или Excel, а также российская доступность — оплата, поддержка, документы и размещение данных.</p><p>Все участники проверены по официальным источникам. Цены и условия указаны по данным сайтов на лето 2026 года и могут меняться, поэтому перед покупкой стоит свериться с актуальным прайс-листом.</p><h2>1. Timetta — портфели и финансы</h2><p>Timetta — российская корпоративная система для управления проектами, ресурсами, трудозатратами и финансами. Она ориентирована на проектные офисы, ИТ-интеграторов, консалтинговые и инжиниринговые компании, которым нужно вести сроки, людей и деньги в одном пространстве.</p><h3>Кейсы клиентов и кому подойдёт</h3><ul><li>Проектный офис крупной ИТ-компании. В Газпром ЦПС Timetta используется как единое пространство для управления портфелем из 180+ проектов.</li><li>Руководители проектов и финансисты. Комита ЦТ собирает трудозатраты через таймшиты и контролирует рентабельность проектов.</li><li>Ресурсные менеджеры. В GMCS система помогла сделать прозрачной загрузку сотрудников и снизить конфликты за ресурсы между направлениями.</li></ul><h3>Что можно развернуть</h3><p>Платформа покрывает полный цикл проектного бизнеса:</p><ul><li>проекты, программы и портфели</li><li>диаграммы Ганта с вехами, зависимостями и критическим путём<br /></li><li>таск-трекер с бэклогом и спринтами<br /></li><li>бронирование ресурсов и загрузка сотрудников<br /></li><li>таймшиты и учёт отсутствий</li><li>заявки на затраты, платёжные календари и процесс почасового биллинга,</li><li>P&amp;L-отчёты, клиенты и сделки<br /></li><li>корпоративная вики и ИИ-ассистент<br /></li></ul><h3>Инфраструктура и экосистема</h3><p>Timetta работает в облаке (SaaS) и в виде on-premise-развёртывания в инфраструктуре заказчика. Данные хранятся на защищённых российских серверах, система соответствует 152-ФЗ и включена в реестр российского ПО (запись № 18250 от 05.07.2023). Доступен OData API с авторизацией OAuth 2.0, готовые интеграции с 1С:УХ и 1С:ЗУП, обработчики и сценарии автоматизации.</p><h3>Отзывы и репутация</h3><p>Среди публичных клиентов — Газпром ЦПС, Комита ЦТ, GMCS. Вендор публикует кейсы внедрений на сайте, но агрегированных рейтингов на независимых площадках мало, поэтому сравнивать по звёздам затруднительно.</p><h3>Поддержка и каналы связи</h3><p>Есть русскоязычная документация, база знаний и поддержка. В корпоративных планах доступны расширенная поддержка и SLA. Внедрение обычно включает настройку структуры проектов, справочников, ролей, перенос данных, обучение и консультации после запуска.</p><h3>Тарифы, ограничения и условия</h3><p>Стоимость зависит от выбранных приложений, числа пользователей и срока лицензии. По данным прайс-листа, лицензии на отдельные приложения начинаются от 350 ₽ за пользователя в месяц (например, Timetta Expenses), до 3500 ₽ за Timetta Corp.</p><p>Для небольших команд есть отдельная бесплатная сборка Timetta Lite: тариф Free доступен без ограничения по сроку для 10 активных пользователей и теперь включает таймшиты, а для команд на 11–50 человек действует платный тариф Team — 1 490 ₽ за пользователя в месяц (подробнее — в <a href="https://timetta.com/ru/blog/new-timetta-lite-release-june">блоге Timetta</a>). On-premise доступен для корпоративных клиентов, стоимость рассчитывается индивидуально. Работа с юрлицами ведётся по договору с закрывающими документами.</p><p>Официальный сайт: <a href="https://timetta.com/ru?utm_source=tproger&amp;utm_medium=article&amp;utm_campaign=ms-project-alternatives">timetta.com</a></p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-07-31/5550c822-02eb-48aa-bbc3-9ddb18f30ac2.webp" alt="Ресурсный план в Timetta" /><figcaption>Ресурсный план Timetta с подсветкой работ из диаграммы Ганта</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-07-31/862aa6ba-8b2c-4630-bb60-b22f6e943236.webp" alt="Диаграмма Ганта в Timetta" /><figcaption>Пример диаграммы Ганта с вехами и контрольными точками</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-07-31/38d17432-8494-4d01-80a8-928d04d27c85.webp" alt="P&amp;L-отчёт в Timetta" /><figcaption>Пример P&amp;L-отчёта по проекту</figcaption></figure><h2>2. GanttPRO — специализация на Гантах</h2><p>GanttPRO — онлайн-инструмент для управления проектами, построенный вокруг интерактивной диаграммы Ганта. Он подходит командам, которым нужна быстрая визуализация сроков, зависимостей и ресурсов без сложного внедрения.</p><h3>Кейсы клиентов и кому подойдёт</h3><ul><li>Менеджеры проектов среднего звена. Интерфейс заточен под планирование сроков и контроль дедлайнов без IT-отдела.</li><li>Маркетинговые и event-команды. Удобно строить таймлайны кампаний, делиться планами с заказчиками по публичной ссылке.</li><li>Команды, мигрирующие с MS Project. Поддерживается импорт из MS Project, что упрощает перенос существующих планов.</li></ul><h3>Что можно развернуть</h3><p>GanttPRO предлагает диаграмму Ганта с зависимостями, автопланированием и критическим путём; иерархию задач и WBS; представления доски, списка, календаря, дашборда, портфеля и загрузки ресурсов; учёт рабочей нагрузки, бюджетирование и тайм-трекинг на старших тарифах; комментарии к задачам, вложения, упоминания и публичные ссылки для демонстрации планов; экспорт в PDF, PNG и Excel.</p><h3>Инфраструктура и экосистема</h3><p>Решение работает полностью в браузере, без установки десктопного клиента. Данные хранятся в дата-центрах Microsoft Azure в ЕС. Поддерживаются основные платежные методы, включая карты и PayPal; для компаний доступна оплата по счёту. API есть, но собственная экосистема интеграций у GanttPRO уже, чем у крупных платформ вроде monday.com или Wrike.</p><h3>Отзывы и репутация</h3><p>По данным GanttPRO, инструментом пользуются более 1 млн проектных менеджеров. На Capterra сервис получает высокие оценки за удобство диаграмм Ганта (около 4,8/5). Часто отмечают чистый интерфейс и быстрый старт; среди ограничений — узкая экосистема интеграций и менее глубокие отчёты по сравнению с enterprise-PPM.</p><h3>Поддержка и каналы связи</h3><p>Поддержка доступна через email и базу знаний. На тарифе Enterprise предусмотрен приоритетный канал поддержки и enterprise onboarding. Документация и обучающие материалы публикуются на сайте.</p><h3>Тарифы, ограничения и условия</h3><p>GanttPRO работает по подписке. Тариф Core стоит от $7 за пользователя в месяц при годовой оплате, Advanced — $10, Business — $17, Enterprise — $25. Бесплатного тарифа нет, но доступен 14-дневный пробный период без привязки карты. Некоторые функции, например workload management и портфели, открываются только на тарифах Business и выше.</p><p>Официальный сайт: <a href="https://ganttpro.com/ru">ganttpro.com</a></p><h2>3. Kaiten — Agile и Гант</h2><p>Kaiten — российская платформа для управления задачами, проектами и командами. Изначально позиционировалась как альтернатива Jira, Trello и Asana, но сегодня покрывает и классическое планирование через диаграмму Ганта, и гибкие методологии.</p><h3>Кейсы клиентов и кому подойдёт</h3><ul><li>IT-команды и продуктовые подразделения. X5 Tech использовала Kaiten при миграции из Jira, сохранив привычный подход к задачам.</li><li>Ритейл и производство. Сервис работает в компаниях ВкусВилл, Мегафон, Додо Пицца, технопарке «Сколково».</li><li>Команды, которым нужен единый инструмент. В Kaiten совмещены Kanban, Scrum, Гант, документы, базы знаний и служба поддержки.</li></ul><h3>Что можно развернуть</h3><p>Доступны канбан-доски с WIP-лимитами и дорожками, скрам-доски со спринтами, burndown-диаграммами и velocity; диаграмма Ганта, ресурсное планирование и зависимости между задачами; документы и базы знаний; автоматизации через конструктор правил и триггеров; AI-транскрибатор встреч и AI-помощник для оформления задач; отчёты по загрузке, lead time, block time и cumulative flow; мобильные приложения для iOS и Android.</p><h3>Инфраструктура и экосистема</h3><p>Kaiten работает в облаке и предлагает серверную версию на Docker для тарифа «Корпорация» (от 300 пользователей). Продукт включён в реестр российского ПО, данные хранятся в России, оплата производится в рублях. Интеграции включают Jira, Trello, Notion, Asana, ClickUp, GitHub, GitLab, Slack, Telegram, Google Календарь и Яндекс Календарь.</p><h3>Отзывы и репутация</h3><p>По данным сайта, сервисом пользуются более 200 тысяч компаний. Публикуются именные кейсы клиентов: Buzzolls, «Сколково», X5 Tech, «Продман», «Авиационный Консалтинг-ТЕХНО». В независимых обзорах отмечают удобный интерфейс и рублёвую оплату; ограничения — функционал для портфельного управления и глубокого финансового учёта уступает специализированным PPM-системам.</p><h3>Поддержка и каналы связи</h3><p>Русскоязычная техническая поддержка, документация, база знаний и обучающие материалы. Для крупных клиентов доступно сопровождение при внедрении.</p><h3>Тарифы, ограничения и условия</h3><p>Бесплатный тариф — до 5 пользователей с базовыми функциями. Платные тарифы: «Старт» от 185 ₽ за пользователя в месяц (при оплате на 36 месяцев), до 15 пользователей, включены модули Scrum и Kanban; «Стандарт» от 430 ₽ за пользователя в месяц, до 250 пользователей, два модуля на выбор; «Бизнес» от 580 ₽ за пользователя, до 250 пользователей, шесть модулей; «Корпорация» — индивидуальная цена, on-premise, от 300 пользователей. Каждый дополнительный модуль — от 80 ₽ за пользователя. Пробный период — 14 дней со всеми модулями.</p><p>Официальный сайт: <a href="https://kaiten.ru">kaiten.ru</a></p><h2>4. Redmine — open source</h2><p>Redmine — бесплатная open-source система управления проектами на Ruby on Rails. Это выбор для команд, у которых есть технические ресурсы для развёртывания и настройки, и которые не хотят зависеть от вендора и регулярных лицензионных платежей.</p><h3>Кейсы клиентов и кому подойдёт</h3><ul><li>Разработческие и IT-команды. Встроенная интеграция с Git, SVN, Mercurial, CVS и гибкая система трекинга задач.</li><li>Компании с жёсткими требованиями к данным. Можно развернуть полностью в собственной инфраструктуре и контролировать доступ.</li><li>Бюджетные проекты. Подходит стартапам, образовательным учреждениям и НКО, готовым потратить время на настройку вместо денег на лицензии.</li></ul><h3>Что можно развернуть</h3><p>Redmine поддерживает управление несколькими проектами, гибкую ролевую модель доступа, трекинг задач с кастомными полями и workflows, диаграмму Ганта и календарь, wiki и форумы для каждого проекта, учёт времени, документы и файлы, email-уведомления, интеграцию с LDAP и SCM, создание задач по email. Функциональность расширяется сотнями плагинов сообщества.</p><h3>Инфраструктура и экосистема</h3><p>Решение распространяется под лицензией GNU GPL v2 и разворачивается на собственных серверах или в облаке. Поддерживаются разные СУБД (PostgreSQL, MySQL, SQLite) и ОС. API доступен для интеграций, но большинство интеграций реализуется через плагины или собственную разработку.</p><h3>Отзывы и репутация</h3><p>Redmine существует с 2006 года и имеет активное международное сообщество. Среди известных пользователей — множество open-source проектов, компаний в сфере IT, инжиниринга и консалтинга. В обзорах отмечают гибкость и отсутствие лицензионных платежей; к недостаткам относят устаревший интерфейс и необходимость в администрировании.</p><h3>Поддержка и каналы связи</h3><p>Официальная поддержка сообщества: форумы Redmine, IRC-канал #redmine в сети libera.chat, неофициальный Slack. Документация включает User's Guide, Developer's Guide, FAQ и HowTos. Коммерческую поддержку и хостинг предоставляют сторонние провайдеры, цены зависят от поставщика.</p><h3>Тарифы, ограничения и условия</h3><p>Сам Redmine бесплатен: нет лицензионных платежей и ограничений по числу пользователей или проектов. Реальные затраты — на собственное железо или облачный хостинг, администрирование и нужные плагины. Готовые хостинговые версии от сторонних провайдеров стоят от $10–25 за пользователя в месяц, но это цена провайдера, а не вендора.</p><p>Официальный сайт: <a href="https://www.redmine.org">redmine.org</a></p><h2>Сравнение по ключевым критериям</h2><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-07-31/3d96f1fe-32a4-4008-89ca-7dccc4f49930.webp" alt="Сравнительная таблица сервисов из подборки" /><figcaption>Сравнение Timetta, GanttPRO, Kaiten и Redmine по ключевым критериям</figcaption></figure><p><b>Диаграмма Ганта и зависимости.</b> Timetta и GanttPRO предлагают наиболее зрелый Гант с критическим путём и автопланированием. У Kaiten Гант доступен как подключаемый модуль, у Redmine — базовый, но функциональный.</p><p><b>Управление ресурсами.</b> Timetta выделяется ресурсным планированием, бронированием и портфельной загрузкой. GanttPRO и Kaiten дают workload-вид, Redmine требует плагинов для глубокого ресурсного учёта.</p><p><b>Финансы и бюджеты.</b> Timetta — единственный из четырёх с полноценным P&amp;L, себестоимостью и взаиморасчётами. GanttPRO и Kaiten закрывают базовое бюджетирование, Redmine — через плагины.</p><p><b>Гибкие методологии.</b> Kaiten лидирует по Kanban и Scrum из коробки. Timetta поддерживает гибридные схемы, GanttPRO ориентирован на классику, Redmine гибок через настройку workflows.</p><p><b>Размещение данных.</b> Timetta и Kaiten предлагают российское облако и on-premise. GanttPRO хранит данные в Azure ЕС. Redmine разворачивается где угодно, включая собственный сервер.</p><p><b>Стоимость.</b> Redmine бесплатен по лицензии, но требует ресурсов на поддержку. Kaiten стартует с бесплатного тарифа и далее от 185 ₽. GanttPRO — от $7. Timetta — индивидуально, с бесплатным тарифом Timetta Lite (Free) для команд до 10 пользователей.</p><h2>Выводы</h2><p>Прямого универсального заменителя MS Project не существует: каждый инструмент делает ставку на свои сценарии. Для крупного проектного офиса с финансовым контролем и портфелями логичнее смотреть на Timetta. Если главное — удобная диаграмма Ганта с быстрым стартом и импортом из MS Project, выбор GanttPRO выглядит естественным. Командам, которые живут в Kanban/Scrum, но иногда нужен Гант, подойдёт Kaiten. А Redmine остаётся рабочей лошадкой для технических команд, готовых взять на себя развёртывание и поддержку.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как считать время сотрудников: 5 систем для учёта времени в проектах</title>
      <link>https://tproger.ru/digest/kak-schitat-vremya-sotrudnikov-5-sistem-dlya-uchyota-vremeni-v-proe</link>
      <comments>https://tproger.ru/digest/kak-schitat-vremya-sotrudnikov-5-sistem-dlya-uchyota-vremeni-v-proe?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/digest/kak-schitat-vremya-sotrudnikov-5-sistem-dlya-uchyota-vremeni-v-proe</guid>
      <description><![CDATA[<p>Сравнили пять систем учёта рабочего времени: Timetta, Clockify, Toggl Track, TimeCamp и Everhour. Разбираем, кто подойдёт проектному бизнесу.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/digest/kak-schitat-vremya-sotrudnikov-5-sistem-dlya-uchyota-vremeni-v-proe">Как считать время сотрудников: 5 систем для учёта времени в проектах</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Подборки]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 12 Aug 2026 08:52:44 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если команда работает по часам, без прозрачного учёта трудозатрат сложно оценить экономику проектов. В подборке — пять систем, которые помогают считать время сотрудников, сверять план с фактом и выставлять счета клиентам.</p><p>Timetta — российская платформа с таймшитами и управлением экономикой проектов; подходит компаниям, где зарплаты — основная статья расходов.</p><p>Clockify — щедрый бесплатный план и низкий порог входа в платные тарифы для небольших команд.</p><p>Toggl Track — минималистичный трекер с сильными отчётами, удобен фрилансерам и агентствам.</p><p>TimeCamp — акцент на автоматический учёт по ключевым словам и контроль бюджетов проектов.</p><p>Everhour — встраивает таймер прямо в задачи Asana, Jira, ClickUp и других таск-трекеров.</p><h2>Как мы выбирали</h2><p>Отбирали решения по критериям, важным для проектного бизнеса:</p><ul><li>возможность вести учёт времени по проектам и задачам</li><li>биллинг</li><li>отчётность</li><li>интеграции</li><li>мобильный доступ</li><li>наличие бесплатного тарифа</li><li>прозрачное ценообразование</li></ul><p>Для каждого участника использованы данные с официальных сайтов и предоставленный бриф.</p><h2>1. Timetta — учёт через таймшиты</h2><p>Timetta — российская платформа для управления проектами и учёта рабочего времени через формализованные таймшиты. Система ориентирована на компании, у которых фонд оплаты труда занимает существенную долю расходов, а трудозатраты напрямую влияют на рентабельность.</p><h3>Кейсы клиентов и кому подойдёт</h3><p>Решение в первую очередь выбирают компании с долей ФОТ свыше 60%:</p><ul><li>консалтинг</li><li>аудит</li><li>ИТ-интеграция</li><li>разработка ПО</li><li>дизайн и так далее</li></ul><p>Распространённый сценарий — регулярное заполнение таймшитов сотрудниками с разбивкой по коммерческим проектам и внутренним активностям, например, совещаниям, наставничеству, обучению или административным задачам.</p><h3>Что можно развернуть</h3><p>Платформа покрывает полный цикл проектного бизнеса:</p><ul><li>проекты, программы и портфели</li><li>диаграммы Ганта с вехами, зависимостями и критическим путём</li><li>таск-трекер с бэклогом и спринтами</li><li>бронирование ресурсов и загрузка сотрудников</li><li>таймшиты и учёт отсутствий, заявки на затраты, платёжные календари и процесс почасового биллинга, P&amp;L-отчёты, клиенты и сделки</li><li>корпоративная вики и ИИ-ассистент</li></ul><p>В рамках Timetta доступны приложения: Timetta Projects, Timetta Finance, Timetta Resources, Timetta Timesheets, Timetta Clients, Timetta Tasks, Timetta Expenses и Timetta Wiki.</p><p>Все данные учёта времени связаны с финансами проекта через ставки себестоимости и биллинга.</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-07-31/e70ebe46-17f6-4e54-b96f-5f0e561d920d.webp" alt="Интерфейс Timetta" /><figcaption>Интерфейс Timetta</figcaption></figure><h3>Инфраструктура и экосистема</h3><p>Система поставляется по модели SaaS или on-premise для установки на собственные серверы. Предусмотрены готовые интеграции с «1С:Зарплата и управление персоналом» и «1С:Управление холдингом», открытый API, а также авторизация через корпоративные каталоги (SSO/AD). Данные хранятся в дата-центрах Yandex Cloud на территории России, резервные копии сохраняются 30 дней.</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-07-31/50ec7997-7876-4b98-840a-04dcebe672fe.webp" alt="Таймшиты в Timetta" /><figcaption>Таймшиты в Timetta</figcaption></figure><h3>Отзывы и репутация</h3><p>В предоставленном брифе публичные агрегированные оценки и кейсы крупных клиентов не указаны, поэтому не формируем собственный рейтинг.</p><h3>Поддержка и каналы связи</h3><p>Техническая поддержка работает по электронной почте support@timetta.com с регламентированным временем ответа в течение часа. Документация размещена на сайте в разделе <a href="https://timetta.com/ru/docs">timetta.com/ru/docs</a>. При внедрении возможна помощь инженеров вендора, включая миграцию данных из других систем.</p><h3>Тарифы, ограничения и условия</h3><p>Функции учёта рабочего времени вынесены в отдельное приложение Timetta Timesheets. Лицензии на него начинаются от 524 ₽ за пользователя в месяц с регрессионными скидками.</p><p>Недавно компания выпустила новую сборку Timetta Lite: она доступна бесплатно для команд до 10 активных пользователей без ограничения срока и теперь включает таймшиты. Для 11–50 пользователей предусмотрен платный тариф Team — 1 490 ₽ за пользователя в месяц. Подробности о релизе — в <a href="https://timetta.com/ru/blog/new-timetta-lite-release-june">блоге Timetta</a>. Мобильное приложение находится в разработке, а пока доступна адаптированная мобильная версия в браузере.</p><p>Официальный сайт: <a href="https://timetta.com/ru?utm_source=tproger&amp;utm_medium=article&amp;utm_campaign=top-task-tracker-with-time-tracking">timetta.com</a></p><h2>2. Clockify — бесплатный старт</h2><p>Clockify — облачный тайм-трекер от CAKE.com с акцентом на простоту и щедрый бесплатный план. Подходит командам, которым нужно быстро начать учёт часов без сложного внедрения.</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-07-31/9d5f59fc-9d92-41bf-a98c-e5b0d182b425.webp" alt="Интерфейс Clockify" /><figcaption>Интерфейс Clockify</figcaption></figure><h3>Кейсы клиентов и кому подойдёт</h3><p>Сервис чаще выбирают фрилансеры, стартапы, маркетинговые и консалтинговые команды, агентства и небольшие ИТ-команды. Хорошо работает, когда основная задача — собирать часы по проектам и клиентам, а не строить сложную экономику проектов.</p><h3>Что можно развернуть</h3><ul><li>веб-приложение, десктопные клиенты (Windows, macOS, Linux), мобильные приложения iOS/Android и расширения для браузеров</li><li>таймер, ручной ввод, таймшиты, календарь, автотрекер, Pomodoro, обнаружение простоя, интеграции с внешними сервисами</li><li>в платных тарифах — киоск, биллинговые ставки, инвойсы, утверждение таймшитов, отпуска, бюджеты, GPS и скриншоты</li></ul><h3>Инфраструктура и экосистема</h3><p>Clockify работает в облаке AWS, сертифицирован по ISO/IEC 27001, соответствует SOC 2 Type II и GDPR. В Pro-плане доступен выбор региона хранения данных. Интеграции охватывают более 80 приложений; есть публичный API и вебхуки.</p><h3>Отзывы и репутация</h3><p>Производитель заявляет, что сервисом пользуются миллионы пользователей по всему миру. Публичная агрегированная оценка в официальных источниках не раскрыта.</p><h3>Поддержка и каналы связи</h3><p>Поддержка доступна через справочный центр Clockify Help и форму обратной связи на сайте. Время ответа в официальных источниках не регламентировано.</p><h3>Тарифы, ограничения и условия</h3><p>Бесплатный план включает неограниченный трекинг, проекты и клиентов, но ограничен пятью пользователями. Платные тарифы при годовой оплате: Basic — $3,99, Standard — $5,49, Pro — $7,99, Enterprise — $11,99 за пользователя в месяц. Все платные планы можно протестировать в течение семи дней.</p><p>Официальный сайт: <a href="https://clockify.me/">clockify.me</a></p><h2>3. Toggl Track — минималистичный трекер</h2><p>Toggl Track делает ставку на простоту: один клик для старта таймера, чистые отчёты и работу на любых устройствах. Это выбор для тех, кто хочет считать время без избыточного контроля и сложных настроек.</p><h3>Кейсы клиентов и кому подойдёт</h3><p>Инструмент подходит фрилансерам, дизайн- и креативным агентствам, удалённым командам и малым ИТ-командам. Особенно удобен, когда важно быстро фиксировать часы по клиентам и проектам, а затем строить отчёты.</p><h3>Что можно развернуть</h3><ul><li>веб, десктоп (Windows, macOS, Linux), мобильные приложения iOS/Android и браузерные расширения</li><li>таймер, ручной ввод, офлайн-трекинг, автоматическое обнаружение простоя, Pomodoro, личные и командные цели, более 100 интеграций, API и вебхуки</li><li>встроенного инвойсинга нет — данные выгружаются или передаются через интеграции</li></ul><h3>Инфраструктура и экосистема</h3><p>Toggl Track сертифицирован по ISO/IEC 27001, поддерживает 2FA и SSO, заявлено соответствие GDPR. Производитель декларирует доступность 99,9%, однако SLA в публичных источниках не публикуется.</p><h3>Отзывы и репутация</h3><p>В сторонних обзорах упоминается аудитория свыше 5 млн пользователей. Официальная агрегированная оценка или число клиентов на сайте не раскрыты.</p><h3>Поддержка и каналы связи</h3><p>Доступны база знаний, community-форум и email-поддержка. Приоритетная поддержка по email открывается на Premium, персональный менеджер — на Enterprise. Телефонной поддержки нет.</p><h3>Тарифы, ограничения и условия</h3><p>Бесплатный план рассчитан на команды до пяти пользователей и включает неограниченные проекты и клиентов. Платные планы: Starter — от $9, Premium — от $18 за лицензию в месяц, Enterprise — индивидуальные условия. Есть 30-дневная пробная версия.</p><p>Официальный сайт: <a href="https://toggl.com/track/">toggl.com/track</a></p><h2>4. TimeCamp — автоматический контроль</h2><p>TimeCamp выделяется автоматическим учётом времени: десктопный агент распознаёт приложения и сайты по ключевым словам и предлагает записать время в нужный проект. Это снижает нагрузку на сотрудников и помогает собирать данные для расчёта себестоимости.</p><h3>Кейсы клиентов и кому подойдёт</h3><p>Решение часто выбирают агентства, юридические фирмы, консалтинговые компании и распределённые команды, которым важны отчёты по проектам и биллинг. Подходит тем, кто хочет снизить долю ручного ввода в пользу автоматической категоризации активности.</p><h3>Что можно развернуть</h3><ul><li>веб-приложение, десктопный агент, мобильные приложения и расширения</li><li>таймер, таймшиты, keyword-based автоучёт, attendance и overtime, отпуска, бюджеты и сметы, биллинговые ставки, инвойсинг, утверждение таймшитов и ролевая модель</li><li>интеграции с Asana, Trello, Jira, Monday, ClickUp, Wrike и другими инструментами</li></ul><h3>Инфраструктура и экосистема</h3><p>Штаб-квартира компании находится в ЕС (Польша), обработка данных ведётся в соответствии с GDPR. Для бизнес-клиентов доступно соглашение DPA. Для организаций от 50 пользователей предлагаются on-premise и private SaaS на основе годового Ultimate-тарифа.</p><h3>Отзывы и репутация</h3><p>Публичная агрегированная оценка или число клиентов в официальных источниках не раскрыты.</p><h3>Поддержка и каналы связи</h3><p>Поддержка доступна по email help@timecamp.com и через базу знаний на сайте. На Enterprise плане заявлен приоритетный support с SLA.</p><h3>Тарифы, ограничения и условия</h3><p>Бесплатный план доступен для неограниченного числа пользователей и включает проекты, таймшиты и приложения. Платные тарифы при годовой оплате: Starter — $3,99, Premium — $6,99, Ultimate — $9,99 за пользователя в месяц, Enterprise — по запросу. Все платные планы можно протестировать 14 дней.</p><p>Официальный сайт: <a href="https://www.timecamp.com/">timecamp.com</a></p><h2>5. Everhour — бюджеты проектов</h2><p>Everhour встраивает учёт времени непосредственно в популярные таск-трекеры: кнопка таймера появляется рядом с задачей в Asana, Trello, Jira, ClickUp и других инструментах. Это снижает переключение контекста и упрощает контроль бюджетов.</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-07-31/b747c72d-00cd-4025-936c-c98989c48690.webp" alt="Everhour time tracking — weekly timesheet" /><figcaption>Everhour: еженедельный таймшит</figcaption></figure><h3>Кейсы клиентов и кому подойдёт</h3><p>Решение подходит агентствам, продуктовым командам и консалтинговым компаниям, которые уже ведут задачи в Asana, Jira, Monday или ClickUp. Минимальное отвлечение сотрудников — основное преимущество для команд, привыкших работать внутри одного инструмента.</p><h3>Что можно развернуть</h3><ul><li>работа через веб-приложение и расширение для Chrome, которое добавляет элементы управления в интерфейс таск-трекера</li><li>таймер, ручной ввод, бюджеты проектов в часах и деньгах, счета на оплату, отслеживание расходов, планирование ресурсов, отчёты с экспортом CSV/PDF, SSO и гибкие права доступа</li></ul><h3>Инфраструктура и экосистема</h3><p>Everhour — облачный SaaS. Нативные интеграции охватывают Asana, Trello, Jira, ClickUp, Monday, Basecamp, GitHub, Notion, Linear, а также Slack, Google Calendar, QuickBooks, FreshBooks, Xero и другие сервисы. Мобильных и десктопных приложений нет, офлайн-режим не поддерживается.</p><h3>Отзывы и репутация</h3><p>На официальном сайте указан рейтинг 4,7 из 5 на платформе G2. Детальная методология или число отзывов не раскрыты.</p><h3>Поддержка и каналы связи</h3><p>Поддержка через email и базу знаний. На тарифе Custom доступен персональный менеджер и приоритетная поддержка с ускоренным ответом.</p><h3>Тарифы, ограничения и условия</h3><p>Бесплатный план рассчитан на команды до пяти мест. Платный Team — $8,50 за место в месяц при годовой оплате, минимум пять мест. Тариф Custom для крупных организаций рассчитывается индивидуально. Пробный период — 14 дней.</p><p>Официальный сайт: <a href="https://everhour.com/">everhour.com</a></p><h2>Сравнение по ключевым критериям</h2><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-07-31/8cbb8112-f99a-48c6-96cd-cf6b8858881e.webp" alt="Сравнительная таблица сервисов из подборки" /><figcaption>Сравнительная таблица сервисов из подборки</figcaption></figure><p>Бесплатный тариф: у Timetta — Timetta Lite до 10 активных пользователей, теперь с таймшитами; Clockify и Toggl Track ограничивают 5 пользователями; TimeCamp позволяет неограниченное число пользователей; Everhour — до 5 мест.</p><p>Минимальная цена: Timetta — от 524 ₽ за модуль Timesheets; Clockify и TimeCamp — от $3,99; Everhour — $8,50; Toggl Track — $9.</p><p>Автоматический трекинг: реализован в TimeCamp по ключевым словам и в Clockify/Toggl Track через десктопные агенты; Timetta и Everhour ориентированы на ручные таймшиты и таймеры.</p><p>Биллинг и инвойсы: встроены в Timetta, Clockify (с Standard), TimeCamp (Ultimate+) и Everhour; Toggl Track предлагает только отчёты с возможностью экспорта.</p><p>Русский язык и локальные данные: только Timetta предлагает полноценный русскоязычный интерфейс, документацию и хостинг в РФ; остальные участники работают на английском языке и размещают данные за рубежом.</p><h2>Вывод</h2><p>Для российских проектных компаний с жёсткими требованиями к учёту экономики и локализации данных логичнее смотреть на Timetta. Если приоритет — минимальная цена или бесплатный старт, стоит протестировать Clockify или TimeCamp. Toggl Track удобен для быстрого учёта без лишних настроек, а Everhour — для команд, которые уже работают в Asana, Jira или ClickUp. Перед выбором стоит проверить, какой формат трекинга привычен команде: ручные таймшиты, автоматический контроль или встроенные кнопки в задачи.</p>]]></content:encoded>
    </item>
    <item>
      <title>Жизнь после сеньора. Как я хакнул матрицу</title>
      <link>https://tproger.ru/articles/zhizn-posle-senora-kak-ya-haknul-matricu</link>
      <comments>https://tproger.ru/articles/zhizn-posle-senora-kak-ya-haknul-matricu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дима Дмитриев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/zhizn-posle-senora-kak-ya-haknul-matricu</guid>
      <description><![CDATA[<p>Разработчик-сеньор о карьерном потолке в 35–40 лет: почему не помогли новая компания, пет-проект и вайб-кодинг, и как магистратура МФТИ изменила всё.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/zhizn-posle-senora-kak-ya-haknul-matricu">Жизнь после сеньора. Как я хакнул матрицу</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 11 Aug 2026 09:09:25 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вы уже сеньор разработчик, то как и я, к 35-40 годам скорее всего подумаете, что ваша жизнь сложилась. У меня есть работа, деньги и отлаженные процессы, даже с «Теслы» я к этому моменту пересел обратно на дизельный GLE, потому что наигрался в гаджет на колёсах и снова захотел машину, которая не подведёт. Примерно тогда же выяснилось, что с работой всё ровно наоборот. Она не подводит, но и не даёт ничего нового.</p><p>В какой-то момент ты понимаешь, что упёрся в карьерный потолок. Дело тут не в деньгах и не в должности, с этим у меня было нормально, а в том, что мозг начинает закисать в корпоративном легаси и старых процессах, которые ты уже знаешь наизусть. А в твоём окружении при этом не с кем запустить что-то крутое и прибыльное.</p><h2>Какие варианты у меня были</h2><p>Первая мысль в такой ситуации: апгрейдить надо только карьеру, и я честно изучал все возможные варианты:</p><ol><li>Уйти на грейд выше в другую компанию. Самый популярный ход на рынке. Ты выходишь наружу сеньором и заходишь в новую контору уже принципалом и получаешь рост в деньгах. Но насколько часто вы видите высокооплачиваемые экспертные роли в IT в последнее время, добавьте сюда текущее состояние экономики, и возможно узкую специализацию компаний, где такие вакансии всё-таки есть. Плюс сейчас всех активно возвращают в офис и в гибрид, а заодно сужают географию найма.</li><li>Взять три мидловые работы вместо одной сеньорской. Схема известная всем, и на удалёнке она какое-то время работала прекрасно. Но в сутках 24 часа, из которых надо ещё спать и есть. Заработать так действительно можно, но развиваться нельзя вообще: ты не углубляешься нигде, а весь день бегаешь от пожара к пожару и чинишь то в одном месте, то в другом. Через год у тебя больше денег и те же навыки, что были.</li><li>Завести пет-проект. Совет, который в такой ситуации дают чаще всего. Отнимает немного времени, приносит немного денег, разгружает голову. Я свой проект завёл и до сих пор не бросил, вещь полезная. Но проблему потолка он не решает, потому что пет-проект остаётся хобби с монетизацией. Ты по-прежнему разработчик, только уже для себя. Ты не разговариваешь с клиентами, не считаешь экономику, не собираешь команду и не отвечаешь за деньги, потому что денег там мало и потерять их не страшно.</li><li>Уйти в вайбкодинг. Я попробовал и довольно быстро поймал себя на неприятной мысли, что стал оператором конвейера: агенты пишут, я проверяю. Заодно шутка про «не наберём джунов подешевле, а лучше заменим их агентами» перестала быть шуткой, и это скорее повод побыстрее выйти из категории людей, которых можно так заменить.</li></ol><p>Все эти варианты для меня объединяет одно — они меняют мою позицию, нагрузку и доход, но оставляют меня тем же разработчиком и в том же окружении.</p><h2>Почему грейд упирается не в навыки</h2><p>Я пошёл разбираться, как система грейдов устроена вообще, и понял, что в матрице грейдов нет денег.</p><p><b>Там есть компетенции, роли и ожидания от уровня.</b> Зарплатные вилки для каждой позиции считаются по своим правилам, от компании к компании и даже от отдела к отделу они разные. Совершенно нормальная ситуация, когда два человека формально на одном грейде сидят на разных суммах, и разница между ними приличная.</p><p><b>Не забываем и про квоту.</b> На каждое перф-ревью, то есть на регулярную оценку сотрудников, компания выделяет конкретное количество повышений. Все остальные едут в лист ожидания, который копится от цикла к циклу.</p><p>Есть ещё один момент, который я недооценивал — <b>количество решенных багов,</b> для повышения его не хватает, потому что 8 потушенных аварий за год говорят в первую очередь о том, что в команде плохо выстроены процессы. А если ты ходишь по офису с выражением лица «вокруг дурачки, зачем их вообще нанимали», то до принципала тебе далеко независимо от количества закрытых багов.</p><p>Но вывод из всего этого получился такой: улучшать себя как разработчика в моей ситуации бессмысленно, потому что упираешься ты не в свои границы, а в границы системы и компании.</p><h2>Как я нашел главную проблему — люди вокруг</h2><p>Вторая половина проблемы оказалась хуже первой, и денег она вообще не касается.</p><p>Школьные, студенческие и армейские друзья остались классными ребятами, но наши жизни давно поехали разными траекториями. Кто-то ушёл в другую сферу, у кого-то дети и другой ритм, с кем-то мы видимся раз в год. На работе вокруг коллеги, но у каждого свои KPI, свои риски и свои внутренние игры. Обсуждать с ними новый продукт или собственный проект чаще всего не получается, потому что у человека просто другие приоритеты, и это нормально.</p><p>В какой-то момент до меня дошло, чего мне на самом деле не хватает — мне нужна была среда, где есть бизнесовые люди, которые умеют делать сложные вещи и могут меня научить правильно вести собственный бизнес или просто научить думать стратегически.</p><h2>Почему я пошёл на Физтех</h2><p>Курсы я не рассматривал вообще, потому на курсах ты покупаешь контент, смотришь видео, получаешь сертификат и остаёшься в том же круге людей, с которого начинал.</p><p>Дальше я нашёл программу МФТИ. У Физтеха есть кафедра технологического предпринимательства, которую он делает вместе со Сколково, а у кафедры есть онлайн-магистратура, которую называют ТехПред.</p><p>Первое, за что я зацепился: формально это очная магистратура, занятия идут дистанционно в формате вебинаров с преподавателями и персональным ментором. На выходе получаете диплом государственного образца магистра по направлению «Прикладные математика и физика» с направленностью «Технологическое предпринимательство».</p><p>Про сам вуз. Физтех называют русским MIT, и по нагрузке он до сих пор считается одним из самых тяжёлых в стране. Среди основателей, преподавателей и выпускников есть нобелевские лауреаты. Среди выпускников хватает и учёных, и предпринимателей: физтехи стоят за ABBYY, Revolut, Veeam и другими технологическими компаниями. С 2020 года МФТИ возглавляет российский рейтинг предпринимательских университетов и бизнес-школ.</p><p>Но окончательно меня убедил факт, что средний возраст студента на ТехПреде 34 года — это продакты и руководители проектов в технологических компаниях, основатели стартапов, технические директора и руководители исследовательских отделов.</p><h2>Иллюзия гениальности</h2><p>Первое, что на программе делают с головой взрослого технаря, это вынимают уверенность, что хорошая разработка и есть бизнес. На программе учат именно технологическому предпринимательству: как из своих знаний разработки создать коммерчески выгодный проект.</p><p>Разбор проектов на программе ведёт Вячеслав Чикин, заместитель заведующего кафедрой технологического предпринимательства МФТИ+Сколково и серийный предприниматель. В интервью <a href="https://tproger.ru/articles/pochemu-vaw-pet-proekt-eshhyo-ne-biznes-a-vy-ne-predprinimatel">«Почему ваш пет-проект ещё не бизнес, а вы не предприниматель»</a> он формулирует это так:</p><blockquote>Предпринимательство начинается не с технологии. Оно начинается с проблем, которые есть у тех, кто будет пользоваться продуктом». Разработчик по природе смотрит на то, что он создал, и ищет, куда это применить. Предприниматель смотрит в обратную сторону: вот проблема, вот человек, который в ней застрял, — что из имеющегося в мире поможет её решить? Технология при этом не обязательно должна быть своей.<br /><br />Это кажется очевидным, пока не начинаешь запускать что-то реальное. И главное, что здесь стоит понять, как меняется ваша роль.<br /><br />Предприниматель — это человек, который понимает проблему и находит способ её решить. Не продвигает свою компетенцию, не ищет рынок под свой стек — а встаёт на позицию того, кому нужна помощь. Он должен отказаться от идеи продвижения своей технологии и стать на точку зрения: я помогу тебе решить твою проблему.</blockquote><p>В программе много часов практической работы над собственным проектом: ты приносишь свою идею и защищаешь её на семинарах. Каждый раз ты проверяешь проект на адекватность: кто конкретно платит за твой продукт, сколько потратишь, чтобы привести одного такого клиента, и сколько он принесёт за первый год. Где ты его вообще найдёшь. Сколько людей из этого списка ты уже опросил и что они ответили.</p><p>Первые месяца три мне было сложно, я пришёл с проектом, который казался мне очевидно хорошим, и довольно быстро понял, что технически он классный, но для рынка не подходит. До сих пор думаю, что без этой проверки я мог бы потратить на него ещё пару лет и собственных денег.</p><h2>Дружба и бизнес после 30</h2><p>Самая недооценённая тема взрослой жизни, это новые друзья и новые партнёры. Говорить об этом вслух почему-то неловко, но после 30-35 связи перестают возникать сами собой. Студенческое время закончилось, свободы стало меньше, а знакомства на конференции или в чате почти никогда не доходят до нужного уровня доверия, тем более до совместного бизнеса.</p><p>У этого есть скучное социологическое объяснение: исследования Джеффри Холла показывают, что прочные связи у взрослых людей появляются через регулярную совместную деятельность. Социологи описывают это через идею «третьего места», то есть пространства помимо дома и работы, куда человек ходит постоянно и где встречает одних и тех же людей.</p><p>Магистратура подходит под это требование почти идеально, в результате случайная учебная группа за два года превращается в сообщество. Люди зовут друг друга в проекты, дружат, ездят вместе на бизнес-встречи. У меня из группы вышло несколько человек, с которыми я теперь общаюсь чаще, чем со школьными друзьями, хотя живём мы в разных городах.</p><h2>Доступ к экспертизе</h2><p>В программу входят философия науки, системное мышление и системная инженерия, маркетинг инновационных продуктов, финансы, управление проектами, экономика технологического бизнеса и коммерциализация разработок.</p><p>Философию преподают взрослым студентам меньше всего, хотя она отвечает на вопрос, который у технаря обычно даже не сформулирован: откуда ты знаешь, что твоё утверждение верно, и что должно произойти, чтобы ты признал его ошибочным.</p><p>Системное мышление ведёт Анатолий Левенчук, директор по исследованиям русского отделения INCOSE и автор учебников по системноинженерному мышлению. Управление проектами читает Григорий Ципес, главный консультант компании IBS и вице-президент Ассоциации управления проектами. Коммерциализацию разработок ведёт Владимир Антонец, доктор физико-математических наук из Института прикладной физики РАН, который организовал первый в стране региональный технологический инкубатор. Юридическую часть закрывает Роман Янковский, автор «Закона стартапа».</p><h2>Команда из своих</h2><p>Эффект, которого я вообще не ждал: магистратура оказалась лучшим каналом найма из всех, что у меня были.</p><p>Обычный найм устроен так: ты читаешь резюме, проводишь 3-4 часа собеседований, смотришь на человека в максимально искусственных условиях и делаешь ставку. Отдельная сложность в том, что у нанимающего менеджера и у рекрутера в голове часто разные представления об одном и том же грейде, поэтому запрос «найди мне сеньористого сеньора» на выходе может дать кого угодно.</p><p>В магистратуре всё наоборот, из такой среды естественно забирать к себе технического директора, маркетолога, продакта или будущего партнёра по бизнесу. Двух человек из своей группы я позвал в проект, и оба согласились. Разговор занял минут двадцать, потому что обсуждать было нечего: мы к тому моменту полтора года работали вместе и знали друг о друге всё.</p><h2>Как поступить</h2><ul><li>Сроки. Приём заявлений идёт с июня по август 2026 года включительно, обучение начинается 1 сентября. Форма очная, занятия дистанционные, учиться четыре семестра.</li><li>Порядок действий. Сначала разобраться в программе. Дальше оставить контакты в форме на сайте и, по желанию, уточнить, будет ли лично вам польза от этого обучения. Потом подать заявление на сайте МФТИ, пройти собеседование и сдать вступительное испытание. Вся информация и форма заявки на<a href="https://techpredonline.ru/"> techpredonline.ru</a>.</li><li>Деньги. Есть образовательный кредит с господдержкой по ставке 3% годовых, который дают без подтверждения доходов. Есть оплата по семестрам, 445 500 рублей за семестр. Есть оплата работодателем, в том числе через корпоративные программы обучения и развития, и для корпоративных руководителей это часто самый быстрый путь, потому что бюджет на развитие сотрудников есть почти везде, просто про него редко спрашивают.</li></ul><h2>Вместо вывода</h2><p>Упереться в потолок в 35-40 лет нормально, через это проходят почти все. Странно другое: решить, что дальше остаётся только доживать по инерции, добирая проценты к зарплате и меняя логотип в трудовой раз в три года.</p><p>Для меня сработала только смена среды и поступление в МФТИ, дальше подтягивается остальное: экспертиза, к которой раньше не было доступа, команда, статус и новые люди, часть из которых со временем становится партнёрами.</p><p>Кому это нужно. Тому, кто упёрся и честно понимает это про себя. Тому, кто наелся псевдообучения и не хочет очередной сертификат. Тому, кто хочет включить мозги заново и поменять свою жизнь.</p><p>Кому не нужно. Тому, кого всё устраивает. Совершенно нормальная позиция, и если вы дочитали до этого места с чувством «зачем вообще все эти сложности», то, скорее всего, она про вас.</p><p>Приём заявлений идёт до конца августа:<a href="https://techpredonline.ru/"> </a><a href="http://techpredonline.ru">techpredonline.ru</a>. Ещё есть онлайн-школа «Предпринимательское планирование» на полтора месяца, если успешно её закончите — она даёт минимальные проходные баллы в магистратуру.</p><p><i>Реклама. Рекламодатель: МФТИ, Физтех ИНН 5008006213, erid: 2W5zFJHUfX7</i></p>]]></content:encoded>
    </item>
    <item>
      <title>Учиться в ИТ стало сложнее: что на самом деле изменил вайбкодинг</title>
      <link>https://tproger.ru/articles/uchitsya-v-it-stalo-slozhnee-chto-na-samom-dele-izmenil-vajbkoding</link>
      <comments>https://tproger.ru/articles/uchitsya-v-it-stalo-slozhnee-chto-na-samom-dele-izmenil-vajbkoding?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дима Дмитриев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/uchitsya-v-it-stalo-slozhnee-chto-na-samom-dele-izmenil-vajbkoding</guid>
      <description><![CDATA[<p>Раньше на первый разбор задачи уходил месяц, теперь хватает десяти минут в чате. Зачем тогда нужна база и как выбирать обучение в 2026-м?</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/uchitsya-v-it-stalo-slozhnee-chto-na-samom-dele-izmenil-vajbkoding">Учиться в ИТ стало сложнее: что на самом деле изменил вайбкодинг</a>»</p>]]></description>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 10 Aug 2026 08:36:56 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Модель забрала ту работу, где был наш опыт</h2><p>Раньше, чтобы разобраться в задаче, надо было собрать информацию, прочитать, свести всё в кучу и сделать исследование, и уходило на это несколько недель, а если тема тяжёлая, то месяц тоже был нормальным сроком. Сейчас то же самое собирается за 10 минут в нейронке, и оно даже годится как основа, с которой можно работать дальше.</p><p>Звучит как чистый выигрыш, пока не вспомнишь, зачем эта работа была нужна. Именно на ней набивали руку: пока неделю копался в чужом коде и документации, понимал, как всё устроено. Теперь этот кусок пропускают, а спрашивают и покупают уже те навыки, которые идут после кода: оценить, что выдала модель, и довести до рабочего состояния.</p><p>У нас забрали ручной кодинг не случайно, он был долгим и дорогим — именно это хотели автоматизировать первым. Всё, что покупают сегодня, устроено по-другому, а деньги, которые освободились, уходят как раз в стратегию и реализацию.</p><h2>Без базы оценить код нечем</h2><p>Дальше начинается неприятное. Раз модель пишет код, кажется, что можно не разбираться, как он работает. На практике всё наоборот: разбираться приходится глубже, потому что к новым инструментам добавляется вся старая база.</p><p>База начинается с двоичной системы и дальше идёт по языкам в порядке их появления, через Pascal, Basic и всё остальное. Человек, который прошёл весь этот путь, понимает, из чего собран код, который ему выдали, и способен сказать, где там будет баг. Без этого вайбкодинг сводится к копированию текста, который выглядит нормально, и работает до первого теста.</p><p>Хороший пример того, как это осваивают с нуля, есть в Roistat. Генеральный директор компании Наталья Арсланова Рассказала об этом в очередной встрече цикла <a href="https://mipt-talks.ru/">“Беседы в МФТИ”</a> кафедры технологического предпринимательства. Наталья по образованию управленец, написанием кода никогда не занималась. Когда фаундер принёс новость про вайбкодинг, он ничего объяснять не стал, а скинул статью с Хабра со словами «разберешься». Два дня ушло на сопротивление, потом она села и сделала. Через тот же путь прошёл весь топ-менеджмент, причём попытки купить готовый курс уперлись в то, что нормальных курсов по вайбкодингу тогда не существовало, и учились все по одной статье. Сейчас вайбкодит большая часть сотрудников. Арсланова говорит, что первый полученный результат затягивает сильнее любой игры, и на этом эффекте люди в тему и въезжают.</p><h2>Половина работы теперь в самой задаче</h2><p>Качество ответа основывается на том, как сформулирован запрос. Чем точнее и структурнее задача, тем лучше результат, и наоборот: размытый запрос даёт правдоподобный текст, на который ушли токены и время, а толку ноль. Так что перед тем, как открывать чат, стоит понять, какой вопрос вообще решаешь, какие есть ограничения и в каком виде ответ окажется применимым.</p><p>Опыт помогает понимать, как модель собирает ответ, она достраивает контекст до правдоподобного и выдает результат с одинаковой уверенностью независимо от того, хватило ей данных или нет.</p><p>Вторая половина работы начинается, когда ответ получен. Каким данным в нём можно доверять, каким нельзя, какие альтернативы существуют и что будет после того, как выберешь одну из них. Просчитать последствия во всей их вариативности модель за тебя не станет. Обсудить варианты с ней можно, а решение и то, что за ним последует, остаются на вас.</p><h2>За результат всё равно отвечаешь лично</h2><p>Первичную проработку и проверку гипотез модель тянет неплохо, но всё, что дальше, остается на человеке. Вместе с реализацией остаётся ответственность: предъявить претензию модели не получится, отвечает тот, кто взял её результат и понёс в работу.</p><p>Отдельная история в том, что довести дело до конца техника сама по себе не помогает. Собрать себе трекер, который напоминает о задачах и шлет уведомления во все мессенджеры, сегодня может кто угодно. Наталья Арсланова признается, что собственные трекеры соблюдает плохо, зато устная договоренность с людьми работает. С сотрудниками то же самое, напоминалка в CRM и необходимость отчитаться перед руководителем действуют по-разному.</p><p>С обучением ловушка ровно такая же. Человек планирует 20-30% свободного времени под книги или курсы, а в работе ничего не меняется, потому что полученные знания не подходят. Наталья Арсланова решает это правилом: из каждой прочитанной книги по бизнесу надо внедрить минимум одну идею, иначе книга засчитывается как художественная литература и время потрачено на удовольствие.</p><h2>Как выбрать, чему учиться</h2><p>Начать стоит с вопроса, зачем оно тебе. Учиться просто так тоже нормально, это такое же хобби, как спорт или прогулки. Но если от обучения ждут измеримого результата, цель надо понимать, потому что от неё зависит формат: переход в новую профессию, подготовка к руководящей роли, масштабирование своего дела или технологический сдвиг вроде нынешнего. Рынок разработки в своё время вырос как раз на коротких программах длиной от двух месяцев до года, после которых человек уже получал первые рабочие результаты.</p><p>Если направление для вас новое, базу придется получить в любом случае. Попытки найти короткий путь заканчиваются набором разрозненных инструментов без понимания, как они между собой связаны.</p><p>Отдельно стоит смотреть на программы, где учиться нужно сразу на своём проекте. Предпринимательству по учебникам не научишься, поэтому в онлайн-магистратуру той же <a href="https://mipt.ru/education/schools/techpred">кафедры технологического предпринимательства МФТИ</a> приходят люди в среднем около 35 лет и приносят готовый контекст: свой стартап, спин-офф внутри компании или проект в корпорации, за который они отвечают. Заявления в магистратуру принимаются до 15 августа, обучение стартует 1 сентября, для поступления нужно пройти собеседование. Программа по семестрам и условия есть на<a href="https://techpredonline.ru/"> techpredonline.ru</a>.</p><h2>Что будет с образованием дальше</h2><p>Прогнозировать на 10 лет вперед сейчас - дело неблагодарное: модели обновляются раз в неделю или две и каждый раз умеют заметно больше предыдущих. Кое-что видно уже сегодня.</p><p>Университеты никуда не денутся, потому что базу кто-то должен выдавать системно, и учиться в них станет тяжелее: к фундаменту добавится слой новых технологий и понимание, как одно кладётся на другое. Само обучение окончательно превращается в постоянную часть работы, а к нему добавится персональное сопровождение.</p><p>Программы при этом станут короче и разойдутся на модули, чтобы можно было взять конкретный кусок под конкретную задачу. Спрос идёт от тех, кто учится прямо сейчас: зумеры и поколение альфа спрашивают, зачем им предмет и чем он поможет дальше, а безусловного авторитета преподавателя, каким он был 20 лет назад, больше нет.</p><h2>Итого</h2><p>Вайбкодинг убрал не потребность разбираться, а только ваше время. Разбираться теперь надо быстрее и глубже, потому что цена ошибки та же, а медленной подготовительной работы, которую раньше этот опыт обеспечивал, больше нет.</p><p>Искусственный интеллект — множитель естественного. Если у человека на входе единица, умножение дает десять. Если ноль, сколько ни умножай, получится ноль. Если минус, результат будет соответствующим.</p><p><i>Реклама. Рекламодатель: МФТИ, Физтех ИНН 5008006213, erid: 2W5zFJBmp6d</i></p>]]></content:encoded>
    </item>
    <item>
      <title>Как я написал AI-бота на aiogram 3 с помощью нейросетей, выжил при 2500+ пользователей и почему SQLite "всё ещё торт"</title>
      <link>https://tproger.ru/articles/kak-ya-napisal-ai-bota-na-aiogram-3-s-pomoshhyu-nejrosetej-vyzhil-p</link>
      <comments>https://tproger.ru/articles/kak-ya-napisal-ai-bota-na-aiogram-3-s-pomoshhyu-nejrosetej-vyzhil-p?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Нуя]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-ya-napisal-ai-bota-na-aiogram-3-s-pomoshhyu-nejrosetej-vyzhil-p</guid>
      <description><![CDATA[<p>Технический кейс создания Telegram-бота Щёлк-ГДЗ (ИИ-репетитор по фото). Разбор архитектуры на Python (aiogram 3, aiosqlite), работы с API Gemini и решения проблем под нагрузкой 2500+ пользователей. </p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-ya-napisal-ai-bota-na-aiogram-3-s-pomoshhyu-nejrosetej-vyzhil-p">Как я написал AI-бота на aiogram 3 с помощью нейросетей, выжил при 2500+ пользователей и почему SQLite "всё ещё торт"</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[JSON]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Flash]]></category>
      <category><![CDATA[Redis]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[микро]]></category>
      <category><![CDATA[Пет-проект]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[VPS]]></category>
      <category><![CDATA[Hardware]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 26 Jul 2026 15:47:08 GMT</pubDate>
      <content:encoded><![CDATA[<p>На дворе 2026 год. Очередной постмортем микро-SaaS'а в Телеге.</p><p>Без маркетинга и успешного успеха. Только боль, костыли и суровый прод! Мой пет-проект - бот «Щёлк-ГДЗ». Это ИИ-помощник, который решает школьные задачки по фоткам, видео, гс, тг-кружкам и PDF. Под капотом <b>Python 3.12.3</b>, <b>aiogram 3</b>, <b>aiosqlite</b>,<b> апи OpenRouter </b>(модель Gemini 3.0 Flash) и <b>Робокасса</b>. Крутится всё это на дешёвом VPS в Нидерландах. Держит 2500+ пользователей и не падает.</p><p>В этой статье расскажу, как за 9 месяцев построил логичную архитектуру, победил ошибку FloodWait при стриминге ответа ИИ и почему в условиях 1 гига RAM обычная SQLite - отличное решение.</p><h2>Нейронка вместо джуна и Уроборос багов</h2><p>Сразу признаюсь... С нуля я это не писал :) Синтаксис мне генерили LLM-ки. Начинал с Gemini 2.5 Pro, затем перешел на 3.0 Pro, а сейчас использую 3.1 Pro.</p><p>Многие думают, что нейронка сама напишет проект "под ключ", но это миф. Я <b>никогда </b>не доверял ИИ проектирование архитектуры и использовал его как продвинутый<i> StackOverflow</i> (скармливал конкретную задачу (например, написать SQL-миграцию) и получал кусок кода).</p><p><i>ИИ — это не архитектор, а джун на спидах. </i></p><p>Как только логика усложнялась - гемини ловил <b>«Уроборос багов»</b>. Кидаешь баг <b>А</b> - он его фиксит, но появляется ошибка <b>Б</b>. Скармливаешь и её - фиксит, но возвращается баг <b>А</b>. Цикл замкнулся. Лечилось только созданием новых чатов, в которые я кидал код и писал запросы типа "Найди критические ошибки, логические дыры и баги".</p><p>Про продуктовую логику нейронка вообще не слышала. В первой версии рефералки был баг, где любой(если его аккаунта ещё нет в БД) мог написать в конце ссылки что любые 9 цифр (<i>?start=1234567890</i>) и получить бонусы.</p><p>Также были ошибки с гонкой состояний при оплатах и активациях промокодов, которые тоже фиксил запросами в новые чаты с ИИ. Так я исправил около 20 архитектурных дыр.</p><h2>Немного про архитектуру.</h2><p>Чтобы код не превратился в нечитаемую лапшу на 5000 строк, я жестко разбил всё на модули. Архитектура бота выглядит так:</p><figure><img src="https://media.tproger.ru/user-uploads/139416/2026-07-08/dfc8dd70-365f-4f70-bbbf-2b00b503bef4.webp" alt="" /></figure><p><b>main.py</b> - это точка входа с настройкой логгеров, коннетами aiohttp и запуском APScheduler</p><p><b>database.py</b> - вся работа с БД</p><p><b>neiro.py</b> - логика общения с апи OpenRouter (стриминг, сжатие фоток через Pillow, JSON-контекст)</p><p><b>states.py</b> - классы состояний aiogram.fsm.state (например, PaymentProcess, GdzMode)</p><p><b>utils.py</b> - легковесные утилиты. Например лок пользователей (защита от спама запросами):</p><p>Хэндлеры вынесены в отдельную папку handlers/:</p><p><b>handlers/common_handlers.py</b> - главное меню с обработкой /start (рефералки, utm-метки).</p><p><b>handlers/gdz_handlers.py</b> - сам процесс ИИ-решения (вход в GdzMode, прием фото, видео, кружочков).</p><p><b>handlers/pay_handlers.py</b> - это логика платежей (Robokassa) и "Умная корзина".</p><p><b>handlers/tasks_handlers.py</b> - квесты (выдача премиума за подписку на каналы спонсоров).</p><p>Сборку интерфейсов вынес в <b>all_def.py</b>. Не люблю, когда в хэндлерах генерится полотно текста с кнопками. Там же лежат функции склонения слов (1 запрос, 2 запроса, 5 запросов). А в <b>settings.py </b>лежат списки с рандомными ответами бота, чтоб казался живым.</p><p>Так же в <b>settings.py</b> я сделал кэширование картинок, тоесть при первом запуске бот грузит фото меню как <b>BufferedInputFile</b>, сохраняет <b>file_id</b> от Телеграма и дальше шлет картинки моментально по ID. Сервак говорит спасибо за сэкономленный трафик)</p><p>В <b>handlers/common_handlers.py</b> находится первичная маршрутизация. Вот так обрабатываются рефералки, переходы с сайта, с рекламы и другое при старте:</p><h2>Диета по токенам</h2><p>Хранить бесконечную историю диалогов дорого и бессмысленно. В бесплатной версии храню <b>10 последних сообщений</b> (5 пар вопрос-ответ), а в преме — <b>30. </b></p><p>Но фотки весят большое кол-во токенов. Если премиум-юзер закинет 30 фоток, OpenRouter выставит мне огромный счет. В итоге я прикрутил ограничение: Из <b>30 сообщений</b> ИИ видит только <b>10 последних картинок. </b></p><p>Старые фотки тупо вырезаю из JSON. Подменяю на системный промпт:</p><p>С довольно неплохой моделью (gemini 3.0 flash) это работает как часы (она честно признается, что забыла картинку, а не выдумывает что-то из воздуха).</p><h2>Стриминг, FloodWait и защита баланса</h2><p>Чтобы бот не выглядел тормозом, я сделал стриминг ответа от ИИ в <b>neiro.py</b>. Я обновляю сообщение в Телеграме чанками по мере получения их от ОпенРоутера.</p><p>Но если делать <b>message.edit_text </b>слишком часто, ловишь <b>FloodWait</b>. В итоге я выставил интервал в 0.7 секунд и обернул всё в жесткий<b> try/except</b>:</p><p>Стрим при этом не прерывается. Поспали и погнали дальше :) Если на этапе обработки файла или стриминга падает критическая ошибка - честно возвращаю юзеру запрос на баланс.</p><p>В <b>handlers/gdz_handlers.py</b> это выглядит так:</p><h2>SQLite тащит</h2><p>Почему не <b>Postgre</b>? Потому что для микро-SaaS с 2,5к пользователей<b> SQLite</b> хватает за глаза. Но в асинхронной среде она любит кидать ошибку <b>database is locked</b>.</p><p>Чтобы этого избежать, я включил <b>WAL-режим</b> при инициализации пула, разделил коннекты на <b>db_writer</b> и <b>db_reader</b>, а сложные операции доверил самому <b>SQL</b>.</p><p>Например, 00:00 запускается крон-таска, которая собирает огромную аналитику, начисляет всем активным юзерам +1 ежедневный запрос и сбрасывает просроченные подписки. И это всё это работает атомарно внутри <b>database.py</b>:</p><h2>Умная корзина на APScheduler</h2><p>Когда дело дошло до монетизации, всплыли две проблемы:</p><p>Первая: юзер оплатил, но забыл нажать кнопку <b>«✅ Я оплатил»</b> в боте. Бот ждет, юзер ждет, товар не выдается, поддержка кипит.</p><p>Вторая: юзер сформировал счёт и передумал ("брошенная корзина").</p><p>Вместе с LLM я с нуля изучил <b>apscheduler </b>и убил двух зайцев фоновыми задачами. Теперь в <b>handlers/pay_handlers.py </b>при генерации ссылки на оплату я создаю две отложенные таски:</p><h4>Как это работает?</h4><p>Через 5 минут срабатывает <b>async def auto_check_payment()</b>, которая тихо стучится в робокассу. Если статус<b> success</b> - бот сам начисляет запросы на баланс и радует клиента. Если статус <b>pending</b> - таска умирает, и в дело вступает 30-минутная таска.</p><p>Но она не шлёт спам вслепую, а лезит в БД и проверяет 3 бизнес-правила:</p><p>1. <b>await db.has_successful_payment_recently</b> - Не купил ли он другой товар за последние 3 часа?</p><p>2. <b>await db.get_latest_invoice_id</b> - А это точно самый последний сгенерированный им счет?</p><p>3. <b>await db.can_send_agitation</b> - Не присылали ли мы ему агитацию недавно?</p><p>Если проверки пройдены, то юзер получает сообщение: <i>"⏳ Домашка сама себя не решит! Ты начал оформлять покупку, но оплата так и не прошла..."</i>. Это поднимает конверсию оплат.</p><h2>Финал</h2><p>Почему я не использую <b>Redis </b>для стейтов? Ответ банален: мой дешевый VPS имеет всего 1 гб оперативки. Пул <b>aiohttp</b>, In-Memory стейты и асинхронные таски и так жрут 70% RAM. Редис тупо не влезет.</p><p>Как говорится, <i>работает — не трогай.</i></p><p>Сейчас проект обзавелся сайтом-витриной и продолжает развиваться. В планах - искать и чинить новые баги. Перееду на более мощное железо, когда сервак начнет физически задыхаться.</p><p>Готов ответить на вопросы по архитектуре и послушать советы в комментариях \(^^)/</p><p><i>P.s. вот ссылка на первую статью о моём проекте: </i></p><p>P.s. Если кто-то хочет потестить вживую(не реклама), то юз бота в тг <a>@gdzshchelk_bot</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Своя self-hosted двухсерверная VPN-архитектура. Подробный путь разработки и ошибки, с которыми вы можете столкнуться</title>
      <link>https://tproger.ru/articles/svoya-self-hosted-dvuhservernaya-vpn-arhitektura-podrobnyj-put-r</link>
      <comments>https://tproger.ru/articles/svoya-self-hosted-dvuhservernaya-vpn-arhitektura-podrobnyj-put-r?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Роман Фролов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/svoya-self-hosted-dvuhservernaya-vpn-arhitektura-podrobnyj-put-r</guid>
      <description><![CDATA[<p>Проект представляет из себя быстрый способ воссоздать архитектуру состоящую из 2 серверов (локальный + удаленный) с определенными сервисами, которые решают специфические задачи. Проект сделан прежде всего для меня, а также для людей которые хотят свой готовый self-hosted сервер из коробки с полной системой обслуживания</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/svoya-self-hosted-dvuhservernaya-vpn-arhitektura-podrobnyj-put-r">Своя self-hosted двухсерверная VPN-архитектура. Подробный путь разработки и ошибки, с которыми вы можете столкнуться</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Ruby]]></category>
      <category><![CDATA[unix]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Музыка]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[DIY]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[VPN]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Redis]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[NFT]]></category>
      <category><![CDATA[Машин]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[DeFi]]></category>
      <category><![CDATA[Grafana]]></category>
      <category><![CDATA[VPS]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 26 Jul 2026 15:46:26 GMT</pubDate>
      <content:encoded><![CDATA[<p>Всё
 началось с того, что меня перестал устраивать мой подход к 
развертыванию личных сервисов. Я решил переписать всё с нуля. К тому же 
это был отличный повод получить новые навыки и попробовать инструменты, 
до которых давно не доходили руки.</p><p>Арендовать мощные VPS под 
ресурсоемкие задачи в текущих реалиях выходит неоправданно дорого. При 
этом дома у меня уже был выделенный неттоп (мини-ПК) с 16 ГБ оперативной
 памяти на базе энергоэффективного процессора Intel N95.</p><p>Пройдя 
путь от простых Bash-скриптов и сторонних туннелей до полностью 
автоматизированной инфраструктуры, я создал проект ServeHub-2. В этой 
статье я подробно разберу, как эволюционировала сеть проекта, почему 
декларативный подход победил императивный и с какими неочевидными багами
 пришлось столкнуться в процессе автоматизации.</p><h2>История настройки сетевой архитектуры</h2><h3>Использование Tuna</h3><p>В
 самом начале проекта я еще не думал о VPN как о способе пробития NAT и 
основе, на которой будет строиться вся система. Первое, к чему я пришел —
 сервис Tuna. Если кратко, это аналог Cloudflare Tunnel за условные 300 
рублей. У него очень приятный веб-интерфейс и невероятно простая 
настройка. Однако для полноценной независимой архитектуры он не подошел 
по двум причинам:</p><ul><li>Сервера Tuna находятся вне контроля пользователя.</li><li>На удаленном сервере нельзя развернуть свои сопутствующие сервисы.</li></ul><p>В целом сервис действительно удобный, но для моих задач он оказался слишком ограничивающим.</p><p>Вот
 пример конфига для tuna (все максимально просто, создаем контейнеры для
 ssh туннеля, чтобы был доступ ssh, а также основной http туннель с 
привязкой к nginx или любому другому прокси если такой есть):</p><h3>В поисках гибкости: тесты Pangolin и переход к FRP</h3><p>После Tuna я решил двигаться в сторону собственного контроля и попробовал Pangolin.
 Однако решение быстро отвалилось: для дешёвого сервера оно оказалось 
слишком «тяжёлым» и избыточным. Главные минусы — ощутимый оверхед по 
ресурсам и лишний слой принудительной веб-аутентификации перед самими 
сервисами. Это ломало нормальное взаимодействие с родными мобильными 
клиентами (вроде Element для Matrix или Bitwarden для паролей), где 
повторная авторизация в браузере просто не нужна.</p><p>На смену пришел FRP (Fast Reverse Proxy).
 Он выполнял ту же функцию проброса, но хостил я его уже на собственном 
арендованном VPS в режиме Layer 4 (TCP). Это дало абсолютную гибкость: 
внешний VPS не заглядывал внутрь пакетов и ничего не расшифровывал, а 
просто пересылал сырой поток домой. Кроме того, это отлично 
оптимизировало расходы: вместо 300 рублей за Tuna и ещё 300 рублей за 
отдельный VPN, я стал платить всего 500 рублей за один стойкий VPS, 
который мог настраивать как хочу. (к тому же можно было обойтись даже 
дешевле, так как VPS с 4 гб оперативки загружен всего лишь на 40%, 
процессор всего на 20%-40%)</p><p>FRP состоит из 2 конфигурационных 
файлов (один на удаленном сервере frp server, другой на локальном frp 
client), все также довольно просто, однако его можно использовать на 
разных слоях. У меня он брал трафик за стандартный TCP и передавал его 
на локальный сервер.</p><p>Также доп. фишка в том что основная 
конфигурация происходит именно в frpc, который, в свою очередь, передает
 часть настроек на frp на удаленном сервере.</p><p>frpc.toml:</p><p>frps.toml:</p><h3>Полноценный переезд на WireGuard (AmneziaWG) и 8 часов отладки</h3><p>Со временем архитектура эволюционировала в сторону полноценной VPN-сети на базе WireGuard, а точнее — его модификации AmneziaWG. Причин для этого шага было несколько:</p><ul><li>Безопасность: FRP всё же открывал внутренние ресурсы в публичный интернет, оставляя их доступными для сканеров портов.</li><li>Удобство маршрутизации:
 Все участники сети стали равноправными узлами в одной виртуальной 
локальной подсети. Больше не нужно было настраивать постоянные 
односторонние пробросы.</li><li>Дополнительный бонус:
 Поскольку удаленный VPS был куплен в Нидерландах, через этот же VPN я 
автоматически получил безопасный доступ ко всем зарубежным ресурсам.</li></ul><p>Для реализации схемы на удаленном VPS был развернут контейнер wg-easy с поддержкой AmneziaWG, а на домашнем мини-ПК — клиентский контейнер Amnezia (сборка из Dockerfile с использованием amnezia-tools  и модулем ядра хоста).</p><p>И
 именно здесь я поймал самый изнурительный баг проекта. После 
развертывания трафик упорно шёл только в одну сторону. Часов 8 ушло на 
диагностику iptables, маршрутов и чтение зарубежных форумов (что 
бесполезно, учитывая специфику наших блокировок). Оказалось, провайдер 
просто дропал обратный трафик стандартного WireGuard, так как пакеты шли
 без маскировки. Причина крылась в docker-compose.yml: у меня было прописано image: ghcr.io/wg-easy/wg-easy:latest. Как выяснилось, тег latest  на Docker Hub намертво прилип к старой 14-й версии, а поддержка параметров AmneziaWG появилась только в ветке 15.x. Изменение тега на конкретную версию (15.3) решило проблему за секунду.</p><p>Благодаря
 переходу конфигурация получилась максимально простой, основные отличия 
от стандартной документации выделил в коде: (в основном то, на что 
пришлось долго рыть информацию)</p><h3>Настройка Nginx</h3><p>Чтобы
 сервисы были доступны исключительно внутри подсети VPN, я задействовал 
Nginx. Доступ к приложениям был жестко ограничен на уровне конфигурации —
 веб-сервер принимает запросы только из диапазона IP-адресов 10.8.0.0/24. Любые попытки постучаться на сервер из внешнего интернета без активного VPN-туннеля автоматически сбрасываются Nginx.</p><p>Логика
 распределения завязана на proxy-протоколе: Nginx на удаленном VPS 
выступает основным входным узлом, принимает зашифрованный трафик, 
заворачивает его в заголовки с реальным IP-адресом клиента и через 
туннель перекидывает на локальный Nginx домашнего сервера. Локальный 
веб-сервер уже сам расшифровывает SSL и распределяет трафик по конечным 
Docker-контейнерам, сохраняя реальные IP в логах безопасности.</p><p>Вставлю
 один кусок кода из nginx на удаленной машине для примера, так все 
остальное примерно похоже (конфиги использовались в виде .template):</p><h3>SSL-сертификаты</h3><p>Для получения валидных SSL-сертификатов я настроил работу через автоматический Certbot по challenge-валидации DNS-01 c API Webnames. Сам домен привязан к внутреннему IP-адресу 10.8.0.1.
 Проверка через DNS позволила выпустить единый wildcard-сертификат на 
весь домен и его поддомены без необходимости держать открытым 80-й порт 
веб-сервера наружу.</p><p>Уточню, что certbot запускается автоматически 
во время выполнения Ansible плейбука, поэтому самому кроме указания 
переменных ничего делать не нужно.</p><p>В
 итоге получилась схема, при которой все сервисы доступны по красивым 
доменным именам с HTTPS, но абсолютно невидимы для внешнего интернета.</p><p>Вот настройка certbot:</p><h2>История софта</h2><p>Параллельно
 с сетевой структурой развивался и сам набор приложений. Изначально я 
хотел собрать в одном месте утилиты, которыми пользуюсь каждый день, но в
 процессе селфхостинга быстро понимаешь: нельзя просто накидать 
контейнеров и надеяться, что мини-ПК справится, а конфигурационные файлы
 не превратятся в кашу.</p><h3>Первый стек и оптимизация</h3><p>Первыми на домашнем сервере прижились медиа-сервисы: Navidrome для стриминга музыки и Audiobookshelf
 для аудиокниг и подкастов. Они легковесные, имеют отличные мобильные 
клиенты с синхронизацией прогресса и полностью закрывают мои 
потребности. Позже к ним добавился Nextcloud как единое независимое облако для файлов, контактов и семейных документов.</p><p>Затем встал вопрос безопасного хранения паролей. Сначала я смотрел в сторону оригинального Bitwarden, но в итоге я выбрал Vaultwarden
 — альтернативный сервер на Rust, полностью совместимый с API Bitwarden.
 Он потребляет считанные мегабайты оперативной памяти и работает 
идеально. Дополнительно для удобства управления всей этой распределенной
 Docker-инфраструктурой в локальный стек был добавлен Portainer. (+ Portainer Agent на удаленный сервер)</p><p>Из интересных моментов, где мне пришлось немного больше возиться, чем с остальными сервисами это nextcloud настройка:</p><h3>Ошибки проектирования: почему я удалил Matrix (Synapse)</h3><p>Не все решения прошли проверку временем. На этапе использования Tuna и FRP я развернул сервер Matrix (Synapse)
 для защищенного обмена сообщениями. Мне казалось это крутой идеей, но 
когда я окончательно перешел на AmneziaWG, целесообразность мессенджера 
внутри закрытого туннеля сошла на нет.</p><p>Synapse требовал слишком 
много ресурсов, впустую расходовал оперативку домашнего ПК и усложнял 
конфиг Nginx. При этом реальной пользы для семьи он не приносил. Для 
критических алертов инфраструктуры и повседневного общения проще и 
эффективнее оказалось использовать Telegram. (плюс алертинг настроен 
именно через него) В итоге я полностью выпилил Synapse из стека, 
освободив ресурсы.</p><p>Вместо него я добавил в связку к wg-easy локальный AdGuard Home.
 Теперь он работает прямо внутри VPN-сети: очищает весь трафик от 
рекламы и трекеров на лету, кэширует DNS-запросы и не дает истории 
веб-серфинга улетать внешним провайдерам.</p><p>Основной проблемой с 
которой я столкнулся при использовании AdGuard Home, так это то что я 
так и не понял как заставить использовать AmneziaVPN клиент AdGuard как 
основной DNS, при этом AmneziaWG работает прекрасно. Как я понимаю дело в
 том что AmneziaWG работает намного проще на уровне ip и у него нету 
никаких доп фильтров, настроек и подобного, поэтому он просто берет 
данные из конфига.</p><h3>От костылей на Bash к декларативному Ansible</h3><p>Весь
 стек на обоих серверах разворачивался через bash скрипты, что было уж 
очень плохо с точки зрения идемпотентности. Во первых из-за bash мне 
постоянно приходилось очищать сервера, так как нормальных проверок у 
меня не было и писать я их не хотел, а также было много костылей с 
импортом переменных, записями в файлы и подобным.</p><p>Так я пришел к декларативному подходу и Ansible.
 Теперь вся конфигурация описывается в виде плейбуков и ролей, 
отражающих конечное желаемое состояние серверов. Конфиденциальные данные
 перенесены в файл secrets.yml, а хрупкие конструкции 
автоматизированы через шаблоны Jinja2. Проект стал идемпотентным: если 
шаги уже выполнены, Ansible их просто пропускает.</p><p>В итоге 
получилось несколько yaml файлов для стандартной настройки системы 
(bootstrap_os.yml) и для настройки каждого из хостов (setup_local.yml и 
setup_remote.yml). В итоге теперь все что нужно чтобы полностью с нуля 
развернуть проект - скачать Ansible, несколько других зависимостей на 
свой рабочий пк и запустить один manage_deploy.sh, в котором можно будет
 выбрать сценарий как будет вести себя Ansible и спокойно дождаться 
разворачивания сервисов.</p><p>Также благодаря Ansible я удобно 
реализовал переносимость проекта. Так как я решил не использовать тома 
docker, и вместо этого храню все в папках, чтобы перенести старые данные
 проекта нужно просто скопировать папку apps-data и положить ее в нужное
 место и все само заработает после повторного развертывания проекта. В 
Ansible выделяется отдельная пауза для этого.</p><p>Вот пример основного плейбука deploy.yml:</p><h3>Тестирование мультидистрибутивности с помощью Vagrant</h3><p>Проект
 изначально затачивался под работу на трех дистрибутивах: Ubuntu, Debian
 и Arch Linux. Тестировать Ansible-плейбуки прямо на рабочей локальной 
машине (в моем случае — EndeavourOS) слишком рискованно, а создавать 
виртуальные машины руками — долго и неудобно.</p><p>Решением стал Vagrant,
 позволяющий за пару минут развернуть чистые ОС в VirtualBox из готовых 
образов. Но в процессе настройки мультивендорного стенда в режиме 
сетевого моста (public_network) всплыли две критические проблемы:</p><ol><li>Конфликт DNS:
 По умолчанию Vagrant создает NAT-интерфейс для управления нодой. При 
включении второго (публичного) интерфейса для локальной сети ломался 
дефолтный DNS-резолвер. Проблему пришлось решать принудительной очисткой
 и перезаписью файла /etc/resolv.conf через inline-скрипт автоматизации Vagrant.</li><li>Проблема с GRUB на Debian: В используемом базовом образе generic/debian12
 конфигурация GRUB сохраняла жесткую привязку к конкретному имени диска 
из окружения сборщика. При повторном развертывании плейбуков на тестовом
 стенде это приводило к сбоям загрузчика. Чтобы автоматизировать 
очистку, пришлось внедрить скрипт, который на лету определяет имя 
системного диска через lsblk и автоматически передает правильные параметры в загрузчик через утилиту debconf-set-selections.</li></ol><p>Вот код Vagrantfile: (в node.vm.provision происходит основное решение ошибок)</p><p>Надежная система бэкапов на базе BorgmaticДля создания резервных копий я внедрил Borgmatic
 (удобную надстройку над дедуплицирующим инструментом Borg Backup). Весь
 процесс автоматизирован с помощью связки системных юнитов borgmatic.service и borgmatic.timer. В бэкап уходят две ключевые директории: apps-data (конфигурации приложений и баз данных) и PersonalData (медиатека: музыка, книги, подкасты, файлы Nextcloud).</p><p>Развертывание
 системы бэкапов полностью берет на себя Ansible. Мне достаточно указать
 UUID внешнего жесткого диска — скрипт сам проверит его наличие в 
системе, примонтирует в нужную директорию, создаст зашифрованный 
репозиторий и настроит политику ротации (хранение 7 ежедневных, 4 
еженедельных и 6 ежемесячных копий). Также в Prometheus выведен 
мониторинг самого репозитория .borg для отслеживания его размера и статуса успешности архивации.</p><p>Главная
 проблема при бэкапе работающих Docker-контейнеров — риск скопировать 
базу данных в «битом» или неконсистентном состоянии, если в момент 
создания архива в нее шла активная запись. Чтобы решить эту проблему, я 
задействовал механизм хуков в конфигурации Borgmatic.</p><p>Перед началом резервного копирования автоматически срабатывает команда остановки контейнеров проекта (docker-compose down),
 а после успешного завершения (или в случае возникновения непредвиденной
 ошибки) контейнеры автоматически поднимаются обратно в фоновом режиме. 
Для удобного просмотра архивов и быстрого восстановления файлов я 
развернул веб-интерфейс Borg UI.</p><p>Конфигурация borgmatic: (использую как Jinja2 шаблон, чтобы Ansible в плейбуках сам подставил переменные)</p><h2>Наблюдаемость (Observability) уровня Enterprise</h2><p>В последних релизах (v1.2.0 и v1.3.0) фокус проекта сместился на мониторинг и работу с логами.</p><h3>Эволюция алертинга и переход на Gatus</h3><p>Изначально для мониторинга доступности я смотрел на Uptime Kuma, но отказался из-за отсутствия удобной декларативной настройки через конфиги. Затем я развернул связку Blackbox Exporter и Alertmanager
 с уведомлениями в Matrix. Но тут крылась логическая несостыковка: весь 
алертинг был завязан на локальном ПК, и в случае его аппаратного отказа я
 бы просто лишился уведомлений.</p><p>Тогда я решил вернуть Uptime Kuma,
 но развернуть его на удаленном VPS в качестве внешнего «сторожа» и 
автоматизировать его настройку через Python-скрипт с библиотекой uptime-kuma-api. Но и тут ждали «грабли» — библиотека не обновлялась три года и намертво ломалась на свежих версиях Kuma.</p><p>В итоге идеальным решением стал Gatus.
 Он изначально проектировался под управление через YAML-конфиги и 
поддерживает отправку алертов, если сервер не отвечает. Из-за специфики 
фронтенда Gatus (он не умеет работать из подкаталога типа /gatus), мне пришлось перенести его и wg-easy на полноценные субдомены gatus. и wireguard.</p><p>Для Gatus получился простой конфиг:</p><p>Для мониторинга аппаратных ресурсов удаленного и локального серверов была развернута связка node-exporter + cAdvisor. Все уведомления теперь приходят мгновенно в Telegram-бота. Чтобы 
избежать лавины одинаковых сообщений (например, при перезагрузке хоста),
 в Alertmanager настроена жесткая группировка и дедупликация событий. 
Также добавлен экспортер для AdGuard Home, выводящий статистику 
заблокированных запросов в Grafana.</p><h3>Централизованные логи: Loki + Grafana Alloy</h3><p>В релизе v1.3.0 в стек была добавлена централизованная система сбора логов Loki. Вместо устаревшего Promtail в качестве агента сбора я применил Grafana Alloy.</p><p>Он
 эффективно собирает логи со всех запущенных Docker-контейнеров, парсит 
их и передает в Loki. Теперь вся история событий, ошибок веб-сервера 
Nginx или падений внутренних приложений доступна в едином интерфейсе 
Grafana с возможностью удобной фильтрации через LogQL, что значительно 
упрощает отладку.</p><p>Конфиг Loki:</p><p>Конфиг Grafana Alloy: (локальный конфиг)</p><h2>Интерфейс: переход на Homepage</h2><p>Изначально для 
домашней страницы я написал кастомную минималистичную HTML-панель с 
Glassmorphism-дизайном. Выглядело это красиво, но добавлять новые 
сервисы вручную через постоянную правку исходного кода было крайне 
неудобно.</p><figure><img src="https://media.tproger.ru/user-uploads/139471/2026-07-15/8a8f2752-8aac-4aa5-898e-98affd01cdff.webp" alt="" /><figcaption>HTML + CSS</figcaption></figure><p>В итоге я заменил самописную страницу на полноценный комьюнити-проект Homepage.
 Это дало некоторую гибкость: вся панель настраивается через простые 
YAML-файлы и поддерживает встроенные виджеты интеграции. Пока что она 
простенькая, но возможно в будущем сделаю что-то более продвинутое.</p><figure><img src="https://media.tproger.ru/user-uploads/139471/2026-07-15/90c65d4a-1310-4a30-b1ad-9e4d3083959d.webp" alt="" /><figcaption>Homepage</figcaption></figure><h2>Заключение</h2><p>Постарался
 подробно рассказать о структуре проекта и как я к этому пришел, очень 
много я не добавил, если пост зайдет, то я обязательно более подробно 
пройдусь по некоторым моментам: как я настраивал Matrix и на каком 
моменте я решил его убрать, как собирал локальный amnezia 
контейнер-клиент, что нового я добавил в релизе 1.4.0 и другое.</p><p>Также
 я перешел с manage_deploy.sh на отдельный GUI клиент, который 
будет полностью автоматизировать процесс подготовки к deploy. (написан на Go Wails). Про это тоже возможно сделаю статью.</p><p>Вся кодовая база проекта, подробная документация, инструкции по развертыванию открыты и доступны для сообщества:</p><p>🔗 GitHub-репозиторий: <a href="https://github.com/canntstand/ServeHub-2" rel="noopener noreferrer nofollow">https://github.com/canntstand/ServeHub-2</a></p><p>Это
 моя первая статья на этом сайте и в то же время первый личный проект, которому я 
отдал так много времени (3 месяца). Буду рад вашему фидбеку в 
комментариях!</p>]]></content:encoded>
    </item>
    <item>
      <title>Один фреймворк для Android и iOS: звучит круто, работает?  Нет</title>
      <link>https://tproger.ru/articles/odin-frejmvork-dlya-android-i-ios-zvuchit-kruto-rabotaet-net</link>
      <comments>https://tproger.ru/articles/odin-frejmvork-dlya-android-i-ios-zvuchit-kruto-rabotaet-net?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Роман Новохацкий]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/odin-frejmvork-dlya-android-i-ios-zvuchit-kruto-rabotaet-net</guid>
      <description><![CDATA[<p>Почему единый кроссплатформенный фреймворк для автотестов Android и iOS не работает на практике и когда стоит разделить его на два отдельных проекта.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/odin-frejmvork-dlya-android-i-ios-zvuchit-kruto-rabotaet-net">Один фреймворк для Android и iOS: звучит круто, работает?  Нет</a>»</p>]]></description>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Распознавание]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Swift]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[GitLab]]></category>
      <category><![CDATA[Kotlin]]></category>
      <category><![CDATA[Финтех]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Инфраструктура]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 23 Jul 2026 13:20:45 GMT</pubDate>
      <content:encoded><![CDATA[<p>Я сделал автотесты на Appium для Android и iOS в одном проекте. Один репозиторий, общий фреймворк, общие Page Objects, общие steps. Красота.</p><p>Потом проект вырос, в команду пришли ещё люди, и стало понятно: этот красивый монолит пора разделять.</p><p>Это было взвешенное решение. В какой-то момент общий фреймворк превратился в поле мерж-конфликтов, где ты уже не тесты пишешь, а разбираешься, кто чей page object сломал и почему Android отвалился после правки для iOS.</p><p>Appium тут ни при чём, как и скорость тестов. Проблема была в архитектуре: один общий слой для двух разных платформ начал мешать сильнее, чем помогать.</p><p>Как говорил один мой коллега, перефразируя классическое “вам шашечки или ехать”:</p><blockquote>Ты сюда страдать пришёл или тесты писать?</blockquote><p>После этого решение разделить Android и iOS на два проекта стало очевидным.</p><p>Сейчас у меня два отдельных проекта: mb-android-tests и mb-ios-tests. И знаете что? Это лучшее архитектурное решение за всё время на этом проекте. Серьёзно.</p><p><b>Контекст: что за проект и почему это важно</b></p><p>Финтех. Нативное приложение. Отдельные кодовые базы, Kotlin на Android, Swift на iOS. И UI там не «три кнопки и список», формы с десятками полей, кастомные контролы, WebView-вставки, платежи, валютные операции, бюджетные переводы. Ну вы поняли.</p><p>Стек: Java 21, TestNG, Appium 2.x, Selenide, Allure, Maven. CI на GitLab, крутится на Mac Mini. 5 Android-эмуляторов, 4 iOS-симулятора, 9 Appium-серверов — по одному на устройство.</p><p>Но это сейчас. А начиналось всё с одного жирного монолита.</p><p><b>Старый проект: 8 модулей и конструктор-монстр</b></p><figure><img src="https://media.tproger.ru/user-uploads/139426/2026-07-07/54be52bb-7e50-4e11-b624-86cc1ce0766b.webp" alt="" /></figure><p>Идея была «как в книжке»: один репозиторий, модульная структура, переиспользование. DRY во все поля. Ну а чё, красиво же.</p><p>8 модулей. Один mvn clean install. Все зависят от mobile-automation-framework, в котором живут DriverFactory, BaseTest, общие Page Objects и слой Steps.</p><p>А DriverFactory принимал <b>11 параметров</b>. Одиннадцать, Карл.</p><p>Половина нужна только Android, другая только iOS. Но метод один. Потому что так более по программистцки, как написано в каждой второй статье про архитектуру автотестов.</p><p>Когда я работал один, было норм. Ты сам знаешь, от куда что идет.</p><p>А потом пришли люди.</p><p><b>Почему с людьми всё навернулось</b></p><p><b>Мерж-конфликты каждый божий день</b></p><p>Вот конкретная ситуация. Один человек правит LoginPage в общем фреймворке, добавляет метод для iOS, меняет локатор. Второй в тот же момент рефакторит этот же LoginPage под новую версию Android-приложения.</p><p>Мерж. Конфликт.</p><p>И тут начинается самое весёлое: какой локатор правильный? Для Android? Для iOS? Для обоих? Кто будет разбираться? Тот, кто мёрджит? А он вообще контекст понимает?</p><p>Это не единичный случай. Это было <b>каждый</b> день. Потому что mobile-automation-framework получился общим модулем, от которого зависят все. И все туда лезут. Постоянно.</p><figure><img src="https://media.tproger.ru/user-uploads/139426/2026-07-07/3866002d-86c5-4894-a441-2522f48dcab1.webp" alt="" /></figure><p><b>Обновление одной библиотеки = блокировка всех</b></p><p>Решил обновить java-client с 7.x на 8.x. Нормальное желание — API поменялся, MobileElement удалили, capabilities переехали на типизированные Options.</p><p>Вот что произошло в реальности:</p><ol><li>Меняю версию в parent pom.xml</li><li>MobileElement удалён → compilation error в DriverFactory, во всех DriverManager’ах</li><li>DesiredCapabilities → UiAutomator2Options / XCUITestOptions → переписываю все менеджеры</li><li>selenide-appium 1.x несовместим с java-client 8.x → обновляю до 2.x</li><li>selenide-appium 2.x требует Selenide 6.x → обновляю Selenide</li><li>Selenide 6.x ломает API page objects → переписываю page objects во всех модулях</li><li>А Selenide 6.x ещё и Java 8 не поддерживает → обновляю Java</li></ol><p>Одна библиотека.</p><p>Задача «обновить одну библиотеку» превратилась в 50+ файлов, 4-5 каскадных обновлений, 2-3 недели работы. И всё это время develop нестабилен. Все заблокированы. Тесты не запускаются.</p><p>Две недели.</p><p>Из-за одной строчки в pom.xml.</p><p><b>Page Objects с if/else — это два page object в одном файле</b></p><p>Общие Page Objects звучат красиво на бумаге: пишем один раз, используем для обеих платформ. А на практике…</p><p>Это не page object. Это два page objects, запиханных в один файл через if/else. И так в каждом методе.</p><p>А сверху ещё слой Steps. Обёртки над page objects «для читаемости». И в steps тоже if (platform), потому что логика взаимодействия разная. На Android ты скроллишь через UiScrollable семантически, «прокрути до элемента с текстом X». На iOS координатами, «двигай палец из точки A в точку B». Один метод в steps, а внутри два разных мира.</p><p>В какой-то момент ловишь себя на мысли: я же не тесты пишу. Я подгоняю pages и steps под две платформы, чтобы фреймворк не развалился. Это уже не автоматизация тестирования, это поддержка фреймворка ради поддержки фреймворка.</p><p><b>Каждый работает в своём темпе и все друг другу мешают</b></p><p>У одного задача покрыть тестами новый экран на Android. У второго пофиксить падающие тесты на iOS. У третьего добавить тестовые данные.</p><p>Все трое лезут в mobile-automation-framework. Все трое меняют pom.xml, BaseTest, page objects. Каждый в своей ветке.</p><p>А потом мёрдж.</p><p><b>Технические причины, которые добили окончательно</b></p><p>Ладно, человеческий фактор. Но были и чисто технические штуки, которые окончательно убедили меня, что кроссплатформа тут бессмысленна.</p><p><b>Локаторы: работай с тем, что дают</b></p><p>Сразу скажу то, о чём мало кто пишет в статьях: в мобильной автоматизации ты работаешь с тем, что дают, а не с тем, что хотелось бы.</p><p>В теории есть AccessibilityID единый локатор для обеих платформ. Звучит хорошо. А на практике? Попробуй попросить мобильных разработчиков расставить одинаковые accessibility-идентификаторы на сотнях экранов. На Kotlin и Swift. Одновременно. Они тебя вежливо пошлют, но скорее всего не вежливо. И будут правы, у них свои спринты, свои дедлайны, и твои автотесты в их приоритетах где-то между «поправить тень у кнопки» и «никогда».</p><p>Так что реальный выбор:</p><p><b>XPath -</b> работает, но на iOS может быть тормозным. На Android через UiSelector быстро, нативно, надёжно. На iOS через NSPredicate тоже ок. А «универсальные» XPath типа //*[@text='Войти' or @label='Войти']  это путь к боли, потому что Page Source на двух платформах два совершенно разных XML-дерева.</p><p><b>Координаты -</b> костыль? Да. Но иногда единственный вариант. Когда у тебя кастомный контрол без accessibility-свойств, а разработчик говорит «это декоративный элемент», ты либо тыкаешь по координатам, либо не тестируешь.</p><p><b>OpenCV</b> - есть ещё вариант с распознаванием элементов по картинке. Для некоторых кейсов реально выручает. Но это отдельная тема на целую статью, может напишу потом.</p><p>Суть в том, что «напиши один локатор и работай на двух платформах» это миф. Page Source на Android это android.widget.Button с resource-id. На iOS  XCUIElementTypeButton с name и label. Разные типы элементов, разные атрибуты, разная глубина вложенности. Разные миры.</p><p><b>StaleElementReferenceException — «подарок» от iOS</b></p><p>Android рендерит UI через Choreographer синхронно с VSYNC. Элемент появился → стабилен → кликаем.</p><p>iOS рендерит через CoreAnimation с неявными анимациями. Элемент есть в дереве, но ещё анимируется. Формально кликабелен, фактически хрен.</p><p>Стандартный WebDriverWait с elementToBeClickable это не ловит. Элемент «кликабелен» по мнению Appium wait завершается. А потом click() падает, потому что DOM изменился между вызовами.</p><p>На Android этой проблемы нет вообще. Тот же тест, тот же wait, тот же код зелёный на Android, красный на iOS. Один и тот же метод, два разных результата. И это не баг это фундаментальное различие платформ.</p><p>Кастомные wait-стратегии для iOS отличаются от Android принципиально. Пихать их в один фреймворк строить leaky abstraction, которая протекает на каждом шаге.</p><p><b>Жесты — два разных мира</b></p><p>Свайп вниз на Android:</p><p>Свайп вниз на iOS:</p><p>Чувствуете разницу? И даже длительность свайпа важна: на Android 200мс это нормальный скролл. На iOS 200мс это fling, и элемент улетает за экран.</p><p>«Кроссплатформенная» обёртка для скролла функция на 40 строк с двумя ветками if (platform), внутри каждой и ещё if для performSwipeDown() vs performSwipeUp(). На 50+ экранах таких обёрток, которых десятки.</p><p>И каждая место для бага.</p><p><b>Решение: разделяй и властвуй</b></p><p>Решение было болезненным. Я реально откладывал, потому что казалось, что это шаг назад. Дублирование кода, нарушение DRY, всё такое. Мозг сопротивлялся.</p><p>А потом я просто сел и разделил.</p><p>Никаких общих page objects. Никаких общих steps. Никакого общего DriverFactory с 11 параметрами. Каждый проект со своим pom.xml, свои зависимости, свой BaseTest, свои локаторы.</p><p>Что осталось общего: подход к структуре (Maven + TestNG + Allure), CI-шаблоны, принципы организации. Но не код. Код полностью раздельный.</p><p><b>Что поменялось на практике</b></p><p>В Android-проекте DriverManager типизирован под AndroidDriver. В iOS под IOSDriver. Не AppiumDriver&lt;MobileElement&gt; с кастами и проверками, а конкретный тип для конкретной платформы. IDE подсказывает только релевантные методы. Компилятор ловит ошибки на этапе сборки, а не в рантайме.</p><p>BaseTest принимает ровно те параметры, которые нужны. Android: deviceName, platformVersion, udid, appPackage, appActivity, systemPort, serverUrl, appPath — 8 штук, все релевантные. iOS: deviceName, platformVersion, udid, appPath, serverUrl, wdaLocalPort — 6. Никаких @Optional("systemPort") со строкой “systemPort” в качестве дефолта.</p><p><b>А мерж-конфликты?</b></p><p>Когда один человек работает в mb-android-tests, а второй в mb-ios-tests то они <b>вообще</b> не пересекаются. Разные репозитории. Конфликт невозможен физически.</p><p>Обновление java-client в Android-проекте не затрагивает iOS. Хочешь обновить, обновляй. iOS продолжает работать на старой версии.</p><p>Добавить новый параметр для iOS? Меняешь BaseTest и testng.xml в iOS-проекте. Android даже не узнает.</p><p>Это прям кайф.</p><p><b>А как же дублирование кода?!</b></p><p>Конечно, конечно. Первый вопрос, который задают: «Но ведь ты пишешь тесты дважды!»</p><p>Нет.</p><p>Я пишу каждый тест один раз и без костылей. Без if (platform) в каждом методе. Да, для одного и того же экрана есть два теста, один для Android, один для iOS. Но каждый из них чистый, понятный, заточенный под свою платформу.</p><p>В старом варианте я тоже «писал один раз», а потом тратил столько же времени на поддержку if/else, мерж-конфликты и каскадные обновления. «Экономия» на создании оборачивалась переплатой на поддержке. С процентами.</p><p><b>Когда кроссплатформа всё-таки ок</b></p><p>Я не топлю за то, что кроссплатформенный фреймворк абсолютное зло. Есть ситуации, где он работает:</p><p>Приложение простое, пара экранов, стандартные контролы, минимум кастомного UI.</p><p>UI реально идентичен на обеих платформах. Бывает, наверное.</p><p>Команда из одиного человека. Сам пишешь, сам мёрджишь, сам разруливаешь. Голова справляется.</p><p>Минимум жестов. Нет сложных свайпов, drag-and-drop, pinch-to-zoom.</p><p>Если у тебя финтех, банк, enterprise-приложение с сотнями экранов, кастомными контролами и тремя+ QA, то два проекта дешевле. Не в строках кода, а во времени. В нервах. В часах, потраченных на мерж-конфликты вместо написания тестов.</p><p><b>Итого</b></p><p>Два проекта это не шаг назад и не двойная работа. Со стороны может выглядеть именно так, но на практике ты пишешь каждый тест один раз, под конкретную платформу, без лишних компромиссов. Потом поддерживаешь его без постоянных мерж конфликтов, каскадных обновлений и if/else в каждом втором методе.</p><p>Кроссплатформенный фреймворк на Appium для сложного нативного приложения часто оказывается иллюзией экономии.</p><p>В следующей статье покажу, как у нас устроена инфраструктура для 9 параллельных устройств на одном Mac Mini: порты, bash скрипты, Appium серверы и workaround’ы, которых нет в документации. Спойлер: там тоже всё не совсем как в гайдах.</p>]]></content:encoded>
    </item>
    <item>
      <title>eNPS и ESI: как считают вашу удовлетворенность в компаниях</title>
      <link>https://tproger.ru/articles/enps-i-esi-kak-schitayut-vawu-udovletvorennost-v-kompaniyah</link>
      <comments>https://tproger.ru/articles/enps-i-esi-kak-schitayut-vawu-udovletvorennost-v-kompaniyah?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дима Дмитриев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/enps-i-esi-kak-schitayut-vawu-udovletvorennost-v-kompaniyah</guid>
      <description><![CDATA[<p>Разбираем eNPS и ESI: формулы расчёта, как читать диапазоны, зачем сравнивать с текучестью и что делать после опроса, чтобы он имел смысл.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/enps-i-esi-kak-schitayut-vawu-udovletvorennost-v-kompaniyah">eNPS и ESI: как считают вашу удовлетворенность в компаниях</a>»</p>]]></description>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 17 Jul 2026 05:00:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Когда вы в последний раз проходили опрос об удовлетворенности своей командой? Ваши ответы собрали, оформили в презентацию, показали руководству — и на этом обычно всё. Слайды утверждены, а в процессах ничего не поменялось.</p><p>Дело не в вопросах от HR и не в том, как часто вас дергают опросами 360. А в том, что удовлетворенность измеряют как настроение, хотя это метрика с формулой и порогом, после которого принимают решения.</p><h2>Что измеряет eNPS и как читать диапазоны</h2><p>eNPS строится на одном вопросе: готов ли сотрудник порекомендовать компанию знакомым как место работы. Ответ дают по шкале от 0 до 10, и на основе балла респондента раскладывают по трем группам.</p><ul><li>Самые критичные сотрудники обычно ставят от 0 до 6 баллов. Это сотрудники, у которых накопилось достаточно претензий к условиям, процессам или руководству, чтобы транслировать недовольство за пределы компании.</li><li>Пассивные сотрудники ставят 7 или 8 баллов. Явного негатива нет, но нет и мотивации защищать бренд работодателя перед кем-либо.</li><li>Амбассадоры (промоутеры) компании ставят 9 или 10 баллов и готовы рекомендовать компанию без каких-либо противоречий.</li></ul><p>Формула расчета: доля промоутеров минус доля критиков, в процентах. Результат укладывается в диапазон от -100 до +100.</p><p>Интерпретация результата зависит от диапазона, в который попало итоговое число:</p><ul><li>10-30 — компания на начальном этапе формирования культуры, точек роста больше, чем закрытых вопросов.</li><li>30-70 — рабочая среда с понятным вектором развития, где ценности компании транслируются в реальные процессы, а не остаются декларацией.</li><li>Выше 70 — редкий результат, который означает высокий уровень внутренней лояльности к месту работы.</li></ul><p>Но сам показатель eNPS мало о чём говорит. Например, уровень eNPS 25 в компании после большой перестройки процессов может означать, что команда постепенно привыкает к изменениям. Тот же показатель 25 в команде, где давно ничего не менялось, может указывать на накопившиеся проблемы.</p><p>Поэтому один опрос нельзя использовать для окончательных выводов. Он показывает настроение сотрудников только в конкретный момент. Чтобы увидеть реальную картину, нужно проводить опрос регулярно и сравнивать результаты по кварталам.</p><h2>Чем ESI отличается от eNPS</h2><p>eNPS показывает общую лояльность сотрудников к компании, а ESI оценивает конкретные условия работы:</p><ul><li>оплату;</li><li>нагрузку;</li><li>качество обратной связи от руководителя;</li><li>состояние рабочих инструментов.</li></ul><p>По каждой группе вопросов видно, где именно возникают проблемы в опыте сотрудника.</p><p>У ESI нет единого целевого значения — эта метрика нужна для диагностики: она показывает отдельные проблемные зоны, а не даёт общую оценку компании.</p><p>Поэтому ESI редко измеряют отдельным опросом. Вопросы обычно добавляют в eNPS-анкету. В результате HR получает один отчёт с двумя уровнями данных:</p><ol><li>общий уровень лояльности;</li><li>оценки факторов, которые на него влияют.</li></ol><h3>Зачем сравнивать результаты с текучестью</h3><p>После опроса компания сравнивает динамику eNPS с текучестью по департаментам. Например, общий eNPS может расти, а текучесть в одном отделе оставаться на прежнем уровне. Это значит, что проблема находится внутри конкретной команды или связана с её руководителем.</p><p>В такой ситуации общие программы лояльности и корпоративные тренинги проблему не решат. Нужна точечная работа: разговор с руководителем отдела и разбор его управленческих практик.</p><p>Дальше разберём, из чего состоит рабочий опрос.</p><h2>Из чего состоит рабочий опрос</h2><p>Готовый шаблон можно взять по первой ссылке из поиска за основу, но сам опрос нужно собирать под задачи компании. У каждого вопроса должны быть три свойства:</p><ul><li>простая и понятная формулировка;</li><li>один конкретный аспект работы;</li><li>чёткая шкала ответа.</li></ul><p>Подойдут пятибалльная система или два варианта: «да» и «нет». Ответы вроде «скорее да», «иногда» и «возможно» усложняют анализ, потому что сотрудники понимают их по-разному.</p><h3>Какие темы включить</h3><p>Опрос обычно делят на несколько блоков:</p><ol><li>Оплата, грейды и дополнительные льготы.</li><li>Работа с руководителем: постановка задач, обратная связь и поддержка.</li><li>Содержание работы: интерес к задачам, нагрузка и самостоятельность.</li><li>Карьерный рост и развитие внутри компании.</li><li>Команда и атмосфера.</li><li>Корпоративная культура и мероприятия.</li><li>Условия труда: офис, удалённая работа, доступы и ИТ-поддержка.</li></ol><p>К каждому блоку или в конец анкеты можно добавить поле для комментария, делать его обязательным не нужно, но сотрудники, которым есть что сказать, его обычно заполняют.</p><p>Помните, что опрос должен быть анонимным. Если сотрудник понимает, что ответ можно связать с его именем, он с меньшей вероятностью напишет о проблемах с руководителем или рабочими процессами. В итоге компания получит нейтральные ответы вместо конкретных выводов.</p><h2>Периодичность: годовой опрос и пульс-опросы</h2><p>Большой опрос на eNPS обычно проводят раз в год — он охватывает всю компанию, показывает базовый уровень показателя и помогает найти системные проблемы, которые накапливались несколько месяцев.</p><p>Внеплановый опрос запускают после крупных изменений:</p><ul><li>слияния компаний;</li><li>смены стратегии;</li><li>перестройки процессов или пакета льгот.</li></ul><p>В таких ситуациях прошлые данные уже могут не отражать текущее состояние команды.</p><h3>Для чего нужны пульс-опросы</h3><p>Пульс-опрос состоит из двух-трёх вопросов с готовыми вариантами ответа и необязательного поля для комментария. Такой опрос помогает быстро проверить реакцию сотрудников на конкретное изменение, например:</p><ul><li>новую систему льгот;</li><li>переход на гибкий график;</li><li>обновление внутреннего инструмента.</li></ul><p>Пульс-опросы подходят для оперативной проверки, но их нельзя запускать слишком часто без причины. Поэтому, их стоит проводить только тогда, когда компания готова разбирать результаты и менять процессы после каждого цикла.</p><h2>Что происходит после опроса</h2><p>Как мы уже говорили, опрос теряет смысл, если после него ничего не меняется. Когда результаты остаются только в презентации для стейкхолдеров, сотрудники быстро понимают, что их ответы ни на что не влияют.</p><p>В следующий раз они заполняют анкету формально. Из-за этого данные перестают показывать реальное состояние команды.</p><p>После опроса нужно закрыть цикл:</p><ul><li>определить проблему;</li><li>назначить ответственного;</li><li>установить срок для изменений.</li></ul><p>Например, если опрос показал низкий уровень управленческих навыков у руководителей, компании нужен план обучения и срок проверки результата. Если показатели в норме, нужно зафиксировать практики, которые дали такой результат, и продолжать их использовать.</p><h3>Кто отвечает за изменения</h3><p>HR собирает данные, рассчитывает eNPS и ESI и сравнивает результаты с текучестью по департаментам, а за изменения отвечают руководители процессов:</p><ul><li>тимлиды;</li><li>руководители отделов;</li><li>топ-менеджеры.</li></ul><p>HR может показать, где находится проблема, но изменить постановку задач, обратную связь или работу конкретной команды должен её руководитель.</p><h3>Когда нужен отдельный технический инструмент</h3><p>Готового опросника недостаточно, если компании нужно связать результаты с другими HR-данными. Например, требуется:</p><ul><li>сравнивать eNPS и ESI с текучестью по департаментам;</li><li>передавать данные пульс-опросов во внутреннюю HRM-систему;</li><li>строить BI-дашборд с динамикой по кварталам и командам.</li></ul><p>Для этого нужна отдельная система под структуру компании. Она может включать интеграцию опросника с HRM, ETL для объединения данных и отчёты для руководителей.</p><p>Мы в Centicore проверили описанную стратегию на себе: опросы проводим регулярно, а результаты разбираем и доводим до конкретных решений. Подход работает, и цифры это подтверждают: текучесть у нас уже снизилась на 2%.</p><p>Удовлетворённость сотрудников становится полезной метрикой, когда компания регулярно проводит опросы, сравнивает результаты с текучестью и принимает конкретные решения. Правильно настроенная внутренняя HRM-система помогает собирать эти данные в одном месте, отслеживать динамику и находить проблемы в отдельных командах.</p>]]></content:encoded>
    </item>
    <item>
      <title>Разработчик уходит, инженер остаётся: как AI-экосистема меняет работу команды разработки</title>
      <link>https://tproger.ru/articles/razrabotchik-uhodit-inzhener-ostayotsya-kak-ai-ekosistema-menyaet-r</link>
      <comments>https://tproger.ru/articles/razrabotchik-uhodit-inzhener-ostayotsya-kak-ai-ekosistema-menyaet-r?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Ислам Виндижев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/razrabotchik-uhodit-inzhener-ostayotsya-kak-ai-ekosistema-menyaet-r</guid>
      <description><![CDATA[<p>Александр Сахаров (Диасофт) — о том, почему чисто агентский подход к разработке устарел, чем опасен вендорлок на LLM и как устроена AI-driven Digital Q.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/razrabotchik-uhodit-inzhener-ostayotsya-kak-ai-ekosistema-menyaet-r">Разработчик уходит, инженер остаётся: как AI-экосистема меняет работу команды разработки</a>»</p>]]></description>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 16 Jul 2026 14:16:47 GMT</pubDate>
      <content:encoded><![CDATA[<p><i>Александр Сахаров — член правления и директор по работе с партнёрами Диасофт — на партнёрском дне 29го мая 2026 года вёл программу и показывал обновлённый процесс разработки на платформе</i> <i>Digital Q.</i></p><figure><img src="https://media.tproger.ru/user-uploads/133609/2026-07-15/20558e56-1e70-4f4c-9cf9-952891070b29.webp" alt="" /></figure><p>AI продолжает плотно внедряться в процессы самых разных компаний. Строятся пайплайны и цепочки агентов, жгутся токены, генерируются тонны кода и строятся целые AI-экосистемы для разработки. Это обсуждают практически на всех отраслевых конференциях, ищут способы внедрения и оптимизации процессов.</p><p>Редакция Tproger недавно была нескольких таких ивентах и на партнёрском дне Диасофт пообщалась с членом правления Диасофт и директором по работе с партнёрами Александром Сахаровым. Мы поговорили о том, почему агентская разработка в её нынешнем виде — тупик, как строить эффективные AI-процессы разработки, почему фреймворк теперь важнее модели и что нового в AI-обновлении <a href="https://q.diasoft.ru/" rel="nofollow">платформы Digital Q</a>.</p><p><a href="https://q.diasoft.ru/">Digital Q</a> — российская low-code экосистема разработки от «Диасофт» с готовым «заводом» инструментов для сборки корпоративных приложений: от проектирования бэкенда, дизайна интерфейсов до DevOps. В мае 2026 года вышла AI-driven версия, где искусственный интеллект встроен в саму платформу — он проектирует архитектуру, генерирует код, фронтенд и бизнес-процессы по человекочитаемой спецификации, оставляя разработчику работу с замыслом, а не с рутиной.</p><h2>AI добрался до фундамента</h2><p><b>— Александр, начну с прямого вопроса. ИИ обсуждают на каждом углу. Как вы считаете, что действительно изменилось, стало главным сдвигом, а что просто шум?</b></p><p>— Главный сдвиг — это то, что AI добрался до вещей, которые казались незыблемыми. ERP-системы — это же фундамент крупного предприятия. И мы своими глазами видим, как крупные компании переходят на вайб-кодинг ERP. Звучит страшновато, но это факт, это происходит не в стартапах, а в очень больших организациях. Банки, промышленность, энергетика — везде одно и то же.</p><p>А шум — это вера, что AI всё решит сам по себе. Что можно купить лицензии Copilot, посадить за них разработчиков и они вам начнут производить продукты в десять раз быстрее. Нет, не начнут. Точнее, начнут, но счета вас очень неприятно удивят.</p><h2>От агентов к AI-native платформе</h2><blockquote>Агентская разработка как самостоятельный подход не работает. Не масштабируется. Подход должен быть AI-native</blockquote><p><b>— Вы на сцене показывали, как обновился Digital Q с декабря. Что конкретно поменялось за эти полгода?</b></p><p>— В декабре, на зимнем партнёрском дне, мы представили платформу Digital Q.GPT — на ней можно реализовывать агентский workflow. Интеграция со всеми LLM-моделями, экосистема построения агентов, мультиагентные системы. На тот момент это было супер актуально.</p><p>К маю выяснилось, что этого недостаточно. За последние шесть месяцев все — Anthropic, Google, Gartner, Amazon, Сбер на ЦИПР — пришли к одному и тому же выводу: агентская разработка как самостоятельный подход не работает. Не масштабируется. Подход должен быть AI-native, то есть AI вшит в саму экосистему разработки, а не прикручен сбоку отдельными агентами.</p><p><b>— А что плохого в агентах?</b></p><p>— С агентами ничего плохого, они нужны. Плохо, когда вся разработка строится только вокруг них. Если кто-то хочет писать агенты — пожалуйста, в Digital Q.GPT весь функционал остался: workflow, мультиагентные системы, всё это работает. Но это уже не центральная история. Центральная история теперь — единая экосистема, в которую AI встроен на каждом этапе процесса.</p><h2>Три способа потерять деньги на AI</h2><blockquote>Сегодня становится очевидно, что фреймворк важнее модели. Весь контекст, знания и артефакты разработки должны находиться внутри собственной экосистемы компании, а не зависеть от поставщика LLM. Это позволяет управлять стоимостью разработки, сохранять независимость и обеспечивать масштабирование решений.</blockquote><p><b>— Давайте про антипаттерны. Вы на сцене перечислили целый список — что точно делать не надо. Какой из них самый болезненный?</b></p><p>— Самый болезненный — вендорлок на конкретную LLM. Если вчера вы платили 20 долларов на разработчика в месяц, завтра это 100, послезавтра 200. Скоро будет дороже, чем один разработчик в месяц. И весь ваш контекст — спецификации, история, наработки — лежит у этой модели. Вы заложник. Они вам говорят: «не парьтесь, весь контекст у нас, всё будет хорошо». Хорошо у них будет, а у вас потом будут проблемы.</p><p>Второй болезненный — зоопарк инструментов. Если у вас разработчики накодили чего-то в пяти разных средах, потом вы это нормально не соедините. Получится лоскутное одеяло, только сделанное в десять раз быстрее, чем раньше.</p><p>Третий — использовать AI только в кодировании. Это путь в галлюцинации и в бесконечные ошибки, которые вы потом просто не отследите.</p><p><b>— Как можно решить эти проблемы?</b></p><p>— Главный тезис: фреймворк важнее модели. Они это называют harness, мы называем экосистема разработки. Есть термины IDP — Integrated Development Platform, IDE — Integrated Development Environment. Суть одна. Ваш фреймворк должен быть локально у вас, весь контекст — локально у вас, модели должны быть взаимозаменяемые. Тогда вы можете переключаться между ними и управлять стоимостью.</p><p>Простой Copilot, кстати, не работает. Слишком большой технический долг возникает. Это не моя позиция, это уже общее наблюдение крупных игроков.</p><h2>Как теперь устроена разработка</h2><p><b>— Вы говорили про два контура разработки. Объясните для тех, кто услышит об этом впервые.</b></p><p>— Раньше был один контур: ТЗ — постановка — кодирование — тестирование — релиз. Долго, последовательно. Цифровая трансформация это ускорила: годы превратились в кварталы и месяцы. Но всё равно один линейный процесс.</p><p>Сейчас он распадается на два. Первый — контур замысла, или, как у Сбера говорят, контур намерений. Здесь работает человек. Описывает на естественном языке, что хочет получить. Агенты помогают разложить это на артефакты — процессы, формы, справочники, архитектуру. Человек видит результат визуально, проверяет, правит, опять же голосом или текстом.</p><p>Второй контур — контур реализации. Здесь уже всё на агентах и моделях. Это фактически чёрный ящик под замыслом. Человек его контролирует только по результату. Не нравится — возвращается в контур замысла, правит спецификацию, перезапускает.</p><p>И самое важное между ними — экосистема, которая держит все артефакты и весь контекст. Если этой экосистемы нет — у вас ничего не получится развивать. Сгенерили код, отдали в продакшен, а через полгода вы уже не понимаете, как туда внести изменение.</p><p><b>— Это та же мысль, что и про вендорлок, по сути?</b></p><p>— Та же. Если экосистема не у вас, контекст не у вас, спецификации не у вас — вы теряете возможность развивать продукт. Останется только сгенерированный код, а к коду без замысла осмысленных изменений уже не приделать. После какого-то уровня сложности — точно.</p><p><b>— Вернёмся к Digital Q. Как она теперь устроена? Если разобрать на компоненты — что там лежит?</b></p><p>— Если коротко — то, во что крупные компании годами вкладываются, чтобы отстроить правильный процесс разработки. Независимость от модели — это базовое. Полный SDLC: как правильно писать, какие артефакты должны быть. Репозиторий справочников, репозиторий процессов, репозиторий потоков. Работа с данными. Поддержка двухконтурной модели. Единые репозитории инструкций для разного типа агентов. Полностью DevOps. Полностью процесс тестирования.</p><p>На самом деле там на двухчасовой разговор материала. Но главная мысль одна: только такая штука обеспечивает вам контроль по затратам, нормальный процесс и независимость от иностранных LLM или дорогих российских моделей.</p><blockquote>Разработчик всегда идёт на самую дорогую модель — она же лучшая. И запускает её сто раз в день. Ему кажется, что это бесплатно. Извините, не бесплатно.</blockquote><p><b>— Почему вы так настойчиво возвращаетесь к теме денег? Ведь все маркетинговые материалы AI-вендоров обещают именно экономию.</b></p><p>— Потому что это самая опасная иллюзия сейчас. Uber, пытаясь сэкономить на разработчиках, потратил больше трёх миллиардов долларов на AI-генерацию кода. Японская компания за несколько месяцев потратила 500 миллионов долларов вместо тех людей, которых сократили. Долларов, не рублей. И это уже не теория, это свежие кейсы 2025–2026 годов.</p><p>Почему так получается? Потому что разработчик, если его не ограничивать, всегда идёт на самую дорогую модель — она же лучшая. И запускает её сто раз в день. Увидел маленькое расхождение в результате — поправил формулировку — перегенерил всё. Ему же кажется, что это бесплатно. Это так красиво, так удобно — нажал кнопку, всё пересоздалось. Извините, не бесплатно. Это огромные деньги. Свобода такая, что разоряет.</p><p><b>— И как вы с этим боретесь технически?</b></p><p>— Лимиты в самой экосистеме. Разработчикам автоматически предлагаются более дешёвые модели для простых задач, иногда вообще бесплатные. Жёстко зашиваем: при изменениях перегенерация только изменённых частей, не модуля целиком. Если в модуле 50 тысяч строк кода, и вы поправили одну спецификацию — не должны перегенериваться все 50 тысяч.</p><p>И главное — переиспользование. Когда мы даём задание на исполнение, первый шаг — найти весь код в репозитории, который можно встроить. Если компонент уже есть — мы его не генерим, мы его подключаем. Ни одного токена сюда не тратится. Половину нового модуля у нас собирается из готового кода. К модели обращаемся только за тем, чего ещё нет.</p><p><b>— Расскажите про демо с CRM. Вы показывали, как из 400-страничного ТЗ получается работающее приложение. Это правда один день двух человек, или там есть нюансы?</b></p><p>— Один день двух человек — это правда. Нюансы есть, конечно. Главный: это не black box, который сгенерил вам что-то непонятное. Это полностью оснащённый артефактами IT-проект. Можно пойти и сдать любому госзаказчику по ГОСТу. Полная документация — техническая, пользовательская, финансовая. Полный набор описанных бизнес-процессов. Полный набор тестов, включая тесты на уязвимости.</p><p>Что происходит по шагам? Загружаем ТЗ в основной контекст платформы. Она начинает читать, находит нестыковки, раскладывает по полочкам — где процесс, где поток, где архитектура. Задаёт уточняющие вопросы заказчику. Можно ответить, можно сказать «работаем как есть» — тогда она дальше креативит по тому, что есть.</p><p>Дальше прорисовывает архитектуру бэкенда. Здесь критически важный момент: она смотрит на репозиторий и решает, что писать с нуля, а что переиспользовать. У неё в инструкциях жёстко зашито: инфобез не писать, использовать готовый. Логирование не писать. Справочники, типовые штуки — не переписывать. Только то, что реально новое.</p><p><b>— А фронтенд?</b></p><p>— Полностью автогенерация. Мастер: меню справа, меню слева, нужна аналитика — не нужна, нажал галочки — получил весь фронт. Документированный, открытый, лежит в гите. Дальше можно дорабатывать голосом — буквально говоришь в микрофон «добавь форму жалобы на робота», и она лезет в MCP, смотрит схему дизайна, добавляет форму, обновляет версии, выпускает изменение. Современные разработчики уже на клавиатуре ничего не пишут — у них микрофон.</p><p>Потом бизнес-процессы. Та же AI-машина смотрит на ТЗ и генерит BPMN-процесс — уже машиночитаемый, его можно сразу выполнять. Но она же его и критикует: смотрит со стороны и говорит — у вас тут проблема, тут проблема, ТЗ было неполным, давайте решать. И человек уже работает с агентом, который ему подсвечивает дыры.</p><p>И финал — DevOps-сборка, докер-образы, юнит-тесты, интеграционные, регрессионные, тесты на уязвимости. Половина этих тестов сгенерилась автоматически по нашим стандартам ещё на этапе подготовки.</p><p><b>— Вы говорили, что AI-агенты теперь работают не только в коде, но во всех ролях — от аналитика до девопса. Как это устроено?</b></p><p>— У каждой роли — аналитик, архитектор, фронтенд-разработчик, бэкенд-разработчик, девопс-инженер — теперь свой набор агентов. И не только в IT-ролях. Продавцы, юристы, логисты, кадровики — у всех появляются свои агенты. На некоторых российских предприятиях речь идёт уже не о сотнях, а о тысячах агентов, которые работают параллельно и автоматизируют не только разработку, но и все процессы внутри организации.</p><p>Фишка нашей платформы в том, что мы все роли оснастили всеми агентами из коробки. Не надо ничего собирать самому. Скачали Digital Q, поставили, производите ПО.</p><h2>Что доступно прямо сейчас</h2><blockquote>С июля начинаем публиковать обновлённую версию. Можно скачать, развернуть, запускать.</blockquote><p><b>— И эта экосистема действительно доступна партнёрам?</b></p><p>— Да, мы её отдаём рынку. С июля начинаем публиковать обновлённую версию для партнёров. Можно скачать, развернуть, запускать. Правда, нужно знать, что такое Kubernetes и Kafka — это не магический инсталлер для гуманитариев. Но если знаете — берёте и работаете.</p><p>У нас уже сейчас несколько десятков компаний создали свои продукты на этой экосистеме. Кто-то с большим успехом, крупные компании тоже распробовали и начали работать.</p><p><b>— Возвращаясь к началу разговора. Вы фактически заявляете, что Диасофт — единственный, кто отдаёт такую экосистему рынку. Это правда так, или маркетинг?</b></p><p>— Это так. Давайте честно: на российском рынке такие экосистемы делают несколько компаний. Сбер, ВТБ, Тинькофф — для себя. Это им и нужно, у них колоссальные команды разработки, они это могут себе позволить. Кто-то из телекома делает для своих больших разработок. Иногда они пробуют что-то предложить рынку, но по большому счёту — это всё «для себя».</p><p>Диасофт делает экосистему и для себя, и для рынка. Сегодня в рынок такую экосистему — уже трансформированную под AI — фактически продолжаем отдавать только мы. Это наш бизнес, это наша история. Сбер и другие крупные игроки сейчас взяли паузу с публикацией для рынка, на два-три года минимум. После этого цикла, может быть, появится альтернатива. Сейчас её нет.</p><blockquote>Если такого человека нет — никакая AI-генерация вас не спасёт. Будет только дороже и хуже.</blockquote><p><b>— Какой главный совет тем, кто только сейчас задумывается о собственной AI-трансформации разработки?</b></p><p>— Не повторяйте чужих ошибок. Не садитесь на одну модель — это вендорлок, и он дорого стоит. Не пытайтесь решить всё через агентов поверх существующего бардака — масштабироваться не будет. Не верьте, что AI сам по себе сэкономит вам деньги — без управляющей экосистемы он их сожрёт быстрее, чем вы успеете уволить разработчиков.</p><p>И ещё одно. Команды теперь строятся вокруг продуктового инженера. Это новая ключевая роль. Раньше ценностью был код. Сейчас ценность — бизнес-компетенция, способность правильно поставить задачу. Если у вас есть человек, который понимает бизнес и умеет это сформулировать — код появится быстро. Если такого человека нет — никакая AI-генерация вас не спасёт. Будет только дороже и хуже.</p><h2>Бонус: чек-лист «AI-разработка без иллюзий»</h2><p>Разговор получился интересный, и мы собрали для вас короткий чек-лист, который пригодится и разработчикам, и бизнесу.</p><p><b>Чего точно не стоит делать:</b></p><p>— Сажать команду на одну LLM-модель — это вендорлок, и он будет дорожать;</p><p>— Разрешать разработчикам неограниченно гонять самую дорогую модель;</p><p>— Использовать AI только в кодировании, без интеграции в остальной процесс;</p><p>— Накупить разных инструментов и надеяться, что они потом «как-нибудь соберутся»;</p><p>— Сокращать разработчиков в расчёте на «бесплатные» токены.</p><p><b>Что стоит сделать:</b></p><p>— Держать экосистему разработки и весь контекст локально;</p><p>— Зашить в платформу переиспользование кода — половину нового модуля собирать из готового;</p><p>— Настроить лимиты: дешёвые модели для простых задач, перегенерация только изменённых частей;</p><p>— Разделить процесс на два контура — замысла (где работает человек) и исполнения (где работают агенты);</p><p>— Растить продуктовых инженеров — людей, умеющих формулировать задачу, а не только писать код.</p><p>Реклама. Рекламодатель: ООО «Диасофт», ИНН 7715560268, erid: 2W5zFJRM88q</p>]]></content:encoded>
    </item>
    <item>
      <title>Вайбкодинг для не-технарей: как взяться за сложный технический проект и не обмануться быстрыми победами</title>
      <link>https://tproger.ru/articles/vajbkoding-dlya-ne-tehnarej-kak-vzyatsya-za-slozhnyj-tehnicheskij-p</link>
      <comments>https://tproger.ru/articles/vajbkoding-dlya-ne-tehnarej-kak-vzyatsya-za-slozhnyj-tehnicheskij-p?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Образцова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/vajbkoding-dlya-ne-tehnarej-kak-vzyatsya-za-slozhnyj-tehnicheskij-p</guid>
      <description><![CDATA[<p>Разбираем главные ошибки вайбкодинга, роль архитектуры, тестирования и системного мышления при создании сложных AI-проектов без команды разработчиков.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/vajbkoding-dlya-ne-tehnarej-kak-vzyatsya-za-slozhnyj-tehnicheskij-p">Вайбкодинг для не-технарей: как взяться за сложный технический проект и не обмануться быстрыми победами</a>»</p>]]></description>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 09 Jul 2026 06:22:52 GMT</pubDate>
      <content:encoded><![CDATA[<p>Вайбкодинг может создать у новичка обманчивое ощущение: рабочий прототип с первого взгляда уже выглядит идеально. На самом деле работа только начинается. Дальше идут грабли, архитектура, тестирование и реальность. Екатерина Образцова, AI-продакт-лид и заместитель руководителя развития продукта в Битрикс24, рассказала о том, как провести продуктовую команду без единого разработчика через трехмесячный проект многопользовательского сервиса.</p><p>В статье собрано то, что было бы здорово знать на старте: что заложить до первого экрана, где команда почти наверняка споткнется и как с учетом всего этого спроектировать процесс. Здесь не будет красивых схем с микросервисами, такие схемы остаются за разработчиками. Будет честный список того, что ломается, когда продукт создается без выделенного разработчика. Сервис внутреннего спортивного марафона Битрикс24 здесь только иллюстрация. Те же выводы применимы к любому проекту.</p><h2>Главный риск: обмануться быстрой победой</h2><p>На следующий день после старта сайт уже работал. Интеграция с Apple Health подключилась с первого промпта, тренировки сотрудников отображались и ранжировались по системе начисления баллов.</p><p>В вайбкодинге первый результат всегда появляется очень быстро, и это создает когнитивное искажение. Мозг считывает полученный результат как сигнал, что задача почти решена. Для простого сервиса с одним пользователем часто так и есть. Но многопользовательский продукт устроен сложнее, и быстрый прототип здесь означает только то, что базовая логика работает в идеальных условиях, без нагрузки, параллельных запросов и реальных пользователей.</p><p>Первый шаг в сторону более устойчивого решения произошел после того, как коллега с техническим бэкграундом помог переформулировать промпт и добавил вводные про очереди, распределение нагрузки и контейнеры. Только с этого момента разработка пошла в правильном направлении.</p><h2>Спроектируйте архитектуру раньше, чем напишете первый экран</h2><p>Первый промпт не должен звучать как «сделай приложение для марафона». В нем должны быть описаны все ключевые пользовательские сценарии, зависимости между ними и нагрузочные требования. AI отлично подставит синтаксис и язык. Решения про очереди, контейнеры и поведение системы под нагрузкой остаются на команде. Если в команде нет человека, который умеет думать за систему под нагрузкой, его стоит найти до старта. Первое падение под нагрузкой обходится дороже.</p><p>Чтобы стало понятно, что стоит за словом «архитектура» на практике, разберем начисление баллов. В прототипе первого дня баллы считались на лету, прямо в момент загрузки тренировки. На одном пользователе это работало идеально. На 260 живых участниках сервис лег бы сразу, потому что под пиковой нагрузкой каждая загрузка тянула бы за собой мгновенный пересчет всех рейтингов.</p><p>В рабочей версии баллы начисляются отложенно, каскадом фоновых задач по очередям. Сначала система считает баллы за саму тренировку, потом обновляет личный рейтинг участника, потом командный и рейтинг по виду спорта. Когда триста человек грузят тренировки почти одновременно, одно и то же приходится пересчитывать десятки раз подряд. От этой «бури» спасает дебаунсинг — первая задача на пару секунд блокирует остальные, и лишние пересчеты просто не запускаются. Сам пересчет рангов идет одной атомарной операцией под блокировкой, чтобы параллельные процессы не перетерли результаты друг друга.</p><p>Ничего из этого нельзя дописать потом, поверх готового экрана. Такие вещи закладывают в самом начале, до первого промпта про пользовательский сценарий.</p><h2>Сначала бэкенд и контракт, потом клиенты</h2><p>Соблазн делать клиентское приложение «по фиче» и откладывать бэкенд велик, особенно когда фронт оживает за секунды. Это прямой путь к расхождению версий, когда веб, iOS и Android начинают жить своей жизнью.</p><p>Команда сосредоточилась на главной задаче мобильных приложений, интеграции с Apple Health и Health Connect, и потом стала добирать остальные разделы. В какой-то момент веб и оба мобильных клиента разъехались. Пришлось сделать шаг назад, завести корректные эндпоинты и SDUI на бэкенде и завязать приложения на них. После этого разработку можно было продолжать. Все-таки бэкенд определяет логику, а клиенты лишь работают в ее рамках.</p><h2>AI-тесты не заменяют ручное тестирование и фокус-группу</h2><p>Claude всегда пишет тесты на свой код, подробно, аккуратно, с покрытием разных сценариев. Для продакта без опыта разработки это выглядит надежной страховкой. Тесты есть, они проходят, значит код работает корректно. На практике убеждение обманчиво, потому что автотесты и ручное тестирование проверяют принципиально разные вещи.</p><p>Автотесты Claude проверяют то, что поддается формализации. Правильно ли считаются баллы по заданному алгоритму, корректно ли обрабатываются зависимости, верно ли отрабатывают условные конструкции. За пределами их охвата остается всё, что происходит в реальной эксплуатации. Например, когда пользователь с конкретной версией Android и конкретными смарт-часами пытается загрузить тренировку, которую его трекер назвал иначе, чем ожидает система. Или когда два пользователя одновременно обращаются к одной записи. Это принципиальное ограничение автоматического тестирования, и оно не отменяет важности функциональных автотестов.</p><p>Часть критических проблем вскрылась только на тестовой группе из 30–40 коллег, собранной через полтора месяца после старта разработки. Большую часть багов удалось отловить там. QA из отдела тестирования, которых подключили позже, дали больше полезного фидбэка по реальному пользовательскому пути, чем все автотесты вместе взятые, потому что проверяли поведение системы в реальных условиях.</p><p>Отсюда следует простое правило — каждую фичу нужно проверять руками, полным пользовательским путем, со всем, что находится вокруг нее. И делать это итеративно после каждого системного изменения, не дожидаясь конца разработки.</p><h2>Как собрать AI-driven команду под такой проект</h2><p>За три месяца сложилось понимание оптимального состава для подобного проекта:</p><ul><li>1 архитектор — человек, который понимает, как обеспечить стабильность многопользовательского сервиса под нагрузкой;</li><li>2 продакт-инженера — берут на себя и проработку пользовательских сценариев, и собственно вайбкодинг;</li><li>UX/UI-дизайнер;</li><li>QA-инженер.</li></ul><p>Когда пишешь код с AI, важно понимать, как все устроено. Базовые принципы, организацию данных, слабые места и типичные ошибки. AI закроет техническую часть — а продумать систему и увидеть, где она треснет, придется человеку.</p><p>Похоже, именно умение мыслить системно и станет ключевым навыком продакт-инженера в ближайшем будущем. Код все чаще будет писать AI, а думать за систему — человек.</p><h2>Что в итоге</h2><p>Вайбкодинг действительно позволяет нетехническим специалистам браться за сложные проекты самостоятельно. Единственный способ не обжечься — трезво оценивать масштаб задачи на старте и не принимать быструю победу первого дня за готовый продукт. Прототип — это только начало работы.</p><p>Архитектурные решения, стратегия тестирования, выбор технологического стека остаются актуальными вне зависимости от того, кто пишет код. Разница в том, что теперь разобраться в этом может не только разработчик. И это, пожалуй, главное, что меняет вайбкодинг в профессиональном горизонте. После такого пробега по граблям следующий проект строится на уже накопленном опыте. Команда понимает, как проектировать архитектуру, как выстраивать тестирование и на какие вопросы нужно иметь ответы на старте. Значит, он пойдет быстрее, интереснее и увереннее.</p>]]></content:encoded>
    </item>
    <item>
      <title>Гостинг, автоотказы, роботы на интервью: как AI-агенты убивают HR-бренд</title>
      <link>https://tproger.ru/articles/kak-ai-agenty-v-rekrutinge-ubivayut-hr-brend-i-chto-s-etim-delat</link>
      <comments>https://tproger.ru/articles/kak-ai-agenty-v-rekrutinge-ubivayut-hr-brend-i-chto-s-etim-delat?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Ислам Виндижев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-ai-agenty-v-rekrutinge-ubivayut-hr-brend-i-chto-s-etim-delat</guid>
      <description><![CDATA[<p>AI ускоряет найм, но 82% кандидатов меняют мнение о компании после плохого AI-опыта. Разбираем, где автоматизация вредит HR-бренду и как это исправить.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-ai-agenty-v-rekrutinge-ubivayut-hr-brend-i-chto-s-etim-delat">Гостинг, автоотказы, роботы на интервью: как AI-агенты убивают HR-бренд</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Собеседование]]></category>
      <category><![CDATA[Amazon]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 06 Jul 2026 04:27:15 GMT</pubDate>
      <content:encoded><![CDATA[<p><b>Компании внедряют AI в найм наперегонки и хвастаются экономией. Но у этой гонки есть побочный эффект, о котором говорят гораздо тише: кандидатский опыт деградирует, появляются негативные отзывы, потенциально сильные специалисты выбирают другие компании. Где AI в найме реально помогает, а где начинает жечь репутацию работодателя? Мы собрали данные, истории компаний и провели свой опрос. Возможно, вы уже внедрили агентов в свои процессы и что-то пошло не так, поможем разобраться что именно.</b></p><p>Почти каждый второй кандидат, прошедший AI-интервью, не получает по итогам вообще никакого ответа. Больше трети снимаются с вакансии, как только узнают, что собеседовать их будет робот. И это не история про технофобов, которые боятся прогресса — это история про то, как автоматизация бьёт ровно по тем местам, где человек ждёт человека.</p><h2>Данные: кандидаты не против AI — они против того, как его применяют</h2><p>Начнём с масштаба. По данным <a href="https://staffinghub.com/candidate-experience/ai-candidate-experience-staffing-opportunity/">SHRM Talent Trends 2025</a>, доля AI в HR-процессах за год почти удвоилась — с 26% до 43% рабочих сценариев. Это говорит о том, что AI в найме больше не эксперимент, а новая норма.</p><p>Проблема в том, что кандидатский опыт за этой скоростью не поспевает. Свежий <a href="https://www.greenhouse.com/newsroom/63-of-job-seekers-have-faced-an-ai-interview-most-havent-had-a-good-one-yet">отчёт Greenhouse 2026 Candidate AI Interview Report</a> (опрошено 2 950 активных соискателей в пяти странах) рисует довольно мрачную картину:</p><ul><li>63% кандидатов проходили AI-интервью за последний год — рост на 13% всего за полгода;</li><li>38% уже <a href="https://fortune.com/2026/05/04/4-in-10-job-candidates-bailed-hiring-rounds-required-ai-interview/">снимались с процесса найма именно из-за AI-интервью</a>, ещё 12% готовы уйти, если их обяжут его проходить;</li><li>51% из тех, кто всё-таки прошёл AI-интервью, не получили никакого результата — их либо проигнорировали, либо они всё ещё ждут ответа;</li><li>34% после AI-интервью стали хуже относиться к компании;</li><li>70% вообще не предупредили заранее, что их будет оценивать AI.</li></ul><p>Отдельно стоит гостинг (ghosting) — внезапное молчание компании, когда кандидату просто перестают отвечать. По <a href="https://fortune.com/2026/03/20/job-seekers-arent-imagining-things-candidates-ghosted-by-employers-hit-three-year-high/">данным, которые приводит Fortune</a>, в 2026 году с ним столкнулись 53% соискателей, это трёхлетний максимум (против 48% в 2025 и 38% в 2024). И связывают этот рост напрямую с AI: инструменты позволяют кандидатам рассылать отклики пачками, рекрутеров заваливает и они просто не отвечают тем, кому отказ пришёл автоматически. Классическая петля обратной связи: чем больше автооткликов, тем больше автоотказов.</p><h2>Мы решили проверить это на своей аудитории</h2><figure><img src="https://media.tproger.ru/user-uploads/133609/2026-07-06/eeb184ee-999b-46b0-944f-6ee83d79840e.webp" alt="" /></figure><p>Чтобы не опираться только на публичные отчёты, мы провели два анонимных опроса в наших Telegram-каналах: один про главную боль в AI-найме (2 633 голоса), второй — про влияние на отношение к компании (2 273 голоса).</p><figure><img src="https://media.tproger.ru/user-uploads/133609/2026-07-06/f12b2a77-b371-40af-b4e9-4f1c94c49351.webp" alt="" /></figure><p>Результаты близки к мировыми. Раздражает хотя бы что-то в AI-найме <b>90,7%</b> опрошенных — вариант «меня это не раздражает» выбрали лишь 9,3%. Две главные боли идут вровень: <b>невозможно достучаться до живого человека</b> (30,4%) и <b>шаблонный отказ без объяснения причин</b> (30,2%). То есть сильнее всего бьёт не сама технология, а дегуманизация — ощущение, что тебя обрабатывает конвейер, а не рассматривает человек.</p><figure><img src="https://media.tproger.ru/user-uploads/133609/2026-07-06/c96829dd-c151-492d-be69-80be470a665b.webp" alt="" /></figure><p>И, что важнее, это конвертируется в ущерб бренду. Отношение к компании после плохого AI-опыта меняется у <b>82,4%</b> (не меняется только у 17,6%). А <b>22,2%</b> готовы активно отговаривать знакомых от взаимодействия с такой компанией. Почти каждый четвёртый кандидат превращается в канал антирекламы.</p><p>Ключевой вывод из всех цифр один, и его хорошо сформулировали в Greenhouse: <a href="https://www.greenhouse.com/newsroom/63-of-job-seekers-have-faced-an-ai-interview-most-havent-had-a-good-one-yet">только 19% кандидатов хотят меньше AI в найме</a>. Люди не против автоматизации — они против того, как её внедряют: без предупреждения, без объяснений и без возможности достучаться до человека.</p><h2>Как компания «переAIивается»</h2><p>Чтобы показать, как это выглядит в динамике, соберём обобщённый сценарий. Компания «Хоризон» — вымышленная, но ни один поворот в её истории не выдуман: за каждым стоит реальный публичный прецедент.</p><figure><img src="https://media.tproger.ru/user-uploads/133609/2026-07-06/c1161b0a-ea86-49ca-b692-1fe25ca5340d.webp" alt="" /></figure><p><b>Эйфория.</b> Поток откликов вырос в разы, рекрутеры тонут, «Хоризон» покупает систему автоскрининга. Первый год — восторг: время до шортлиста падает, стоимость найма снижается. Именно на этом успехе компании и «переAIиваются», он выглядит как повод автоматизировать всё подряд.</p><p><b>Скрытая предвзятость.</b> Модель учится на резюме прошлых успешных сотрудников и начинает воспроизводить уже существующий состав команды, отсеивая «непохожих». Ровно на этом <a href="https://www.technologyreview.com/2018/10/10/139858/amazon-ditched-ai-recruitment-software-because-it-was-biased-against-women/">обжёгся Amazon</a>: его инструмент, обученный на резюме за десять лет, научился предпочитать мужчин и задвигать резюме со словом «женский». Сделать модель нейтральной не удалось — проект тихо закрыли. Никто не писал правило «отсеивать женщин». Просто система скопировала человеческую предвзятость и автоматизировала её.</p><p><b>Автоотказы приводят к судебному иску.</b> Чтобы разгрузить рекрутеров, «Хоризон» включает критерии автоматического отказа. Так поступила iTutorGroup: её софт <a href="https://www.eeoc.gov/newsroom/itutorgroup-pay-365000-settle-eeoc-discriminatory-hiring-suit">автоматически отклонял женщин от 55 лет и мужчин от 60</a>, отсеяв больше 200 квалифицированных кандидатов. Вскрылось случайно: кандидатка подала две одинаковые анкеты, отличавшиеся только датой рождения, и приглашение на собеседование получила только с более «молодой» версией резюме. Итог — 365 000 долларов по мировому соглашению с EEOC, первому в истории по AI-дискриминации в найме. И урок для каждого HR-отдела: даже когда дискриминацию автоматизирует технология, ответственность всё равно несёт работодатель.</p><p><b>Doom loop и системный риск.</b> Опыт кандидата иногда схлопывается ещё до конвейера. Как в <a href="https://www.cnn.com/2025/05/22/tech/workday-ai-hiring-discrimination-lawsuit">деле против Workday</a>: истец подал больше сотни заявок через платформу и получил отказы по всем, причём часто в течение минут, иногда посреди ночи. Так он заподозрил, что решение принимала машина. В мае 2025 суд разрешил вести иск как коллективный, от лица потенциально сотен миллионов соискателей, а по <a href="https://www.lawandtheworkplace.com/2025/06/ai-bias-lawsuit-against-workday-reaches-next-stage-as-court-grants-conditional-certification-of-adea-claim/">собственным данным компании</a> за спорный период через её инструменты было отклонено 1,1 млрд заявок. Workday обвинения отрицает и настаивает, что её инструменты не принимают решений о найме, но в <a href="https://www.hrdive.com/news/workday-california-AI-bias-lawsuit-feha/823555/">июне 2026 суд в Калифорнии</a> позволил части претензий двигаться дальше. Суть здесь в том, что ответственность может лечь и на вендора, а не только на конкретного работодателя.</p><p><b>Где «Хоризон» теряет не деньги, а бренд.</b> Кандидаты, отсеянные «за секунды в два часа ночи», редко идут в суд — они пишут отзывы и предупреждают знакомых. Это ровно то, что показал наш опрос: 82,4% меняют отношение к компании, 22,2% отговаривают других. Юридический иск довольно редкое явление, а репутационные потери — ежедневное и почти неизбежное.</p><p>Найм в «Хоризон» сломал не сам AI, а три конкретные вещи: <b>решения без человека, отказ без объяснения причины и полное исчезновение живого контакта</b>. По сути, компания автоматизировала не рутину, а именно те точки, где кандидат ждёт человека.</p><h2>Чек-лист: где AI работает, а где вредит</h2><p>Если свести все прецеденты и данные вместе, станет понятно, что граница проходит не по технологии, а по тому, ждёт ли кандидат в этой точке человека. Там, где взаимодействие и так безличное, AI должен выступать ассистентом, оптимизировать процесс. Риск начинается там, где AI перестаёт помогать человеку и начинает принимать за него решения — именно эти сценарии привели к судебным искам из кейсов выше, и 22,2% готовых к антирекламе в нашем опросе.</p><p>Мы собрали для вас чек-лист для самопроверки, его можно <a href="https://drive.google.com/file/d/1TgnTH-EphBXK_xO7TJtnRhOsMiaxqTie/view?usp=sharing" rel="nofollow">скачать</a> и пройтись по своему процессу найма. Давайте посмотрим, где технология может помочь, а где — навредить.</p><p><b>AI помогает:</b></p><ul><li>Написание и оптимизация текстов вакансий;</li><li>Первичный парсинг и сортировка резюме — как один из сигналов, а не как решение;</li><li>Планирование, перенос интервью, напоминания;</li><li>Ответы на типовые вопросы о вакансии и статусе заявки;</li><li>Черновики писем, которые редактирует человек.</li></ul><p><b>AI вредит:</b></p><ul><li>Автоматический отказ без проверки живым рекрутером;</li><li>Отказ без внятной причины;</li><li>AI-видеоинтервью «с роботом» как единственный этап;</li><li>Полное отсутствие человека на всём пути;</li><li>Анализ мимики и эмоций — запрещён EU AI Act <a href="https://digital-strategy.ec.europa.eu/en/policies/regulatory-framework-ai">с февраля 2025 года</a>.</li></ul><p>Как понять, что на конкретном этапе нужен человек? Простой тест: представьте, что кандидат спросил «почему так?». Если у вас есть понятный ответ и за решением стоял человек — этап в зелёной зоне. Если ответить нечего или всё решил алгоритм — этап пора возвращать людям.</p><h2>Фреймворк «Human-in-the-loop»: алгоритм советует, человек решает</h2><p>Хорошая новость: кандидаты сами подсказывают, как надо. В том же <a href="https://www.greenhouse.com/newsroom/63-of-job-seekers-have-faced-an-ai-interview-most-havent-had-a-good-one-yet">отчёте Greenhouse</a> они называют, чего им не хватает: раскрытия факта использования AI (44%), понятного объяснения, что именно AI оценивает (39%), возможности запросить человека вместо робота (46%), гарантии, что человек проверяет оценку AI до решения (38%), и доказательств, что систему проверяли на предвзятость (29%). Это, по сути, готовое ТЗ на здоровый процесс.</p><p>Всё это складывается в один принцип: алгоритм советует — человек решает. Ни одно значимое кадровое решение (найм, отказ, повышение) не отдаётся модели единолично; её оценка — лишь один сигнал среди многих.</p><p>На практике принцип держится на трёх опорах:</p><ul><li>Объяснимость: вы должны уметь сказать, почему кандидат А оказался выше кандидата Б, причём сказать это самому кандидату, а не только себе;</li><li>Аудируемость: должна быть возможность проверить, что живой рекрутер видел и подтвердил рекомендацию AI, а не проштамповал её вслепую;</li><li>Тест на предвзятость: систему нужно регулярно проверять на демографические перекосы и другие отклонения, иначе повторится история Amazon, где модель годами воспроизводила состав команды, пока это не всплыло.</li></ul><p><b>Про прозрачность.</b> Стоит ли открыто говорить кандидатам о том, какие этапы автоматизированы? Обычно это воспринимают как риск, хотя это наоборот хороший сигнал от работодателя кандидатам. Раз 70% кандидатов узнают об участии AI уже постфактум, то честное «вот здесь у нас работает машина, а здесь — человек» само по себе выделяет работодателя на общем фоне и повышает уровень доверия кандидатов.</p><p>По сути весь фреймворк — это способ автоматизировать найм, не автоматизируя те моменты, где кандидат ждёт человека. Наглядную схему с принципом, опорами и разделением труда мы вынесли в <a href="https://drive.google.com/file/d/1_8HKtKs7vwlbwz4nlhiqLdVkFU1dbhO6/view?usp=drive_link" rel="nofollow">отдельный файл</a>.</p><figure><img src="https://media.tproger.ru/user-uploads/133609/2026-07-06/5c967fdb-bf63-467e-8219-1ec47914a93e.webp" alt="" /></figure><h2>Что в итоге</h2><p>AI в найме — не зло и не мода, от которой можно отмахнуться: 43% HR-процессов уже так или иначе на нём. Но данные с обеих сторон — и отчёты, и наш опрос — сходятся в одном: кандидаты уходят не от самого AI, а от плохого опыта, который создаёт неправильно выстроенный AI-процесс. У кандидатов должно оставаться ощущение, что их рассматривают, а не просто обрабатывают на конвейере.</p><p>Побеждают в этой истории не те, кто автоматизировал больше всех, а те, кто автоматизировал рутину и оставил рекрутёра в нужных местах — на финальном решении, объяснении отказа или интервью. В остальных случаях готовьтесь к репутационным потерям, нестабильному потоку подходящих кандидатов и другим негативным последствиям.</p><p>Хотите провести свой опрос или разместить материал? <a href="https://tprg.ru/tVOK">Пишите нам</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Git в Telegram: как я избавился от JSON, победил Markdown и получил security by design</title>
      <link>https://tproger.ru/articles/git-v-telegram--kak-ya-izbavilsya-ot-json--pobedil-markdown-i-polu</link>
      <comments>https://tproger.ru/articles/git-v-telegram--kak-ya-izbavilsya-ot-json--pobedil-markdown-i-polu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Robin Gad]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/git-v-telegram--kak-ya-izbavilsya-ot-json--pobedil-markdown-i-polu</guid>
      <description><![CDATA[<p>Git в Telegram? Без JSON, с SQLite, победой над Markdown и security by design. Код, схема БД, факапы и ссылка на бота.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/git-v-telegram--kak-ya-izbavilsya-ot-json--pobedil-markdown-i-polu">Git в Telegram: как я избавился от JSON, победил Markdown и получил security by design</a>»</p>]]></description>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[JSON]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[GitLab]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[IBM]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Markdown]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 02 Jul 2026 06:39:38 GMT</pubDate>
      <content:encoded><![CDATA[<p>В своём Telegram-канале я время от времени предлагаю подписчикам выбрать очередную «бредовую» идею для реализации. На этот раз победил Git в Telegram: чтобы можно было инитить проекты, пушить файлы, коммитить — и всё это прямо в мессенджере.</p><p>С практической точки зрения проект на**й не нужен. Есть GitHub, GitLab и куча нормальных инструментов. Но как эксперимент — почему бы и нет? Чисто посмотреть, можно ли заставить Telegram работать как VCS.</p><h2>Почему не JSON</h2><p>На старте я думал: «Положу всё в JSON, на кой мне база данных?» Проектов мало, пользователей немного, файлы текстовые — чего заморачиваться?</p><p>Подергал JSON туда-сюда пару дней и понял: не варик.</p><ol><li>Конкурентный доступ. Два юзера одновременно коммитят — один перезаписывает файл другого.</li><li>Целостность данных. Если бот упал в середине записи — JSON остаётся в невалидном состоянии.</li><li>Версионность. Хранить историю изменений в JSON — это просто перенести проблему из кода в структуру файла.</li></ol><p>Вывод: JSON — для конфигов, а не для данных, которые меняются каждую секунду.</p><h2>Выбор SQLite и схема БД</h2><p>Выбрал SQLite, потому что:</p><ul><li>Не надо поднимать отдельный сервер</li><li>Целостность данных на уровне движка (транзакции, foreign keys, rollback)</li><li>Всё в одном файле — скопировал и унёс</li></ul><p>Сущности:</p><ul><li>users — telegram_id, username, current_project_id</li><li>projects — owner_id, name, thread_id (каждый проект живёт в своём треде канала)</li><li>files — filename, current_version, флаг modified (файл изменился и готов к коммиту)</li><li>file_versions — мясо. Каждая версия файла с полным содержимым. Привязана к file_id и опционально к commit_id</li><li>commits — сообщение, время, ссылка на проект</li><li>commit_files — связка коммитов с версиями файлов (many-to-many, чтобы поддержать ветки)</li></ul><p>Почему так: я хотел иметь возможность откатиться к любой версии любого файла. Да, база распухнет, но текстовые файлы — это не гигабайты видео. Плюс наличие file_versions и commit_files позволяет делать diff между версиями и смотреть историю изменений.</p><p>В коде вместо голых кортежей из SQL — датаклассы:</p><h2>Маркдауновый ад</h2><p>Казалось бы: взял код, обернул в тройные апострофы, кинул в Telegram. Telegram сам подсветит синтаксис, если указать язык. Красота. В теории.</p><p>На практике Telegram использует свой диалект Markdown, где куча служебных символов: _ * [ ] ( ) ~ &gt; # + - = | { } . !</p><p>Попытка 1: заэкранировать всё подряд. Результат: код превращается в кашу. Вместо<b> </b><i>def  __init__- </i> получается <i>def |_|_init|_|_ </i> — уже не запустишь, и в канале выглядит как говно.</p><p>Попытка 2: не экранировать вообще. Telegram шлёт на**й с ошибкой «can't parse entities».</p><p>Попытка 3: экранировать только то, что реально ломает разметку. Выяснилось, что порядок важен. Сначала экранируем точки и подчеркивания, потом обратную косую черту. Но и это не панацея — последовательности типа \*</p><p>после экранирования превращаются в \\*, и Telegram снова недоволен.</p><p>Попытка 4: разбивать на части. Для больших файлов делаю превью (первые 50 строк), экранирую их, отправляю как код, а полную версию — файлом. И тут начался ад: Telegram находил ошибки в тех частях кода, которых в превью вообще не было. Оказывается, он всё равно парсил полный код, даже если отправлялась только его часть.</p><p>Попытка 5 (финал): забил на Markdown и перешёл на HTML. Telegram умеет его принимать. Да, он не такой красивый, но зато предсказуемый:</p><p>Никаких точек, подчеркиваний, обратных слешей. Просто экранируем три символа — и код летит как надо.</p><h2>Security by design</h2><p>Когда бот начал обрастать функциями, я задумался о безопасности. Чтобы никто не мог коммитить или удалять чужие файлы, начал писать проверки в каждую команду:</p><p>Добавил в /commit. Потом решил с другого аккаунта потестировать команды на чужих файлах. И тут бот на каждую команду стал выдавать «файл не найден» или «проект не найден». И я понял: безопасность уже работает. С самого начала. Из коробки. Без единой строчки кода.</p><p>Как так вышло? В таблице projects с самого начала было поле owner_id. При создании проекта я писал туда telegram_id  владельца. Все запросы к БД фильтруются по этому полю:</p><p>Показать проекты — только свои. Найти файл — только в своих проектах. Выбрать проект — только из своих. Никаких лишних проверок. Просто SQL-запросы, которые с самого начала учитывали владельца.</p><h2>Команды: от семи до двух десятков</h2><p>Изначально казалось, что команд будет немного. Но...</p><p>Жизнь рассудила иначе.</p><ul><li>База: /start, /init, /use, /list, /ls, /commit, /log, /status</li><li>Удаление: /rm, /rmproject + подтверждение</li><li>Игнор: /ignore, /ignored, /unignore</li><li>Ветки: /branch, /branches, /checkout</li><li>Диффы и просмотр: /diff, /cat</li></ul><p>Итого — уже под два десятка. И это не предел.</p><h2>Простота &gt; абстракции</h2><p>В моём коде нет абстрактных базовых классов. Совсем. Потому что они нужны только когда у тебя есть минимум две разные реализации одного и того же. В GitGram всё проще: один способ работать с БД, один способ шифровать, один способ парсить .gitignore.</p><p>Если завтра появится вторая реализация — тогда и буду делать интерфейс. А пока это просто оверхед.</p><p>В GitGram:</p><ul><li>Хочешь понять, как работает add_file — идёшь в database.py и читаешь 10 строк кода.</li><li>Хочешь увидеть обработчик /commit — открываешь bot.py и смотришь.</li></ul><p>Никаких AbstractMinerShieldEventProcessor, BaseGitGramManager, InterfaceProviderFactory.</p><p>Код должен быть тупым. Чем тупее — тем проще его читать и отлаживать.</p><h2>Что дальше</h2><p>В планах:</p><ul><li>Докрутить коллаборацию (несколько человек над одним проектом)</li><li>Приватные репозитории</li><li>Кодспейс прямо в боте (да да знаю я сошёл с ума и бла бла бла..)</li></ul><h2>Итог</h2><p>GitGram принимает файлы, режет их на куски если надо, постит в канал с подсветкой. Коммиты ходят, ветки переключаются, диффы показываются. Всё это в тредах, каждый проект отдельно.</p><p>На практике GitGram ни к чему. Но сама задумка — Git в Telegram — это же так прикольно. Просто посмотреть, можно ли такое вообще запилить.</p><h2>Если хочешь поучаствовать</h2><ul><li><a href="https://t.me/Git_Gram/314" rel="nofollow">GitGram</a></li><li>Чат для хардкорных: <a href="http://t.me/sandbox_hardcore" rel="nofollow">@sandbox_hardcore</a> — вся сырая разработка, факапы и обсуждения (без цензуры)</li></ul><p>Подписывайся на мой <a href="https://t.me/+q0NBWy428y1hODEy" rel="nofollow">TГ-канал</a> — там я публикую все свои эксперименты, код и приглашаю к обсуждению. Только факты, мат и никакой политоты.</p>]]></content:encoded>
    </item>
    <item>
      <title>Бесплатный WAF инструмент кибербезопасности, который я использую</title>
      <link>https://tproger.ru/articles/besplatnyj-waf-instrument-kiberbezopasnosti-kotoryj-ya-ispolzuyu</link>
      <comments>https://tproger.ru/articles/besplatnyj-waf-instrument-kiberbezopasnosti-kotoryj-ya-ispolzuyu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Неопознанный программист]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/besplatnyj-waf-instrument-kiberbezopasnosti-kotoryj-ya-ispolzuyu</guid>
      <description><![CDATA[<p>Разбор бесплатного open-source WAF SafeLine для защиты от OWASP Top 10, DDoS и ботов. Сравнение с ModSecurity и Cloudflare по точности обнаружения атак, минимальные ложные срабатывания, простая установка одной командой Docker.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/besplatnyj-waf-instrument-kiberbezopasnosti-kotoryj-ya-ispolzuyu">Бесплатный WAF инструмент кибербезопасности, который я использую</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[.NET]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[IBM]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[CSR]]></category>
      <category><![CDATA[PostgreSQL]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 01 Jul 2026 05:55:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Решения с открытым исходным кодом достигли такого уровня зрелости, что сегодня они действительно могут конкурировать с коммерческими продуктами — не только по функциональности, но и по удобству использования и поддержке сообщества. Если вы управляете собственной инфраструктурой, больше нет оправдания тому, чтобы оставлять дверь открытой для угроз.</p><p>SafeLine WAF — это бесплатный инструмент, который я лично тестировал.</p><p>Это полностью open-source решения, продукт с действительно бесплатной Community Edition, где ключевые функции не урезаны.</p><p><b>SafeLine WAF — веб-приложенийный межсетевой экран, который действительно поставляется с разумными настройками по умолчанию</b></p><p><b>Что он делает:</b></p><p>Защищает веб-приложения от SQL-инъекций, XSS-атак, командных инъекций, CSRF, SSRF, атак включения файлов и других угроз из списка OWASP Top 10. Также поддерживает защиту от CC/DDoS-атак, управление ботами и может работать как шлюз аутентификации.</p><p><b>Почему он:</b></p><p>Большинство WAF с открытым исходным кодом достаточно сложно настроить. Можно потратить часы на настройку правил, пытаясь остановить ложные срабатывания, из-за которых легитимные пользователи блокируются.</p><p>SafeLine использует другой подход — вместо того чтобы полностью полагаться на сигнатурное обнаружение, он применяет движок семантического анализа, который фактически анализирует и понимает входящие HTTP-запросы. Это позволяет добиться более высокого уровня обнаружения при значительно меньшем количестве ложных срабатываний по умолчанию.</p><p>Некоторые показатели, которые стоит учитыват</p><ol><li>Уровень обнаружения - SafeLine (Balanced) (71.65%), ModSecurity (Level 1) (69.74%), Cloudflare (Free) (10.7%)</li><li>Уровень ложных срабатываний - SafeLine (Balanced) (0.07%), ModSecurity (Level 1) (17.58%), Cloudflare (Free) (0.07%)</li><li>Точность - SafeLine (Balanced) (99.45%), ModSecurity (Level 1) (82.20%), Cloudflare (Free) (98.40%)</li></ol><p>Сбалансированный профиль SafeLine обнаруживает более 70% атак, при этом блокируя легитимный трафик ошибочно всего в 0.07% случаев. Это именно тот уровень настроек по умолчанию, который можно использовать в промышленной среде без постоянного ручного контроля.</p><p>Установка выполняется одной командой</p><p>После запуска он разворачивается как набор Docker-контейнеров: Tengine (форк Nginx) используется в качестве reverse proxy, отдельный сервис отвечает за семантический анализ, PostgreSQL хранит конфигурации и логи, а удобная веб-панель администратора работает на порту 9443.Community Edition поддерживает до 10 сайтов, чего достаточно для большинства личных проектов и небольших бизнес-сценариев.</p><p>Сайт: <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fcodeby.net%2Fgoto%2Flink-confirmation%3Furl%3DaHR0cHM6Ly9jeWJlcnNlcnZhbC50ZWNoL2xhbmRpbmcvc2FmZWxpbmXvv7xHaXRIdWI%253D%26s%3D7008b60d8a0849ba0be350fe25edfa72&amp;postId=3005263" rel="nofollow noopener">https://cyberserval.tech/landing/safeline</a></p><p>GitHub:<a href="https://api.vc.ru/v2.8/redirect?to=http%3A%2F%2Fgithub.com%2Fchaitin%2FSafeLine&amp;postId=3005263" rel="nofollow noopener"> github.com/chaitin/SafeLine</a> (более 21 тыс. звёзд)</p><p>Лицензия: GPL-3.0 / MIT (Community Edition)</p>]]></content:encoded>
    </item>
    <item>
      <title>Просто сделай шаг. Потом ещё один.</title>
      <link>https://tproger.ru/articles/prosto-sdelaj-wag-potom-eshhyo-odin</link>
      <comments>https://tproger.ru/articles/prosto-sdelaj-wag-potom-eshhyo-odin?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Ислам Виндижев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/prosto-sdelaj-wag-potom-eshhyo-odin</guid>
      <description><![CDATA[<p>Четыре руководителя из IT рассказали, что бег и спорт делают с человеком: про «стену» на дистанции, командную ответственность и фестиваль RUNIT by AGIMA.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/prosto-sdelaj-wag-potom-eshhyo-odin">Просто сделай шаг. Потом ещё один.</a>»</p>]]></description>
      <category><![CDATA[История успеха]]></category>
      <category><![CDATA[Для мотивации]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Соревнования]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 30 Jun 2026 12:27:57 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Четыре руководителя из разных IT-компаний о том, что бег и спорт делают с человеком на самом деле</h2><p>Я сам не фанат бега, мне сложно понять марафонцев, просто бегающих по утрам и джоггеров. А ещё в моей голове стереотипы о том, что это люди, которые хотят стать очень эффективными (особенно в бизнесе, IT и около), и это какая-то беговая секта. Но ведь раз люди это делают, то зачем-то это ведь нужно?</p><p>Я пообщался о спорте и беге с участниками фестиваля RUNIT by AGIMA разных лет: кто-то участвует постоянно, кто-то собирается первый раз, кто-то не попадает в этому году. Но все бегают и занимаются ещё каким-то спортом, видят в этом пользу и что-то хорошее.</p><p><a href="http://runit.digital?utm_refcode=42974847c63d6a9a9de8bcf3916b89c0657b0d26">RUNIT by AGIMA</a> — ежегодный фестиваль IT и спорта, который проводится в Москве летом. Впервые он прошел в 2018 году и собрал около сотни сотрудников AGIMA и их друзей, а уже в 2025 году в фестивале приняло участие 10 тысяч IT-специалистов. В этом году фестиваль пройдёт 5 июля в Мещерском парке.</p><p>Хотелось узнать, что бег и спорт делают с человеком по-настоящему — куда заводят, какие решения подсказывают, какие оставляют впечатления и воспоминания, над чем потом смеёшься. Получилось честно и местами неожиданно. Героев в этой статье четверо: Алексей Озеров (IT_One), Сайыына Колесова (КРОК), Млада Николаева (AGIMA) и Алексей Лосев (БФТ-Холдинг). Дальше — их дистанция, от старта до финиша.</p><h2>Старт: «Сайыына, зачем тебе это?»</h2><p>Почти у всех бег начинался с чужой компании — буквально.</p><p>Сайыына Колесова впервые побежала на RUNIT by AGIMA в 2024-м, в разгар адаптации в новой компании, когда записывалась подряд на все активности: «Мне показалось, что будет клёво большой командой в одинаковых футболках пробежать свои дистанции. Раньше я завидовала тем, кто приходит на забеги со своей командой, тоже хотелось быть частью такого драйвового сообщества». Воодушевившись, она выбрала десять километров — и до сих пор об этом жалеет, потому что дистанция далась непросто: «Я бежала и думала: «Сайыына, зачем тебе это?».</p><figure><img src="https://media.tproger.ru/user-uploads/133609/2026-06-30/6c4f6faf-dbda-46c6-a7c5-24df9bdc593d.webp" alt="" /></figure><p>Но добежала. И, что важнее, унесла с финиша положительные эмоции: «Я увидела, как много моих коллег тоже увлечены спортом — даже из моего департамента, о чём я и не подозревала. Увидела друзей-коллег с новой стороны, да и себя показала — выжившей. С тех пор наши отношения только крепнут.</p><figure><img src="https://media.tproger.ru/user-uploads/133609/2026-06-30/835a5927-8ff1-402b-a4ac-bf070fa75324.webp" alt="" /><figcaption>В хорошей компании забеги особенно радуют</figcaption></figure><p>Для Алексея Озерова фестиваль — вообще точка отсчёта. «Это особенный для меня забег, с него начался мой беговой путь. Два года назад я пробежал здесь свои первые пять километров и чуть не умер. Год назад тут же была первая десятка». Следующая цель Алексея тоже привязана к фестивалю: первый в жизни полумарафон он хочет пробежать именно на RUNIT by AGIMA.</p><h2>Стена: не всё так просто</h2><p>А дальше у каждого наступает момент, ради которого, кажется, всё и затевается, — когда гонка перестаёт быть приятной.</p><p>Стена Алексея Лосева показалась мне особенно суровой. Он бегает ультратрейлы, и его главная история — «Золотое кольцо» под Суздалем с титульной дистанцией 110 километров. Первая попытка закончилась сходом на девяносто четвёртом километре. Со стороны — обидно, оставалось чуть-чуть. Но он принял это решение как человек, привыкший смотреть вдолгую: «В тот год дистанция была сто пятнадцать километров, каждый давался тяжело. Я решил сойти, чтобы не только вернуться, но и продолжать участвовать в таких событиях долгие годы». Он вернулся через два года подготовки.</p><p>Самое коварное на трассе, по его словам, случается не на болотах и песках автономного сорокакилометрового участка под палящим солнцем, а сразу после него — там, где бегуна встречает лагерь волонтёров. Улыбки, объятия, готовы накормить, напоить, вымыть ноги. «В этом главная опасность. Минута промедления — и желание остаться становится всё сильнее, а впереди ещё марафонская дистанция, и силы стремятся к нулю. В такой момент нужно отключить желания и просто сделать шаг. Дальше второй — и вот ты уже снова бежишь к цели».</p><figure><img src="https://media.tproger.ru/user-uploads/133609/2026-06-30/b2e88648-6d93-47f7-a556-c787421d98e7.webp" alt="" /><figcaption>Алексей Лосев после одного из забегов</figcaption></figure><p>У Млады Николаевой, которая помимо бега занимается пауэрлифтингом и тайским боксом, была своя стена — жара на петербургском полумарафоне «Северная столица». После первой в жизни половинки (<i>прим.</i> полумарафон, 21 километр) она шла за личным рекордом: «Питер, плоско, лето — что может пойти не так? Ответ: всё».</p><figure><img src="https://media.tproger.ru/user-uploads/133609/2026-06-30/1e7ce6fe-04e7-4eb3-91b6-88b7a625c648.webp" alt="" /></figure><p>Тридцать с лишним градусов, набережные без тени, пульс на двадцать ударов выше обычного. «Это единственный забег, где я по-настоящему не была уверена, что добегу. В голове постоянно шёл торг: может, сойти? А может, ещё километр? А может, ну его?» Она финишировала еле передвигая ноги — и гордилась не временем, а тем, что не свернула.</p><figure><img src="https://media.tproger.ru/user-uploads/133609/2026-06-30/434cba63-febe-43c2-8f7b-1a614fc14dc9.webp" alt="" /><figcaption>Млада на Казанском марафоне</figcaption></figure><h2>Передышка: футбол, халявные футболки и первое место</h2><p>Если бы спорт состоял из одних стен, в него бы никто не возвращался. К счастью, он состоит ещё и из историй, которые потом годами рассказывают друзьям.</p><p>Самая киношная — у Алексея Озерова, и она про футбол. «Во время легендарного чемпионата Европы, когда наша сборная обыграла Голландию 3:1, я работал в приёмной комиссии Бауманки. После той игры мы на радостях гуляли всю ночь, а утром напрямик пришли в кабинет приёмной комиссии, обвесили его флагами и с раскрашенными в цвета российского флага лицами весь день принимали документы у будущей технической элиты страны».</p><p>У Сайыыны Колесовой — история о том, как она случайно стала спортсменкой. Она долго считала себя человеком неспортивным и физкультуру терпеть не могла, пока тётя — тренер по лёгкой атлетике — не отдала ей ворох командных футболок со сборов. «Я ходила в этих халявных футболках на физру, и однажды физрук без объяснений перевёл меня в другую группу. А там оказались университетские легкоатлеты с особой программой. Тренеры, видимо, решили, что футболки мои по праву и я из какой-то сборной. Не спросили, к счастью». Так она «вступила в атлеты», сдала нормативы не хуже других, начала сама ходить в зал и бегать по утрам, доехала до соревнований в Германии: «Ну короче, с тех пор я на спорте».</p><p>А Млада однажды заняла первое место на забеге, куда её взяли в последний момент. Она начала бегать в апреле, на июнь запланировала первую десятку, а накануне увидела по пути небольшой фановый забег. Все места были раскуплены, но это её не смутило: «Я недолго думая написала организаторам: если вдруг нужна участница в женский забег, имейте в виду. И меня встроили в группу».</p><p>Итог: первое место. «До сих пор одно из самых ярких и смешных воспоминаний. Мы все были просто большие дети, которые с восторгом соревнуются и шутят».</p><h2>Второе дыхание: что изменил спорт</h2><p>Самое интересное начинается, когда спрашиваешь не «что спорт дал», а «что поменял».</p><p>У Алексея Лосева два таких открытия, и оба выросли прямо из его гонок. Первое — про то, как браться за неподъёмное: «Сложную задачу начинаешь решать, сделав один шаг». Тот самый шаг из лагеря волонтёров, перенесённый в кабинет. Второе он усвоил на финишном отрезке, когда силы кончились и в одиночку он уже не укладывался в лимит: «Я зацепился за группу других участников, вцепился зубами и „рюкзаком“ продолжил с хорошим темпом». Так была закрыта сложнейшая гонка его жизни — не в одиночку. Отсюда вывод: «Сверхдостижений можно добиться только с командой единомышленников».</p><p>О том же, но со стороны футбольного поля, говорит Алексей Озеров. «Спорт научил меня командной ответственности. Неважно, кто сыграл лучше, если в итоге вы проиграли. На работе это очень помогает: ты не разграничиваешь зону на свою и чужую, а фокусируешься на общем результате. Это качество я и в других очень ценю».</p><p>Млада вынесла из спорта другое — отношение к темпу: «В работе есть соблазн требовать от себя и команды одинаково высокой скорости всё время. Но в спорте так не бывает: есть дни, когда ты летишь, а есть дни, когда главная задача — не сломаться и сделать работу достойно».</p><p>Ещё одно важное качество, которое она нашла — спокойствие к ошибкам, своим и чужим: «Один сложный день не определяет человека, команду или весь проект. Иногда это просто сложный день. Выдохнули, разобрали, пошли дальше».</p><p>Есть у бега и совсем прикладная польза — он «разгружает» голову. «В процессе голова освобождается от мыслей и проблем, ты как ребёнок находишься в потоке. А вот по завершении, на перезагрузившуюся голову, частенько приходят новые мысли», — говорит Алексей Озеров.</p><p>Млада, кстати, тоже отмечала похожее: спорт выключает лишний шум — «сначала ты занят дыханием, пульсом или тем, чтобы не получить по лицу на спарринге, а потом обнаруживаешь, что внутри стало тише».</p><h2>Финиш: разные награды</h2><p>А вот на финише наши герои расходятся — и это, пожалуй, то самое честное и неожиданное.</p><p>Для Алексея Озерова главное — эйфория: «Обычно я страдаю с первого до последнего километра, но на 70–80% дистанции накрывает адреналин и особое чувство, когда кажется, что можешь абсолютно всё. Вот это я люблю больше всего».</p><p>Алексей Лосев тоже говорит об эйфории от достижения результата, но про финиш стокилометрового трейла говорит почти без слов: «Эмоции сложно описать. Ты отдал себя всего».</p><p>Млада на том же финише чувствует другое и подбирает неожиданное для человека со штангой и боксёрскими перчатками слово — умиротворение. «Это не всегда эйфория с фанфарами. Иногда это тихое ощущение: «Я справилась». И оно мне очень дорого».</p><figure><img src="https://media.tproger.ru/user-uploads/133609/2026-06-30/a3cf754a-f6fd-4e62-9af6-321674522c89.webp" alt="" /><figcaption>Те самые перчатки</figcaption></figure><p>А у Сайыыны награда вообще не про себя: «Я восторгаюсь людьми — их силой воли, умением жить эту жизнь. Общие тренировки, соревнования или просто молчаливый бег к финишу, когда знаешь, что в этот момент мы все вместе абсолютно счастливы. Наши бегущие сердца бьются в унисон».</p><h2>Почему RUNIT by AGIMA</h2><p>Любопытно, что почти никто из них не говорит про секунды в протоколе.</p><p>«Это возможность увидеть коллег с другой стороны, позитивный формат и классная программа», — говорит Лосев, которому есть с чем сравнивать. Озеров привязан к фестивалю историей: здесь он начинал и здесь же хочет взять первый полумарафон. Колесова не скрывает мотивации и формулирует её очень обаятельно: «Меня привлекают коллеги. Они заманивают вкусняшками и пивом, и я не против — побегу с ними куда угодно, сколько угодно, возможно даже в +30. Фестиваль даёт почувствовать наше единство».</p><p>Млада поделилась своим взглядом на то, зачем такие фестивали нужны вообще: «Это не только про дистанцию или результат. Это про людей, энергию и ощущение общего движения: каждый бежит свою историю, но при этом чувствует себя частью чего-то большего». Спорт она называет очень честным языком — рядом могут оказаться люди с разным темпом и подготовкой, но всех объединяет простое «мы берём и делаем».</p><p><a href="https://runit.digital/?utm_source=campeign&amp;utm_medium=article_runit&amp;utm_campaign=tproger_2026"></a><a href="http://runit.digital/?utm_refcode=42974847c63d6a9a9de8bcf3916b89c0657b0d26">RUNIT by AGIMA</a><b> </b>пройдёт 5 июля в московском Мещерском парке. В программе — дистанции от детских 200 метров до полумарафона 21,1 км, командные зачёты и эстафеты, а после финиша — фестиваль с музыкой, фудкортом и зонами для своих.</p><h2>Вместо вывода</h2><p>Я попросил героев закончить фразу «бег научил меня тому, что…».</p><p>На мой взгляд, у Млады получилось мудро: «Устойчивость важнее героизма: не каждый день обязан быть победой, зато каждый может стать шажком вперёд».</p><p>А у Алексея Озерова парадоксально-честно: «Научиться бегу невозможно».</p><p>Практически гимн получился у Сайыыны Колесовой, им и хочется завершить эту статью: «Бег научил меня тому, что я могу бегать, могу бегать хорошо, быстро и долго. Я могу всё. Я могучий человек!»</p>]]></content:encoded>
    </item>
    <item>
      <title>Почему после отпуска так хочется уволиться</title>
      <link>https://tproger.ru/articles/pochemu-posle-otpuska-tak-hochetsya-uvolitsya</link>
      <comments>https://tproger.ru/articles/pochemu-posle-otpuska-tak-hochetsya-uvolitsya?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дима Дмитриев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/pochemu-posle-otpuska-tak-hochetsya-uvolitsya</guid>
      <description><![CDATA[<p>Психолог Centicore Group разбирает, почему после отпуска накрывает желание уволиться, когда это норма, а когда сигнал выгорания — и как не принять ошибочное решение на эмоциях.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/pochemu-posle-otpuska-tak-hochetsya-uvolitsya">Почему после отпуска так хочется уволиться</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 23 Jun 2026 09:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Порыв уволиться накрывает почти каждого, и заявление по собственному обычно не лечит то место, которое на самом деле болит. Разбираемся, что там происходит и почему смена работодателя редко помогает.</p><h2>Откуда берётся желание всё бросить</h2><p>В отпуске вы жили по своим правилам, а возвращение на работу включает режим «надо»: надо к девяти, надо закрыть спринт, надо быть на ретро. Психика считывает этот контраст как давление, и первая реакция на давление — желание из-под него выскочить. Мысль об увольнении при этом сигналит скорее о том, что вам физически тяжело снова влезать в привычный ритм, а не о том, что компания внезапно стала плохой.</p><p>Дальше включается ловушка. Кажется, что достаточно поменять офис, тимлида или весь стек — и попустит. Иногда правда попускает, но ненадолго. Напряжение цепляется к работе как к самому удобному объекту: она рядом, она требовательна, на неё логично свалить. Сам механизм, который гонит из-под «надо», переезжает вместе с вами на новое место, и через пару месяцев в новой компании накрывает то же самое.</p><p>Многое решает то, каким был сам отпуск. Если вы реально восстановились, набрались сил и переключились, обратный вход в работу проходит мягче. А если отпуск просто на время сменил картинку перед глазами, но не вернул энергию, то после выхода контраст бьёт особенно сильно, и раздражение на работу почти гарантировано.</p><h2>Где заканчивается норма</h2><p>Кто-то может вам сказать: “Потерпи месяц, а потом решай”, но такого срока не существует. У кого-то внутреннее сопротивление быстро выливается в перемены, а кто-то годами носит его под маской терпения, пока оно не ударит по здоровью. Ориентироваться стоит на качество своего состояния, а время тут плохой советчик.</p><p>Самый надёжный маркер — здоровье. Когда на фоне усталости и ощущения бессмысленности вы начинаете чаще болеть, хуже спать или ловите сбои в организме, которых раньше не было, это уже тот сигнал, который игнорировать не стоит. Простуда раз в сезон ещё ни о чём не говорит, а вот систематические недомогания и что-то более серьёзное — повод притормозить и присмотреться к себе.</p><h2>Откуда злость на коллег</h2><p>Обычно всё просто — у вас просто просел ресурс — и вот вас бесит Витя из соседнего отдела, который всего-то спросил, как прошли выходные. Сам Витя обычно ни при чём. Просто от вас по умолчанию ждут привычного: поболтать у кулера, включиться в обсуждение, среагировать с лёгкостью. А сил на эту лёгкость уже нет, и приходится либо выдавливать её из себя, либо ловить чувство вины за то, что не соответствуете. Любое внешнее ожидание в таком состоянии давит сильнее обычного.</p><p>Бывает и так, что раздражает не то, что коллега сделал, а то, что он себе позволяет: спокойно относится к задачам, не тревожится из-за дедлайнов, уходит в шесть и не думает о работе до утра. Злость на него часто оказывается отражённой завистью к тому, чего вы сами себе сейчас запрещаете. Прежде чем записывать человека в раздражители, стоит притормозить и честно спросить себя, что именно цепляет. Чаще выясняется, что внутри давно копится усталость, а коллега просто попал под руку.</p><h2>Как наблюдать за собой</h2><p>Внутренние разговоры с собой плохо годятся для диагностики: они подстраиваются под текущее настроение и врут вместе с ним. Сегодня всё бесит — и кажется, что работа отвратительна; выспался — и вроде терпимо. Поэтому психолог Наталья Дремина советует завести дневник самонаблюдения и фиксировать состояние прямо в моменте. Перечитываете записи спустя пару дней, когда эмоции улеглись, и видите со стороны: реакция была куда сильнее, чем повод.</p><p>Смотреть стоит на всю картину жизни, а не выдёргивать одну работу. Когда падают энергия и настроение, это отзывается везде: дома, в отношениях с близкими, в реакции на бытовые мелочи. Срыв первым выходит как раз на тех, кто рядом каждый день, потому что на начальника рявкнуть страшно, а на своих выходит легко и быстро. Если усталость и раздражение ровным фоном идут по всем фронтам, корень явно не в одном работодателе.</p><p>И ещё про резкие движения. Когда состояние на пределе, увольнение, переезд или другой крупный шаг на эмоциях обычно оказывается попыткой сбежать от напряжения. Подвох в том, что от себя сбежать не выйдет: на новом месте те же чувства догонят через месяц-другой. Бывает и обратное — человек ищет новую работу и ловит прилив сил, но за этим подъёмом иногда стоит злость или желание кому-то что-то доказать. Энергия мощная, только двигаться на ней — как лететь на форсаже к стене, поэтому стоит сперва понять, из какого состояния вы вообще принимаете решение.</p><p>Когда повторяющиеся сигналы складываются в систему — портится здоровье, копится раздражение, жизнь всё чаще идёт через сопротивление, — это повод поговорить со специалистом, не дожидаясь, пока рухнет сразу несколько сфер. Своими наблюдениями о ресурсе и выгорании психолог Наталья Дремина делится в блоге<a href="https://centicore.ru/"> Centicore Group</a> — там же компания публикует другие материалы по теме.</p><h2>Итого</h2><p>Желание уволиться после отпуска само по себе ни о чём страшном не говорит — это нормальная реакция психики на возврат в режим «надо». Сигналом оно становится, когда к нему добавляются упавший ресурс, зачастившие болезни и ощущение, что жизнь по всем фронтам идёт через силу. Тогда вопрос смещается с «куда бы свалить» на «что у меня с энергией».</p><p>Если до этого дошло, главное правило простое: не рубить с плеча на эмоциях. Дайте себе время и инструменты — дневник, разговор со специалистом, честный взгляд на всю картину, а не только на работу. Решение, принятое из выжатого состояния, почти всегда хочется переиграть. Принятое из спокойного — обычно остаётся с вами надолго.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как Android-инженер спроектировал gateway для миллионов пользователей: опыт перехода в инфраструктуру</title>
      <link>https://tproger.ru/articles/kak-android-inzhener-sproektiroval-gateway-dlya-millionov-polzova</link>
      <comments>https://tproger.ru/articles/kak-android-inzhener-sproektiroval-gateway-dlya-millionov-polzova?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Кирилл Соколов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-android-inzhener-sproektiroval-gateway-dlya-millionov-polzova</guid>
      <description><![CDATA[<p>История перехода из андроид разработки в инфраструктуру. Как мобильный инженер спроектировал gateway для платформы с миллионами пользователей, освоил распределённые системы и научился строить отказоустойчивые сервисы.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-android-inzhener-sproektiroval-gateway-dlya-millionov-polzova">Как Android-инженер спроектировал gateway для миллионов пользователей: опыт перехода в инфраструктуру</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Оптимизация]]></category>
      <category><![CDATA[Парсинг]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[App Store]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Kubernetes]]></category>
      <category><![CDATA[Инфраструктура]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 23 Jun 2026 07:41:54 GMT</pubDate>
      <content:encoded><![CDATA[<p><i>Перешёл из Android-разработки в инфраструктуру и спроектировал gateway для платформы с миллионами пользователей. Делюсь опытом: какие пробелы пришлось закрывать, почему мобильный бэкграунд — это преимущество, и с чего начать, если думаете о похожем переходе. </i></p><h2>Почему инфраструктура начинает привлекать больше, чем фичи</h2><p>С фичами всё прозрачно: написал код — увидел результат на экране. Быстрая и понятная обратная связь. Но со временем замечаешь, что проблемы повторяются. Приложение тормозит не из-за плохого кода, а потому что на один экран уходит пять-шесть сетевых вызовов. Логика на клиенте. Хочешь что-то изменить — готовь релиз, проходи App Store Review и жди недели, пока обновление дойдёт до всех.</p><p>Я перешёл в Android-инфраструктуру — начал делать инструменты для других мобильных разработчиков. Это помогло увидеть: главные проблемы не в фичах, а в слое между приложением и бэкендом.</p><p>Возвращаться к фичам стало неинтересно. В инфраструктуре задачи сложнее, результат измеряется метриками — latency, error rate, скорость релизов, — а влияние на всю систему, а не на один экран.</p><h2>Что Android даёт для инфраструктуры — а чему учиться с нуля</h2><p>Мобильный бэкграунд оказался не балластом, а преимуществом. Я понимал ограничения изнутри. Backend-инженер может прочитать, что мобильные сети ненадёжны, память ограничена, а батарея — критичный ресурс. Но прочитать и прочувствовать — разное. Я годами наблюдал, как приложение “захлёбывается” на устройствах среднего сегмента. Знал, что 60% пользователей сидят именно на таких. Видел, как баг, который мы починили за день, продолжает висеть у людей неделями — просто потому, что они не успели обновиться.</p><p>Когда я проектировал gateway, я точно знал, что почувствуют мобильные разработчики, если ошибусь. Добавить ещё один сетевой вызов — это будет не бесплатно. Оставить логику в приложении — значит отдать её на устройство, которое я не контролирую.</p><p><b>Чего именно не хватало?</b> Я неплохо понимал мобильную сторону, но совершенно не ориентировался в распределенных системах. Знал, например, что такое таймаут, но не представлял, как выставить его в цепочке из пяти сервисов так, чтобы одно медленное звено не обрушило весь экран пользователя. Понимал, что сети падают, но не умел проектировать систему, способную оставаться на плаву в таких условиях.</p><p><b>Чему пришлось учиться с нуля? </b>Операционному мышлению. В Android ты выпускаешь релиз — и он либо работает, либо нет. Если крашится, починишь в следующей версии. В инфраструктуре нет «следующей версии». Если gateway падает, всё приложение ложится для миллионов пользователей прямо сейчас.</p><p>Пришлось учиться думать в терминах деградации, частичных отказов, плавного падения.</p><p>Что делать, если один из пяти сервисов не ответил? Как понять, что мы катимся к инциденту, до того, как пользователи начнут жаловаться?</p><p>Этому в мобильной разработке не учат.</p><h2>Как я учился: пробелы, сроки и смена мышления</h2><p>Формального плана у меня не было — учился на практике. Это лучший, хотя и самый стрессовый способ. Пробелы выявляла практика. Столкнулся с нерешаемой задачей — понял, чего не знаю. Пошёл разбираться.</p><p>Учился итеративно, не пытаясь объять необъятное сразу. Gateway начинался как простой прокси. Затем добавили агрегацию ответов, потом — конфигурационные определения экранов. Каждый такой шаг вынуждал осваивать следующий уровень: circuit breakers, стратегии повторов, observability, планирование мощностей.</p><p>По срокам: техническая база уложилась в несколько месяцев. Паттерны осваиваются быстрее, чем кажется, особенно если сразу применять их к живой задаче. Гораздо дольше происходила смена образа мышления. Перейти от вопроса «работает ли фича?» к вопросу «что случится, когда это упадёт в три часа ночи?» — вот что заняло основное время.</p><h2>Что означает «выдающийся уровень» в инфраструктуре</h2><p><i>Когда говорят «спроектировать gateway с нуля и перевести на него живую платформу», за этими словами стоит не один навык, а целых три, и каждый требует совершенно разной подготовки.</i></p><p>Проектирование с нуля — это не рисование квадратиков на доске и не выбор модного стека. Это в первую очередь определение границ: что система будет делать, а что — категорически нет, и как с ней станут взаимодействовать десятки команд. Настоящая сложность здесь в том, чтобы предвидеть, что именно сломается, и заложить защиту от этого ещё до того, как написан хоть один файл с кодом.</p><p>Затем — миграция живой системы, где права на ошибку практически нет. Приложение нельзя выключить или отрепетировать в реальном масштабе. Остаётся только постепенный перевод трафика: shadow mode → 1% → 5% → 25% → 50% → 100%, с автоматическим откатом при любом росте ошибок. И всё это — пока миллионы пользователей активно работают с продуктом, не подозревая, что под капотом идёт замена двигателя на ходу. Такой уровень дисциплины и инструментации приходит только с практикой.</p><p>Наконец, владение надёжностью. Gateway — единая точка отказа: упал он, упало всё. Годы уходят на то, чтобы сделать его скучным и предсказуемым: резервирование, автомасштабирование, circuit breakers, режимы деградации, еженедельный пересмотр мощностей. Высший пилотаж — когда о системе просто не думаешь, потому что она работает.</p><h2>Почему путь в инфраструктуру доступнее, чем кажется?</h2><p>Карьерные траектории в инфраструктуре редко бывают чётко описаны. Здесь нет готового чек-листа в духе «диплом по Computer Science, пять лет в бэкенде, обязательное знание Kafka и Kubernetes». С одной стороны, такая неопределённость пугает. С другой — именно она и делает этот путь более доступным, чем принято думать.</p><p>Когда перед тобой лежит жёсткий список формальных требований, люди часто отсеивают себя сами, даже не попробовав. А в инфраструктуре по-настоящему важно только одно: можешь ли ты решать задачи. Я пришёл сюда без профильного диплома и учился ровно тому, что требовалось в моменте, потому что задачи сами подталкивали к этому.</p><p>Индустрия, к слову, до сих пор не слишком хорошо умеет проверять те навыки, которые на этом уровне оказываются решающими: умение видеть ограничения на стыке систем, предвидеть сценарии отказов, двигать людей к соглашению. Всему этому учатся не до начала работы, а непосредственно в процессе.</p><p>Поэтому если вы мобильный инженер и размышляете, можно ли перейти в инфраструктуру, — вопрос не в том, правильный ли у вас бэкграунд. Вопрос в другом: готовы ли вы учиться тому, чего пока не знаете, и способны ли обратить то, что уже понимаете, в собственное преимущество. Если ответ «да» — путь для вас открыт. Просто указателей на нём пока не расставили.</p><h2>Мобильный бэкграунд как преимущество архитектора</h2><p>Считаю ли я, что мобильный опыт сделал меня лучшим архитектором для mobile-first продуктов? Безоговорочно, да.</p><p>Я помнил, как ощущается медленный экран на устройстве среднего сегмента. Помнил, что случается, когда API возвращает слегка неправильные данные и приложение падает при парсинге. Помнил то чувство, когда баг уже в проде, а ты ждёшь App Store Review и ничего не можешь исправить.</p><p>Поэтому когда я проектировал gateway, я не занимался абстрактной «оптимизацией перформанса». Я опирался на совершенно конкретный опыт. Знал, что убрать один сетевой round trip — это подарок каждому мобильному разработчику. Знал, что перенос логики на сервер означает перенос в место, где я могу починить всё за минуты, а не за недели.</p><p>Лучшая инфраструктура для мобильных продуктов строится теми, кто сам их создавал и знает все узкие места не понаслышке. Этот опыт даёт верное направление: ты чувствуешь, где настоящие проблемы, потому что сталкивался с ними лично. Такому не учат по книгам.</p><h2>Коротко: что делать, если думаете о переходе</h2><ul><li>Найдите промежуточный шаг. Не прыгайте сразу в бэкенд. Начните с задач на стыке: оптимизация API, инструменты для мобильных разработчиков, улучшение сетевого слоя.</li><li>Используйте мобильный контекст как рычаг. Вы понимаете то, о чём бэкенд-инженеры только догадываются. Говорите об этом вслух.</li><li>Учитесь измерять невидимое. В инфраструктуре результат — это метрики: latency, error rate, скорость релизов. Учитесь рассказывать историю через цифры.</li><li>Проектируйте под отказ, а не тушите пожары. Senior-уровень — это определить, что сломается и кто за это отвечает, до того, как оно сломается.</li><li>Не ждите разрешения. Путь не размечен, но он открыт. Начните с малого — и двигайтесь туда, где задачи становятся интереснее.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Как приручить legacy-код: безопасная модернизация без заморозки фич</title>
      <link>https://tproger.ru/articles/kak-priruchit-legacy-kod-bezopasnaya-modernizaciya-bez-zamorozki</link>
      <comments>https://tproger.ru/articles/kak-priruchit-legacy-kod-bezopasnaya-modernizaciya-bez-zamorozki?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[KODE]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-priruchit-legacy-kod-bezopasnaya-modernizaciya-bez-zamorozki</guid>
      <description><![CDATA[<p>Как модернизировать legacy-код без остановки продукта: Strangler Fig Pattern, feature flags, shadow testing и безопасная миграция данных. Практика и антипаттерны.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-priruchit-legacy-kod-bezopasnaya-modernizaciya-bez-zamorozki">Как приручить legacy-код: безопасная модернизация без заморозки фич</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Ruby]]></category>
      <category><![CDATA[MySQL]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Рефакторинг]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Финтех]]></category>
      <category><![CDATA[ICO]]></category>
      <category><![CDATA[Redis]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Twitter]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Kubernetes]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[OpenTelemetry]]></category>
      <category><![CDATA[PostgreSQL]]></category>
      <category><![CDATA[DeFi]]></category>
      <category><![CDATA[Grafana]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Legacy]]></category>
      <category><![CDATA[Техника]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 23 Jun 2026 06:16:57 GMT</pubDate>
      <content:encoded><![CDATA[<p>Legacy-код — одна из самых болезненных тем в инженерных командах. Обычно все понимают, что система устарела: архитектура мешает быстро выпускать изменения, новые фичи приходится встраивать через обходные пути, тесты либо неполные, либо отсутствуют, а любое изменение в одном модуле неожиданно ломает другой.</p><p>Но при этом к такому коду часто боятся прикасаться. И не без причины. В старых системах редко бывает понятная карта зависимостей. Документация устарела, часть знаний живет только в головах нескольких разработчиков, а бизнес при этом продолжает ждать новых релизов, интеграций и продуктовых экспериментов.</p><p>Так появляется классическая ловушка legacy: систему надо модернизировать, но остановить развитие нельзя. Переписать всё с нуля страшно, поддерживать как есть — всё дороже. В результате продукт обрастает временными решениями, скорость разработки падает, а стоимость каждого следующего изменения растет.</p><p>Хорошая новость в том, что модернизация legacy-кода не обязана быть большим взрывом. Старую систему можно менять постепенно, сохраняя рабочий продукт, не замораживая фичи и не устраивая один критический релиз, от которого зависит всё.</p><h2>Почему Big Bang-переписывание чаще всего заканчивается плохо</h2><p>Когда команда долго живет с устаревшей системой, идея переписать всё с нуля выглядит очень соблазнительно. Кажется, что можно наконец избавиться от технического долга, выбрать нормальную архитектуру, перепроектировать модули, покрыть всё тестами и начать «правильно».</p><p>На старте такой план часто звучит логично. Особенно если текущая система действительно мешает развитию. Например, мобильное приложение растет, у него уже миллионы пользователей, бэкенд написан несколько лет назад как монолит, а каждая новая фича требует изменений в десятке мест. Команда устала чинить регрессии, бизнес устал ждать, и всем хочется «один раз нормально переписать».</p><p>Проблема не в самой идее переписывания, а в условиях, при которых оно проваливается. Большой риск возникает, когда совпадают четыре фактора: переписывание занимает много месяцев, в это время бизнес продолжает развивать старую систему, новая версия покрывает сразу большую часть функциональности, а откат связан с миграцией данных. Если все четыре пункта присутствуют, Big Bang почти гарантированно превратится в долгий и дорогой проект.</p><p>Допустим, команда решила переписать модуль заказов в e-commerce-продукте. В старой версии есть корзина, промокоды, доставка и оплата. Команда планирует за полгода сделать новый сервис заказов. Но за эти полгода бизнес добавляет подписки, подарочные сертификаты, частичную оплату бонусами и новую логику возвратов. В итоге новая система, которую проектировали под старые требования, к моменту релиза уже нуждается в доработке.</p><p>Есть и другая проблема: большой релиз почти всегда несет максимальный риск. Если вы заменяете крупный кусок системы целиком, ошибка влияет сразу на большую часть пользователей. Откат тоже становится сложным, потому что новая логика уже связана с новыми данными, контрактами и интеграциями.</p><p>Big Bang всё-таки бывает оправдан — но в узких условиях. Если кодовая база молодая (год-два), пользователей мало, у системы нет критичного состояния в БД и продукт можно временно заморозить или вести в обоих контурах параллельно, полное переписывание может оказаться дешевле постепенной миграции. Это редкая ситуация, и она быстро исчезает по мере роста продукта. В зрелых системах безопаснее работает другой подход — постепенная архитектурная эволюция.</p><h2>Пример: как команда переписала сервис документов и потеряла полгода</h2><p>Команда сопровождала сервис — старый модуль на aiohttp с Pydantic v1, через который проходила вся обработка путевых листов и актов осмотра транспорта. Сервис существовал шесть лет, был покрыт тестами фрагментарно, а его API использовали мобильное приложение водителей, диспетчерская веб-панель и пакетный импорт.</p><p>Команда решила переписать сервис целиком: перейти на FastAPI, обновить Pydantic до v2, заодно почистить контракты и заменить внутреннее хранилище документов с MongoDB на PostgreSQL. План был рассчитан на четыре месяца.</p><p>Через восемь месяцев проект всё ещё не был готов к выкатке, а к десятому месяцу команда откатила миграцию полностью. Причин было несколько.</p><p>Во-первых, переписывание шло параллельно с продуктовой разработкой. За время миграции бизнес добавил два новых типа документов и изменил правила подписи актов. Новая система проектировалась под старые требования и к моменту готовности уже не соответствовала продукту.</p><p>Во-вторых, команда не написала характеристических тестов. Поведение «как есть» нигде не было зафиксировано, и расхождения находились только в продакшене после переключения.</p><p>В-третьих, у старого сервиса были скрытые побочные эффекты, о которых никто не помнил. При смене статуса документа публиковал событие в Kafka, которое читал биллинг и сервис аналитики. В новой реализации это поведение не было воспроизведено, потому что в коде оно выглядело как «лишний» вызов. После переключения биллинг перестал получать события, и расхождение обнаружили только через две недели — по жалобе финансового отдела.</p><p>В-четвёртых, переключение было сделано «в лоб»: маршрут в API Gateway просто перенаправили на новый сервис. Фича-флага не было, теневого запуска не было, плана отката не было. Когда выяснилось, что новый сервис строже валидирует исторические форматы документов и отклоняет часть старых записей, быстро вернуться на старую реализацию не получилось — её к тому моменту уже отключили на стенде, а в БД успели уйти записи в новом формате.</p><p>В итоге миграцию свернули, потратив около десяти человеко-месяцев и потеряв доверие бизнеса. Сервис до сих пор работает в исходной реализации, а команда переходит к плану, описанному ниже.</p><h2>Strangler Fig Pattern: как заменить систему по частям</h2><p>Один из самых практичных подходов к модернизации legacy-кода — Strangler Fig Pattern. В софтверном виде паттерн был сформулирован Мартином Фаулером в 2004 году под названием StranglerFigApplication. Идея проста: не переписывать систему целиком, а постепенно выносить отдельные части в новую реализацию.</p><p>Название пришло из биологии. Фикус-душитель растет вокруг дерева-хозяина и постепенно вытесняет его. В архитектуре принцип похожий: старая система продолжает работать, новая функциональность появляется рядом, а затем отдельные потоки постепенно переводятся на новую реализацию.</p><p>Представим старый монолит интернет-магазина. Внутри него есть каталог, корзина, заказы, платежи, скидки, личный кабинет и уведомления. Переписать всё сразу — рискованно. Но можно начать с относительно изолированного участка, например с уведомлений.</p><p>Сначала команда описывает текущий контракт: какие события приходят в модуль уведомлений, какие каналы используются, какие шаблоны отправляются, какие ошибки считаются допустимыми. Затем рядом создается новый сервис уведомлений, который реализует тот же контракт. На первом этапе он может даже не отправлять реальные сообщения, а только принимать события и логировать результат. После проверки часть трафика переводится на новую реализацию. Когда сервис стабилизируется, старый код уведомлений удаляется из монолита.</p><p>Strangler Fig хорошо работает там, где между старым и новым кодом есть сетевая граница: HTTP, message bus, RPC. Если такой границы нет — например, нужно постепенно заменить функцию или класс внутри одного процесса — используется родственный паттерн Branch by Abstraction: над старой реализацией создается абстракция, рядом пишется новая реализация, переключение происходит через конфигурацию или фича-флаг, после стабилизации старая ветка удаляется. Снаружи это выглядит как Strangler Fig, но без сетевого прокси.</p><p>Такой подход снижает риск. В системе нет одного большого релиза, где всё меняется сразу. Есть серия небольших контролируемых изменений. Каждое можно протестировать, измерить и откатить.</p><h2>Главное правило: сначала повторить поведение, потом улучшать</h2><p>Одна из частых ошибок при модернизации legacy-кода — попытка одновременно переписать систему и улучшить бизнес-логику. Команда смотрит на старый модуль и думает: «Раз уж мы его трогаем, давайте сразу сделаем нормальную архитектуру, изменим контракты, уберем странные кейсы и перепишем поведение».</p><p>Это опасный путь. В legacy-системах странное поведение часто существует не случайно. За ним может стоять неочевидное бизнес-правило, старый клиент, интеграция с внешней системой или исторический баг, на который уже кто-то завязался.</p><p>Например, в системе расчета налогов может быть правило: для контрактов, заключенных до 2018 года, НДС округляется в меньшую сторону до целого рубля, а для всех остальных — по математическим правилам. Новый разработчик может решить, что это ошибка, и «исправить» округление. Но потом выяснится, что часть крупных клиентов держит это поведение в своих сверках, а смена правила приведет к расхождениям в актах и претензиям.</p><p>Прежде чем менять поведение, его нужно зафиксировать. Для этого пишут характеристические тесты (characterization tests, иногда называемые golden master или approval tests). Идея простая: на реальных данных или их обезличенных копиях прогоняется старая реализация, её ответы сохраняются как эталон, и любые будущие изменения, отклоняющиеся от эталона, отлавливаются автоматически. Тесты пишутся не для красоты, а для того, чтобы зафиксировать существующее поведение — даже странное — перед тем, как его трогать. Подробно эта техника описана у Майкла Физерса в книге Working Effectively with Legacy Code; на практике её удобно реализовать через библиотеки семейства approval-tests (approvaltests-python, approvaltests-java и аналоги).</p><p>Поэтому первый этап модернизации — не улучшение, а воспроизведение текущего поведения. Новая реализация должна вести себя так же, как старая. Даже если старое поведение кажется странным. Только после стабилизации можно отдельно обсуждать, что именно стоит менять.</p><h2>Feature toggles: как включать новую логику без риска</h2><p>Feature toggles, или фича-флаги, — один из главных инструментов безопасной миграции. Они позволяют включать и выключать новую логику без деплоя.</p><p>В обычной разработке релиз часто выглядит бинарно: код либо выкатили, либо нет. При миграции legacy это неудобно. Гораздо безопаснее иметь возможность включить новую реализацию для 1% пользователей, затем для 10%, потом для половины аудитории и только после этого для всех.</p><p>Например, команда переносит расчет стоимости доставки из монолита в новый сервис. С помощью фича-флага это выглядит так:</p><p>user_id передается явно, чтобы решение «попал ли пользователь в новый сегмент» было стабильным от запроса к запросу. Иначе один и тот же клиент будет получать разные ответы при обновлении страницы, и поведение системы станет непредсказуемым.</p><p>На первом этапе флаг включают только для внутренней команды. Потом для тестового сегмента пользователей. Затем для небольшой доли реального трафика. Если метрики стабильны, долю увеличивают. Если появляются ошибки, флаг выключают, и пользователи снова идут в старую реализацию.</p><p>Важно различать два разных типа флагов. Флаг постепенной выкатки (rollout flag) меняется редко и контролирует, какой процент пользователей видит новую логику. Kill switch — отдельный флаг, единственная задача которого — мгновенно выключить новую реализацию при инциденте. Kill switch должен опрашиваться на каждом запросе, его кэширование должно жить секунды, а не минуты, и он принципиально не должен зависеть от той системы, которую он выключает. Иначе в момент аварии может оказаться, что выключатель сам недоступен.</p><p>В качестве инфраструктуры для флагов команды обычно берут одну из платформ: LaunchDarkly, Unleash, Flagsmith, GrowthBook, либо собирают собственную поверх Redis или конфигурационного сервиса. Для миграции важны три свойства: быстрое распространение изменений (секунды, а не минуты), поддержка таргетинга по пользователю/сегменту и аудит — кто и когда менял флаг.</p><p>Важно, что фича-флаг — это не просто if в коде. Для серьезной миграции нужны правила: кто может включать флаг, как быстро его можно отключить, какие метрики отслеживаются, когда флаг должен быть удален.</p><p>Последний пункт особенно важен. Если флаги не удалять, система быстро превращается в набор ветвлений, где никто уже не понимает, какая логика актуальна.</p><h2>Shadow testing: как проверить новую систему на реальном трафике</h2><p>Feature toggles помогают безопасно переключать пользователей. Но перед этим хорошо бы понять, совпадает ли новая логика со старой. Для этого используют shadow testing.</p><p>Shadow testing — это запуск новой реализации параллельно старой, но без влияния на пользователя. Пользовательский запрос по-прежнему обрабатывает старая система, а новая получает копию запроса и считает результат «в тени». Пользователю этот результат не показывается. Команда только сравнивает ответы.</p><p>Например, есть старый модуль расчета скидок. Он учитывает промокоды, сегмент пользователя, историю покупок, регион и партнерские условия. Команда пишет новый сервис скидок. Чтобы не переключать пользователей сразу, можно запустить теневой режим:</p><p>Два момента, на которые стоит обратить внимание в этом коде. Теневой вызов запускается через asyncio.create_task — корутина сразу планируется в event loop и начнёт выполняться, как только функция вернёт управление. И весь блок завернут в try/except: исключение в новой логике не должно ронять основной запрос. Без этих двух свойств shadow testing рискует ухудшить продакшен вместо того, чтобы безопасно его проверить.</p><p>Небольшая оговорка для продакшена: event loop держит на task только слабую ссылку, и без сохранённой ссылки задача может быть собрана сборщиком мусора прямо во время выполнения. В реальном коде Task имеет смысл класть в set фоновых задач и удалять оттуда через add_done_callback. В примере выше эта обвязка опущена для читаемости.</p><p>Для критичной доменной логики — платежей, биллинга, расчета тарифов — допустимый уровень расхождения должен быть около нуля: цель в shadow-режиме не «как можно меньше различий», а «понимаем каждое расхождение». Для менее чувствительных доменов (рекомендации, ранжирование результатов поиска) можно жить с расхождением в долях процента, но и там расхождения нужно классифицировать, а не игнорировать. Возможно, это баги новой реализации. А возможно, старая система содержит устаревшую логику, которую нужно отдельно обсудить с бизнесом.</p><p>Shadow testing особенно полезен для критичных доменных частей: платежей, биллинга, расчета тарифов, персональных предложений, транзакций. Там нельзя просто «попробовать на пользователях» и посмотреть, что будет.</p><p>При этом важно отличать теневую проверку чтения от теневой проверки записи. Чтение проверить относительно дёшево: запрос идёт в обе системы, ответы сравниваются, никаких внешних эффектов нет. С записью всё сложнее. Если новая реализация в shadow-режиме действительно создаст заказ, спишет деньги или отправит письмо, у пользователя возникнут двойные эффекты. Поэтому для writes либо вводят идемпотентные ключи и shadow-режим без реальных побочных действий (внешние вызовы заменены no-op-стабами, БД — отдельной shadow-копией), либо вообще отказываются от теневой проверки записи в пользу постепенной выкатки за фича-флагом.</p><p>Сравнение ответов в реальной системе тоже не сводится к одной функции compare. Нужно отдельно решать, как игнорировать «нормальный» шум (метки времени, идентификаторы, порядок коллекций), как сэмплировать трафик, чтобы не утопить хранилище расхождений, и как организовать триаж — кто и в каком ритме разбирает накопившиеся диффы. Готовые решения этого класса — GitHub Scientist (Ruby и его порты в другие языки), Twitter Diffy, либо собственный лёгкий регистратор поверх Kafka и таблицы расхождений.</p><h2>С чего начинать модернизацию</h2><p>Начинать лучше не с самого больного и не с самого центрального модуля. Это звучит контринтуитивно, потому что обычно хочется сразу взяться за главный источник проблем. Но если начать с ядра системы, команда быстро упрется в максимальное количество зависимостей и рисков.</p><p>Удобный способ выбрать первый кусок — оценить кандидатов по двум осям: насколько модуль критичен для бизнеса (low / high) и насколько сильно он связан с остальной системой (low / high). Начинать стоит с квадранта low-criticality + low-coupling: ошибки в нем не уронят бизнес-показатели, а малое количество зависимостей позволит провести миграцию полностью, не утянув за собой смежные модули. Высоко-критичные и сильно связанные части (платежи, ядро авторизации) трогают в последнюю очередь — на этот момент команда уже наберёт опыт безопасной миграции.</p><p>Хорошие точки входа обычно: уведомления, генерация отчетов, поиск, история операций, профиль пользователя, отдельная часть каталога. Важно, чтобы у команды была возможность описать контракт: какие данные входят, какие выходят, какие ошибки возможны, какие внешние системы участвуют.</p><p>Допустим, в банковском приложении есть старый модуль истории операций. Он медленный, сложно расширяется, но при этом не выполняет сами транзакции. Это хороший кандидат для первой миграции. Ошибка в истории операций неприятна, но обычно менее критична, чем ошибка в списании денег.</p><p>Команда может вынести чтение истории в отдельный сервис, сначала запустить его в shadow-режиме, потом включить для части пользователей, затем полностью перевести чтение на новую реализацию. При этом критичная транзакционная логика останется в старой системе до тех пор, пока команда не наберет опыт безопасной миграции.</p><h2>Миграция данных: самая сложная часть</h2><p>Большая часть статьи говорит о маршрутизации запросов и переключении трафика. Но в реальных проектах основная сложность лежит ниже — в данных. Старая и новая реализации почти всегда работают с общим состоянием: одной БД, одним хранилищем документов, одним набором очередей. Переехать туда «одним коммитом» нельзя.</p><p>Базовый рабочий приём — Expand-Contract (он же Parallel Change). Изменение схемы делается в три такта. На этапе expand в БД добавляются новые поля, таблицы или индексы, при этом старое поведение полностью сохраняется. Затем — migrate: обе реализации начинают писать и в старое, и в новое место (dual writes), а отдельный фоновый процесс делает backfill — заполняет новые поля историческими данными. После этого читатели по одному переключаются на новую схему. Только когда никто из читателей не использует старую структуру, наступает contract — удаление лишних колонок и таблиц.</p><p>Несколько практических деталей, которые часто упускают:</p><p>·         Dual writes — это не бесплатная операция. Две записи означают две точки отказа. Если одна из них упала, нужно решать, что делать: продолжать ли работу, ставить ли событие в очередь на повтор, помечать ли запись как несогласованную. Простое «сначала пишем туда, потом сюда» в продакшене на нагрузке приводит к расхождениям.</p><p>·         Backfill часто длиннее, чем кажется. На большой таблице миграция в одном UPDATE блокирует продакшен. Поэтому backfill делают батчами по N тысяч строк с паузами, отслеживают прогресс и предусматривают возможность остановить и продолжить.</p><p>·         Онлайн-изменения схемы на крупных таблицах делаются не штатным ALTER TABLE, а специализированными инструментами: gh-ost или pt-online-schema-change для MySQL, встроенные онлайн-механизмы PostgreSQL для индексов и колонок, Liquibase/Flyway — для управления версионированием изменений в репозитории.</p><p>·         Shadow testing данные не покрывает. Можно сравнить, что новая реализация возвращает то же, что и старая, но если за этим стоит другая схема в БД, проверка корректности самой миграции данных — это отдельная работа: сверки, контрольные суммы, выборочный аудит исторических записей.</p><p>Без этих шагов любая красивая фасадная архитектура наталкивается на разъезжающиеся данные — и тогда даже идеальный Strangler Fig снаружи не спасает.</p><h2>Прокси-слой как точка контроля</h2><p>Чтобы постепенно заменять legacy-код, нужно управлять маршрутизацией запросов. Для этого часто создают прокси-слой, API Gateway или фасад, через который проходит обращение к старой и новой логике. В терминах Domain-Driven Design такой слой часто называют Anti-Corruption Layer: он защищает новую реализацию от старых контрактов и наоборот, позволяя двум моделям сосуществовать без взаимного «загрязнения».</p><p>Без такой точки контроля миграция становится хаотичной. Часть клиентов ходит напрямую в старый модуль, часть — в новый, часть использует обходные пути, а команда теряет возможность централизованно переключать трафик.</p><p>Прокси-слой решает несколько задач. Он скрывает детали реализации от клиентов, позволяет направлять часть запросов в новую систему, поддерживает фича-флаги, собирает метрики и упрощает откат.</p><p>В качестве технической основы команды обычно берут один из трех вариантов: классический API gateway (Kong, AWS API Gateway), service mesh (Envoy, Istio) или более простой reverse proxy (NGINX, HAProxy). Service mesh особенно удобен, когда трафик уже идёт внутри Kubernetes-кластера: маршрутизацию можно менять конфигурацией, без правок кода клиентов и сервисов.</p><p>Например, мобильное приложение обращается к endpoint /orders/history. Раньше этот endpoint напрямую обслуживал монолит. После введения API Gateway приложение продолжает ходить по тому же контракту, но внутри gateway может решать, куда направить запрос: в legacy-модуль или новый сервис истории заказов.</p><p>Управление маршрутизацией обычно делается не «всё или ничего», а на основании атрибутов запроса: значения заголовка (X-Migration-Cohort: new), куки, хэша от user-id (стабильное разбиение пользователей на сегменты) или географического региона. Это позволяет выкатывать новую реализацию сначала на одну страну, на сотрудников самой компании или на тестовый сегмент — и только потом расширять охват.</p><p>Для клиента ничего не меняется. Для команды появляется управляемость.</p><h2>Наблюдаемость: без метрик миграция превращается в гадание</h2><p>Постепенная модернизация невозможна без нормальной наблюдаемости. Если команда не видит, что происходит внутри системы, она не сможет безопасно переключать трафик.</p><p>Минимальный набор — это логи, метрики и распределенная трассировка (distributed tracing). Нужно понимать, сколько запросов идет в старую и новую реализацию, сколько ошибок возникает, как меняется latency, где появляются таймауты, какие статусы возвращаются, какие бизнес-метрики проседают.</p><p>Технические метрики стоит формулировать не как «средний ответ» и «процент ошибок», а в терминах SLI и SLO: целевые показатели вида «99.9% запросов на /orders/history отвечают быстрее 300 ms за 30 дней» с явным error budget. Latency измеряется по перцентилям (p50, p95, p99) — среднее значение почти всегда обманчиво, а хвосты распределения говорят о реальном опыте пользователя. На время миграции имеет смысл выставить отдельные SLO для нового и старого пути и сравнивать их.</p><p>В качестве инструментов де-факто стандартом стал OpenTelemetry для трассировок, метрик и логов — единый протокол, который пишет в практически любое хранилище. Дальше — Prometheus и Grafana для метрик, Jaeger или Tempo для traces, Sentry или аналог для ошибок. Для миграции важна возможность фильтровать метрики по «варианту» — отдельно по старому и новому пути — иначе все цифры смешаются и реальную динамику будет не видно.</p><p>Технических метрик недостаточно. Если команда переносит оформление заказа, важно смотреть не только на 500 ошибки и время ответа, но и на конверсию в оплату, количество брошенных корзин, повторы запросов, обращения в поддержку.</p><p>Пример: новая система формально отвечает быстрее старой и не дает ошибок. Но после включения на 10% пользователей падает конверсия в оплату. Причина может быть не в серверной ошибке, а в изменении порядка полей, другом тексте сообщения или потере какого-то edge-case. Без бизнес-метрик команда может решить, что миграция успешна, хотя для продукта она уже создает проблему.</p><h2>Практическая последовательность миграции</h2><p>Рабочая последовательность обычно выглядит так.</p><p>Сначала команда выбирает ограниченный участок системы. На этом этапе важно не просто назвать модуль, а описать его границы. Какие сценарии он закрывает? Кто его вызывает? Какие данные он читает и пишет? Какие внешние интеграции использует? Какие неочевидные бизнес-правила в нем есть?</p><p>Затем поверх legacy-логики создается стабильный контракт. Это может быть API, фасад, gateway или отдельный слой внутри приложения. Главная задача — сделать так, чтобы клиенты зависели не от внутренней реализации, а от понятного интерфейса. На этом этапе полезно вспомнить про contract testing (Pact, Spring Cloud Contract): автотесты со стороны потребителей фиксируют, что именно они ожидают от API, и предупреждают о ломающих изменениях до того, как они доедут до продакшена.</p><p>После этого рядом пишется новая реализация. Она должна повторять текущее поведение, а не сразу становиться «идеальной версией будущего». На этом этапе полезно фиксировать все расхождения: где старая система работает странно, где требования не описаны, где бизнес-правила требуют уточнения.</p><p>Следующий этап — shadow testing. Новая система получает копии реальных запросов, считает результат, но пользователю по-прежнему возвращается ответ legacy. Команда сравнивает результаты и устраняет расхождения.</p><p>Когда новая реализация достаточно стабильна, начинается постепенное переключение через feature toggles. Сначала внутренние пользователи, потом 1% реального трафика, затем 5–10%, затем 50% и только после этого 100%.</p><p>На каждом этапе команда смотрит на метрики. Если всё стабильно, движение продолжается. Если появляются проблемы, флаг выключается, трафик возвращается в legacy, а команда разбирает причины.</p><p>Последний этап — удаление старого кода. Это не формальность, а обязательная часть миграции. И «удалить старый код» — это не один коммит, а явный Definition of Done: вырезана старая ветка кода, удалён фича-флаг, обновлена документация и схемы архитектуры, переименованы или удалены устаревшие дашборды и алерты, обновлены runbook’и для on-call и проведено короткое внутреннее обучение. Если этого не сделать, через полгода никто уже не вспомнит, какой путь актуален, и легаси-ветвление останется в коде навсегда.</p><h2>Откат миграций: дешёвый только пока не пошли записи</h2><p>Откатить миграцию, в которой ещё не было записи в БД, легко: достаточно переключить фича-флаг, и трафик снова идёт через старую реализацию. Откатить миграцию, в которой новая система уже неделю писала данные в новые таблицы, — отдельный, гораздо более тяжёлый разговор.</p><p>Поэтому ещё на этапе проектирования каждое изменение должно сопровождаться явным планом отката. Удобно различать три типа шагов.</p><p>Полностью обратимые шаги. Чтение через новый сервис, расчёт «в тени», новые метрики. Откат — выключить флаг. Это самый комфортный режим, и в нём стоит держать миграцию как можно дольше.</p><p>Обратимые с компенсацией. Новая реализация пишет дополнительные данные (например, дублирует операции в новую таблицу), но старый источник тоже обновляется. Откат возможен, но требует решить, что делать с уже записанными данными: оставить, очистить, синхронизировать. План этих действий должен быть написан до выкатки, не во время инцидента.</p><p>Forward-only. После некоторой точки откат становится невозможен — например, после того, как старая схема удалена или внешние интеграции перенастроены на новый сервис. Такие шаги допустимы, но к ним нужно приходить отдельно, осознанно, с особенно строгими SLO в предыдущем этапе. До forward-only-перехода имеет смысл подержать систему в режиме параллельной работы дольше, чем по графику.</p><p>Базовое правило: ни один шаг миграции не должен уходить в продакшен, если у команды нет письменного ответа на вопрос «как мы откатываемся в случае проблемы». Иначе при инциденте откатываться будут на ходу — и не факт, что успешно.</p><h2>Пример: как тот же сервис мигрировали со второй попытки</h2><p>После неудачного опыта команда взялась за тот же сервис заново, но изменила подход.</p><p>На первом шаге они зафиксировали поведение существующего сервиса. На самые часто используемые сценарии (создание путевого листа, подпись акта осмотра, выгрузка пакета документов за период) написали характеристические тесты на реальных продакшен-данных, обезличенных и сохранённых как фикстуры. Любое будущее изменение поведения теперь падало в CI как явное расхождение.</p><p>Параллельно команда провела инвентаризацию побочных эффектов. Из исходного кода и логов выяснилось, что сервис не только хранит документы, но и: публикует событие в Kafka при смене статуса, инкрементирует счётчик в Redis для рейтинга водителей, отправляет webhook во внешнюю систему партнёра, пишет в таблицу аудита. Каждый из этих эффектов попал в отдельный пункт чек-листа «что должно остаться» в новой реализации.</p><p>Затем команда выбрала первый кусок для выноса — не весь сервис, а только чтение документов (GET /documents/{id} и GET /documents/by-driver/{driver_id}). Это была наименее рискованная часть: ошибки в чтении неприятны, но не ломают финансовые потоки.</p><p>Новый сервис написали на FastAPI рядом со старым. На уровне API Gateway появилось правило маршрутизации: запросы на чтение шли в старый сервис, но в фоне дублировались в новый. Ответ пользователю всегда возвращал legacy, а ответ нового сервиса сравнивался с эталоном и записывался в отдельную таблицу для разбора. Использовали обёртку поверх asyncio.create_task — на ответ пользователя теневой вызов не влиял.</p><p>За три недели shadow-режима команда нашла четыре расхождения. Два оказались багами новой реализации (округление времени, неправильная сортировка вложений). Два — давно забытыми особенностями старого сервиса (одно поле возвращалось в UTC, другое — в локальной зоне; так было исторически, бизнес не возражал, но в новой реализации захотели единый формат). Все четыре зафиксировали явно: баги — починили, особенности — согласовали с продуктовой командой как осознанное изменение.</p><p>Когда расхождений не осталось, включили фича-флаг на сотрудников самой компании. Через неделю — на 1% реальных водителей. Дальше шаг по 5%, 25%, 50%, 100% с паузой в несколько дней между этапами. На каждом шаге следили не только за HTTP-ошибками и latency, но и за продуктовыми метриками: количество подписанных актов, время от открытия документа до подписи, доля повторных запросов. Один раз пришлось откатиться с 25% на 5% — в одном из регионов выросло время отклика из-за неэффективного запроса. Исправили, выкатили снова.</p><p>Через два месяца чтение полностью перешло в новый сервис. Старый код чтения и фича-флаг удалили в том же релизе. После этого по той же схеме мигрировали запись документов, потом публикацию событий, потом импорт из внешних систем. Полная миграция заняла девять месяцев — почти столько же, сколько провалившийся Big Bang, — но продукт всё это время продолжал развиваться, инцидентов не было, и в конце команда осталась с системой, которую понимает.</p><h2>Типичные ошибки при работе с legacy</h2><p>Первая ошибка — пытаться улучшить всё сразу. Команда одновременно меняет архитектуру, бизнес-логику, контракты и инфраструктуру. В результате становится невозможно понять, какая именно часть вызвала проблему. Правильнее сначала воспроизвести поведение, стабилизировать новую реализацию и только потом улучшать.</p><p>Вторая ошибка — недооценивать скрытые зависимости и побочные эффекты. Legacy-код часто делает больше, чем кажется. На один и тот же вызов могут быть навешаны: запись в таблицу аудита, инкремент счётчика в кэше, публикация события в очередь, обновление статуса связанной сущности, инвалидация кэша, дёрганье webhook’а во внешнюю систему. Если в новой реализации воспроизвести только явный путь, скрытые потребители молча перестанут получать данные — и узнают об этом через жалобу бизнеса, а не через ошибку в логах. Поэтому перед выносом любого модуля имеет смысл составить инвентаризацию побочных эффектов: пройтись по коду и логам и выписать каждое нелогичное действие отдельным пунктом чек-листа.</p><p>Третья ошибка — отсутствие наблюдаемости. Без логов, метрик и трассировки команда не управляет миграцией, а угадывает. Особенно опасно смотреть только на технические ошибки и игнорировать бизнес-показатели.</p><p>Четвертая ошибка — не договариваться с бизнесом. Модернизация не должна быть невидимой «инженерной активностью в стол». Её нужно встраивать в roadmap, объяснять эффект и договариваться о приоритетах. Если бизнес не понимает, зачем команда тратит время на миграцию, работа будет постоянно проигрывать новым фичам.</p><p>Пятая ошибка — не удалять старый код. Временное сосуществование старой и новой логики нормально. Вечное сосуществование — нет. Если legacy не удаляется, технический долг не уменьшается, а просто меняет форму.</p><p>Шестая ошибка — не удалять фича-флаги после миграции. Флаг, который сыграл свою роль и больше никогда не выключается, превращается в постоянное ветвление в коде. Через год команда не помнит, можно ли удалить такую ветку или там сидит важный edge-case. Через два — кода с такими «мёртвыми» флагами становится больше, чем основной логики. Поэтому каждый флаг должен заводиться с условием удаления («после полной выкатки и двух недель стабильной работы») и иметь ответственного, кто этим удалением займётся.</p><p>Отдельно стоит упомянуть организационную сторону. Закон Конвея работает и в обратную сторону: если новый и старый код владеются разными командами с разными приоритетами, миграция будет тормозиться независимо от выбранного паттерна. На время миграции имеет смысл явно проговорить, кто отвечает за переход, и не разделять старую и новую реализации между несовместимыми roadmap’ами.</p><h2>Компромиссы, к которым нужно быть готовыми</h2><p>Постепенная модернизация безопаснее Big Bang-переписывания, но она не бесплатна. Некоторое время система будет сложнее, чем раньше. В ней появятся старый и новый код, прокси-слой, фича-флаги, дублирование логики, дополнительные метрики.</p><p>Shadow testing увеличит нагрузку на инфраструктуру, потому что часть запросов будет обрабатываться дважды. Команде придется поддерживать дисциплину: документировать контракты, отслеживать флаги, удалять старую реализацию после миграции, поддерживать contract-тесты в актуальном состоянии.</p><p>Но это контролируемая сложность. Она распределена во времени и управляется инженерными практиками. В отличие от Big Bang-риска, где команда долго работает с минимальной обратной связью, а потом выкатывает один большой релиз с максимальной неопределенностью.</p><h2>Когда Strangler Fig особенно оправдан</h2><p>Постепенная миграция особенно хорошо подходит для систем, где downtime невозможен или слишком дорог. Это финтех, e-commerce, биллинг, мобильные бэкенды с большой аудиторией, высоконагруженные продукты, старые монолиты и системы с большим количеством интеграций.</p><p>Если продуктом ежедневно пользуются сотни тысяч или миллионы людей, нельзя позволить себе «переписать и посмотреть, что будет». Нужно менять архитектуру так, чтобы пользователь не замечал процесса миграции.</p><p>Этот подход также полезен там, где бизнес продолжает активно развивать продукт. Если фичи нельзя заморозить на полгода, модернизация должна идти параллельно с продуктовой разработкой.</p><h2>Когда модернизацию лучше не делать</h2><p>Постепенная миграция — мощный инструмент, но у неё тоже есть стоимость, и иногда правильный ответ — оставить систему как есть. Несколько сценариев, в которых модернизация плохо окупается.</p><p>Продукт, который уходит из эксплуатации. Если через год сервис будет выключен или заменён на покупное решение, тратить квартал на его рефакторинг бессмысленно. Достаточно стабилизировать то, что есть.</p><p>Модуль, который никто не трогает. Если код десятилетней давности продолжает работать, не падает, не требует изменений и не вызывает инцидентов, его «уродливость» — не повод его переписывать. Цель модернизации — упростить будущие изменения; если будущих изменений нет, цели тоже нет.</p><p>Регулируемые системы с тяжёлой ресертификацией. В банковских, медицинских и государственных контурах любое изменение в критичной системе может потребовать повторной сертификации, перепрохождения аудитов, обновления договорной обвязки. В таких условиях стоимость модернизации может на порядок превышать стоимость поддержки текущей реализации, и решение нужно принимать вместе с владельцем продукта и юристами, а не только инженерным составом.</p><p>Простой тест: если на вопрос «какой бизнес-сценарий мы откроем после миграции» нет внятного ответа — модернизацию имеет смысл отложить и заняться чем-то другим.</p><h2>Что получает команда</h2><p>Главный результат постепенной модернизации — управляемость. Команда начинает лучше понимать систему, контролировать изменения и снижать риск инцидентов.</p><p>Появляются понятные контракты, наблюдаемость, практика безопасных релизов, культура удаления старого кода. Разработчики перестают бояться legacy, потому что у них появляется метод, а не только желание «когда-нибудь всё переписать».</p><p>Для бизнеса это тоже выгодно. Продукт продолжает развиваться, сроки становятся более прогнозируемыми, риски крупных сбоев снижаются, а технический долг постепенно уменьшается.</p><h2>Модернизация — это процесс, а не проект</h2><p>Legacy нельзя «починить за квартал». Если система развивалась годами, она не станет простой после одного рефакторинга. Но её можно системно улучшать.</p><p>Strangler Fig Pattern, Branch by Abstraction, feature toggles, shadow testing и аккуратная миграция данных дают рабочую модель: выбрать ограниченный участок, описать контракт, реализовать новую версию, проверить её на реальном трафике, постепенно переключить пользователей и удалить старый код.</p><p>Это не самый быстрый путь. Зато он управляемый. А в зрелых продуктах управляемость важнее скорости.</p><p>Потому что цель модернизации — не написать красивую новую систему. Цель — сделать так, чтобы продукт продолжал развиваться, команда могла безопасно вносить изменения, а пользователи не становились участниками инженерного эксперимента.</p>]]></content:encoded>
    </item>
    <item>
      <title>Локализация через Enum, неожиданный Дзен, быстрее только телепатия</title>
      <link>https://tproger.ru/articles/lokalizaciya-cherez-enum-neozhidannyj-dzen-bystree-tolko-telepat</link>
      <comments>https://tproger.ru/articles/lokalizaciya-cherez-enum-neozhidannyj-dzen-bystree-tolko-telepat?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Самир Гёзалов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/lokalizaciya-cherez-enum-neozhidannyj-dzen-bystree-tolko-telepat</guid>
      <description><![CDATA[<p>Надоело плодить JSON/ARB файлы при локализации Flutter-приложения? Автор делился личным опытом и показал, как элегантно настроить локализацию через Enum без внешних зависимостей, генераторов кода и боли в рантайме.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/lokalizaciya-cherez-enum-neozhidannyj-dzen-bystree-tolko-telepat">Локализация через Enum, неожиданный Дзен, быстрее только телепатия</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Алгоритмы и структуры данных]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Массивы и строки]]></category>
      <category><![CDATA[Красивый хак]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[JSON]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Flutter]]></category>
      <category><![CDATA[Dart]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 04 Jun 2026 04:45:17 GMT</pubDate>
      <content:encoded><![CDATA[<p>Решил давеча добавить локализацию в свое приложение на Flutter. Задачка-то простая: пара кнопок, пару десятков переменных. Казалось бы, делов на пять минут. Но Flutter «из коробки» сразу попытался всучить мне какую-то дичь в виде ARB и JSON файлов. Хмм, из прошлого с такими реализациями лишь печаль, так что…</p><h2>Попытка №1. Путь в лоб: Классы и интерфейсы</h2><p>Самый очевидный способ - создать родительский класс с переменными, а языки сделать его наследниками. Но это просто… фиаско. Даже если не писать from/toJson, процесс выглядит так:</p><ol><li>Объявил переменную в родителе.</li><li>Прописал её в конструкторе.</li><li>Повторил то же самое для всех дочерних классов (всех языков).</li></ol><p>Если бы я работал на аутсорсе в Индии и мне платили за количество строк кода - это был бы идеальный вариант. Но я хотел, чтобы одной строки при объявлении было достаточно.</p><h2>Попытка №2. Стандарт (ARB/JSON)</h2><p>Я поплевался, но решил попробовать - «стандарт» всё-таки. Мало ли, может чего поменялось за годы. Вроде всё завелось, но сам процесс… это боль. Бегать по разным файлам, чтобы добавить одну строчку - так себе удовольствие.</p><p>Почему я от него окончательно отказался? Когда данных становится реально много (десятки языков, тысячи строк), ты попадаешь в ловушку: тебе нужно эту махину либо целиком держать в памяти, либо постоянно подгружать и парсить. Ради смены одного слова на кнопке заставлять девайс ворочать тяжелые JSON-ы в рантайме - так себе затея для производительности.</p><h2>Попытка №3. Таблицы и костыли</h2><p>Подумал: «Окей, почему бы не подтянуть старый добрый CSV или вообще закинуть всё в табличку?». И тут официальный пакет локализации сказал: «Извини, мужик, тут наши полномочия всё».</p><p>Ну, я тоже не пальцем деланный. Решил припахать нейросеть, чтобы она написала мне собственный генератор. Флоу получился такой:</p><ol><li>Добавляю строку в таблицу.</li><li>Запускаю генератор.</li><li>Он лепит «родительский» файл.</li><li>После Freezed генерит toJson, fromJson…</li></ol><p>Короче, весело не было. Мало того, я понимал: если языков станет много, мне придется добавлять их все разом и единовременно, иначе в рантайме всё начнет плеваться ошибками. Плюс та же проблема с памятью: таблица - это структура, которую надо парсить и хранить.</p><h2>Красный флаг для программиста</h2><p>Но главная проблема даже не в этом. Необходимость запускать генератор после добавления каждой переменной - это для любого программиста красный флаг.</p><p>Что происходит на практике? Когда ты пишешь код и тебе нужно добавить одну несчастную строку, тебе лень (читать: нехочется выходить из потока творения) запускать весь этот цикл с генерацией. Ты просто её хардкодишь в надежде «потом скопом всё добавлю одним махом». А «потом» наступает тогда, когда уже весь проект завален хардкодом, и вычищать его - то еще удовольствие. Даже нейросетки с такими запросами помогают не с первого раза, и с сомнительной эффективностью.</p><p>Нутром чуял - флоу неправильный. В итоге я пришел к тому, что называю идеальной локализацией.</p><h2>Эволюция лени: почему Enum победил интерфейсы</h2><p>Я начал мучить нейросеть разными вариантами реализации. Для меня в первую очередь был важен флоу работы: мне было тупо лень писать больше одной строки кода, чтобы добавить переменную.</p><p>Моя философия проста: строку захардкодить - моментально. Добавление даже одной строки в другом файле требует доп. действий. НО, если действий минимум, то кодер поймет, что выигрыш во времени сейчас мизерный против больших потерь в будущем, и исправно добавит строку в правильное место. Этого не произойдет, если для добавления строки нужно «отчитаться» в десяти местах.</p><h2>Попытка №4. Рекорды (Records)</h2><p>Присматривался к рекордам. С ними удобно: не нужно писать конструкторы. Но есть подвох: как только ты добавил переменную в один язык, компилятор тут же сходит с ума и требует добавить её во все остальные прямо сейчас. Никакой гибкости и возможности оставить «на потом».</p><h2>Идеальный костыль: Enum</h2><p>В итоге я пришел к самому, казалось бы, «неправильному» способу, который оказался идеальным. Enum. Само название намекает на перечисления и цифры, но оказалось, что хранить в нем буквы и целые фразы - это лучший путь для локализации.</p><p>Знаете, мне моё решение так понравилось, что я пошел к нейросетям и проверил его со всех сторон. Все модели  остались в полном восторге. Под это дело я даже подготовил монументальную «нейро-статью» на полтора часа внимательного чтения, со всеми графиками, бенчмарками и анализом производительности.</p><p>Но потом я заглянул в правила Хабра, прислушался к голосу разума и понял: никто не хочет читать полтора часа сухой статистики. Лучше я просто расскажу вам свою историю «от первого лица», как я докатился до такой жизни. Ну, а если вы совсем уж фанаты цифр - просто скормите этот текст любой нейронке, она вам перескажет всё в лучших академических тонах с графиками на любой вкус.</p><p>А здесь мы будем говорить по делу.</p><p>Ниже я выкатываю сам код. Код тут не для зубрежки, а лишь чтобы указать направление / идею. Самая большая прелесть этой системы в том, что она оставляет гигантское пространство для любого типа реализации. Это архитектурный каркас, который чертовски сложно сломать. Главное — уловить принцип.</p><h2>Реализация</h2><p>Принцип разделения:</p><ul><li>enum Strings → типизированный контракт (что существует).</li><li>translator → источник данных (откуда берётся текст).</li></ul><p>Структура файлов - минимальная. Никаких внешних зависимостей:</p><h2>Ядро - strings.dart</h2><p>Весь контракт локализации в одном enum. Два режима - хардкод switch и серверный кеш - за одним и тем же</p><p>. Даже сообщения об ошибках локализации — сами локализованы:</p><h2>Список языков - languages_enum.dart</h2><p>Каждый язык - самодостаточная единица: знает свой код, название, направление текста и как себя загрузить:</p><p>Хотите грузить с сервера? Одна строка + loader. И</p><p>- тоже одна строка, потому что</p><p>уже является registry:</p><h2>Переводчик - i18n/russian.dart</h2><p>Как это выглядит в жизни (и почему я перестал хардкодить) Я намеренно не привожу здесь код оберток виджетов или конкретных стейт-менеджеров. Всё это - чистая «вкусовщина». Для работы системы нужен лишь элементарный вещатель событий (Notifier), повешенный на метод смены языка.</p><p>Но главное - это мой ежедневный флоу. Сейчас, чтобы добавить строку в UI, я просто вызываю нужный мне ключ: Strings.someKey(). Без контекста, везде.</p><p>А если ключа еще нет? Я тупо иду в Strings и добавляю одну строчку в Enum. Всё.</p><p>Благодаря дефолтному конструктору, приложению абсолютно плевать, что у меня там еще 100 языков не переведены. Оно компилируется и работает здесь и сейчас. А дальше в дело вступают гит-хуки: при комите нейросетка сама подхватывает изменения и заполняет недостающие поля в переводчиках.</p><p>Знаете, какое самое странное чувство? Мне сейчас реально проще и быстрее завести переменную в локализации, чем хардкодить строку в коде. Кажется, это и есть признак здоровой архитектуры - когда делать «правильно» становится физически удобнее, чем делать «быстро» и криво.</p><p>Собственно если в кратце это все о чем я хотел рассказать. Если тема зайдет или кто-то сам не сможет допереть, как прикрутить это к своей архитектуре - пишите в комментариях, разберемся.</p><p>Надеюсь, мой опыт сэкономит вам пару литров нервных клеток. Всех благ и чистого кода без «магических строк»!</p>]]></content:encoded>
    </item>
    <item>
      <title>Сеньоров много, рулить некому: какие ИТ-специалисты сейчас в дефиците</title>
      <link>https://tproger.ru/articles/senorov-mnogo-rulit-nekomu-kakie-it-specialisty-sejchas-v-def</link>
      <comments>https://tproger.ru/articles/senorov-mnogo-rulit-nekomu-kakie-it-specialisty-sejchas-v-def?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Володин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/senorov-mnogo-rulit-nekomu-kakie-it-specialisty-sejchas-v-def</guid>
      <description><![CDATA[<p>Перенасыщение джуниорами, дефицит опытных кадров и сдвиг спроса в сторону тимлидов с управленческими навыками. Какие компетенции отделяют востребованного руководителя от рядового сеньора — читайте в посте.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/senorov-mnogo-rulit-nekomu-kakie-it-specialisty-sejchas-v-def">Сеньоров много, рулить некому: какие ИТ-специалисты сейчас в дефиците</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 02 Jun 2026 12:09:15 GMT</pubDate>
      <content:encoded><![CDATA[<p>Что происходит с ИТ-рынком в 2026 году, какие спецы нужны прямо сейчас и как крепкому сеньору пробить зарплатный потолок.</p><p>Все вокруг трубят, что ИТ-пузырь, который рос в последние годы, лопнул. Только вот дефицит кадров никуда не делся, он просто сместился. Новичков сейчас больше, чем багов в их коде, а вот опытных специалистов не хватает.</p><p>Но есть профи, за которыми руководители буквально бегают с офферами, — и спрос на них только растёт. Это грамотные тимлиды, которые одновременно обладают техническими знаниями и умеют управлять процессами и командой.</p><p>За это редкое совмещение твёрдых и гибких навыков компании готовы платить в среднем от 380 000 рублей в месяц.</p><p>Казалось бы: можно просто повысить сильного специалиста до руководителя, в чём проблема? А в том, что лучший исполнитель — часто худший управленец.</p><figure><img src="https://media.tproger.ru/user-uploads/137295/2026-05-29/54975837-077a-46e8-8acc-428540dd3101.webp" alt="" /><figcaption>Средняя ЗП по Lead IT-специалистам</figcaption></figure><h2>Ловушка вчерашнего сеньора</h2><p>В ИТ есть классическая проблема найма. Опытный сотрудник пишет чистый код, виртуозно тестирует приложения или находит полезные инсайты в данных. Руководство хлопает его по плечу и говорит: «Ты крутой. Вот тебе Jira, вот команда, теперь ты тимлид».</p><p>И тут вчерашний технарь начинает управлять так же, как привык работать: лезет в каждую строчку кода, душит команду придирками и снова берёт на себя роль исполнителя.</p><p>Подчинённые не растут, дедлайны срываются, конфликты не решаются, а сам новоиспечённый лид выгорает, пытаясь тащить всё на себе.</p><h2>Как перейти в тимлиды, вырасти в деньгах и не потерять в нервах</h2><p>Если вы упёрлись в потолок или вас уже повысили до руководителя — пора признать: управление командой — такой же навык, как написание кода.</p><p>Чтобы переход из технаря в управленцы не напоминал прыжок без парашюта, Академия Эдюсон запустила <a href="https://www.eduson.tv/~MBd8Lw" rel="nofollow">курс «Руководитель группы в ИТ (Team Lead в IT)»</a>.</p><p>За 3 месяца вы доберёте нужные навыки, чтобы уверенно руководить ИТ-командами и процессами, понимать бизнес и превращать его цели в чёткие задачи.</p><p>Всё это — на реальных кейсах и опыте практикующих экспертов из «Яндекса», «Газпромбанка», Coca-Cola и Ozon, в гибком онлайн-формате и с удостоверением о повышении квалификации в конце.</p><p>Курс подойдёт опытным разработчикам, аналитикам, тестировщикам и другим ИТ-специалистам, действующим тимлидам, а также эйчарам и руководителям компаний, которые хотят прокачать сотрудников.</p><p>Возьмите карьеру в свои руки. Переходите по ссылке и записывайтесь на обучение: <a href="https://www.eduson.tv/~MBd8Lw" rel="nofollow">https://eduson.academy/team-lead-it</a>. Вводите промокод ТПРОГЕР при оформлении заявки и забирайте максимальную скидку 65%, а в подарок — второй курс на выбор.</p><p><i>Реклама. Рекламодатель: ООО «Эдюсон» ИНН 7729779476, erid: 2W5zFHCBgwB</i></p>]]></content:encoded>
    </item>
    <item>
      <title>Скрытый сбой идемпотентности в финтех-системе: разбор инцидента</title>
      <link>https://tproger.ru/articles/skrytyj-sboj-idempotentnosti-v-finteh-sisteme-razbor-incidenta</link>
      <comments>https://tproger.ru/articles/skrytyj-sboj-idempotentnosti-v-finteh-sisteme-razbor-incidenta?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дмитрий Москалюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/skrytyj-sboj-idempotentnosti-v-finteh-sisteme-razbor-incidenta</guid>
      <description><![CDATA[<p>Разбор реального production-инцидента в финтех-системе: почему ошибка HTTP 500 не остановила операцию создания карты и как сбой идемпотентности в API Gateway вызвал массовые дубликаты. Практический кейс о микросервисной архитектуре, distributed systems, request-id, API idempotency и техническом долге.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/skrytyj-sboj-idempotentnosti-v-finteh-sisteme-razbor-incidenta">Скрытый сбой идемпотентности в финтех-системе: разбор инцидента</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Микросервисы]]></category>
      <category><![CDATA[Рефакторинг]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Финтех]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[микро]]></category>
      <category><![CDATA[faq]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 18 May 2026 04:55:17 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Как все началось</h2><p>Всё началось с безобидного, почти рутинного тикета в саппорт:</p><p><i>«У меня тут несколько одинаковых карт создалось. Я вроде один раз нажимал, а их штук пять висит в приложении». </i></p><p>Для финтеха подобная фраза — не мелкая UI-аномалия, а сигнал тревоги высшего уровня. Когда речь идёт о платёжных инструментах, дубль сущности мгновенно переходит из разряда «странностей» в категорию «полноценный инцидент».</p><p>Поначалу казалось, что это просто один случай. Но на самом деле, проблема уже какое-то время была, хоть и скрытно: люди получали дубликаты своих банковских карт, но массово на это никто не жаловался. На уровне первой линии поддержки это ошибочно классифицировали как пользовательские ошибки</p><p>Настоящий шум поднялся не внутри компании, а уже в соцсетях. Один из клиентов выложил пост. Там была фотография посылки, а в ней — примерно сотня одинаковых карт. Пост очень быстро стал популярным, и вот тогда-то и возникли проблемы с репутацией, а команда разработчиков только тогда и узнала о случившемся. И особенно тревожно это звучало на фоне того, что мы считали что таких проблем быть не может - ведь считалось, что у  нас глобальная идемпотентность на все запросы.</p><p>Мы начали разбираться. Стандартный мониторинг показывал норму: дашборды зелёные, в логах тихо, метрики CPU и памяти без отклонений. При этом в базе обнаруживались дубликаты, которых быть не должно. И только тогда, когда мы внимательно посмотрели на коммунальный API Gateway, то поняли что одно изменение от другой команды поменяло идемпотентность работы endpoint-а.</p><p>Проблема была структурно невидима для тех, кто находился ближе всего к ней. Отсутствие видимой проблемы не равно отсутствию риска — система просто ждала подходящего момента.</p><h2>Что произошло: хронология инцидента</h2><p>Архитектура была классической: Клиент → API Gateway → микросервисы,.</p><p>Сценарий развивался почти незаметно для стандартных средств наблюдения:</p><p>1. Фронтенд: Пользователь нажимает кнопку «Выпустить карту».</p><p>2. Gateway: Запрос начинает обрабатываться в API Gateway.</p><p>3. Микросервис по созданию карт: честно выполняет работу: создаёт запись в БД и возвращает `200 OK` в Gateway.</p><p>4. Новый микросервис: API Gateway вызывает новый микросервис и получает HTTP 500 в ответ от него. Исключение возникает уже после успешного вызова нашего микросервиса, и это ключевая точка разрыва: Gateway считает весь запрос неудавшимся, а ответ нашего микросервиса теряется.</p><p>5. Клиент: получает HTTP 500</p><p>6. Реакция: Пользователь видит красную плашку ошибки и логично решает: «Не сработало, пробую снова». Более того, с точки зрения протокола HTTP - запросы, в ответ на которые пришла ошибка HTTP 500, можно пытаться отправлять опять.</p><p>7. Петля: Микросервис, ничего не зная о судьбе предыдущих ответов, послушно создавал карту за картой.</p><p>Круг замкнулся. Эпидемия началась.</p><p>В компании такого уровня это не было предусмотрено. И это такая обидная ошибка.</p><h2>Как так получилось?</h2><p>Вскрылось ошибочное предположение:</p><p><i>«В API Gateway вызов микросервиса создания карт всегда идет последним». </i></p><p>Таким образом идемпотентность достигалась «формально» - ведь если создание карты завершалось с ошибкой - это точно означало что и вызов API Gateway тоже завершится с ошибкой. Сработало ложное чувство безопасности.</p><p>Ответ на вопрос “почему так было сделано?” очень простой - это было осознанное упрощение на старте. Все знали об этом, но задача на фикс потерялась в недрах бэклога на очень долгое время. Это классический пример того, как архитектурное допущение и отложенный рефакторинг годами живут в проде, пока их не вскрывает редкая последовательность отказов.-</p><h2>Что потребовалось изменить</h2><p>Пришлось в срочном порядке внедрять полноценный механизм идемпотентности по request-id, который не зависел бы от порядка вызова downstream-сервисов. И это было достаточно тяжело, потому что окно для легкого внедрения закрывается в первый день продакшена: до этого момента нет ни живых пользователей, ни накопленных данных, ни клиентов старых версий, с которыми нужно сохранять обратную совместимость. Ниже — ответы на вопросы, которые мы получили от коллег, когда разбирали этот инцидент.</p><h2>FAQ: Часто задаваемые вопросы</h2><p><b>1. Почему нельзя просто заблокировать кнопку на фронте?</b></p><p>Блокировка кнопки решает проблему только при стабильной сети. Если запрос ушёл, сервер создал сущность, но ответ потерялся — кнопка разблокируется по таймауту, и пользователь нажмёт снова. Это не устраняет корневую причину, а лишь слегка снижает вероятность дубля.</p><p><b>2. Чем идемпотентность отличается от дедупликации в БД?</b></p><p>Дедупликация через уникальные индексы защищает от дублей в хранилище, но не решает проблему сайд-эффектов: повторный запрос всё равно вызовет отправку SMS, печать банковской карты, генерацию событий в шине или списание средств. Идемпотентность гарантирует, что вся цепочка выполнится ровно один раз — включая все внешние вызовы и побочные действия.</p><p><b>3. Как долго хранить ключи идемпотентности?</b></p><p>На практике мы хранили ключи в основной базе данных без ограничения срока — затраты на хранение UUID по всем сущностям оказались небольшими. В общем случае минимальный срок зависит от конкретных сценариев использования — кому-то хватит и  часа, а кому-то нужна неделя. В любом случае, окна должно быть достаточно, чтобы покрыть сценарии, когда пользователь возвращается к повтору запроса, например, на следующий день или когда клиентское приложение автоматически перезапускает отложенные запросы после восстановления сети. Бессрочное хранение не обязательно, но слишком короткий TTL создаёт риск дублей при длительных сетевых проблемах.</p><p><b>4. Что делать со старыми клиентами, которые не шлют request_id?</b></p><p>Мы сделали несколько версий API для создания карт — под разные версии приложения. Для новых клиентов работала полноценная идемпотентность с клиентским ключом. Для старых версий приходилось принимать риски и генерировать request_id на стороне сервера. Альтернативой может быть хэширование payload запроса, но это менее надежно и сложнее: таймстемпы и случайные поля могут отличаться от вызова к вызову. Поэтому мы выбрали  подход с генерацией ключа на сервере для устаревших клиентов: риски дублей на переходный период оказались меньше, чем сложность поддержки двух схем валидации одновременно.</p><p><b>5. Обязательно ли делать идемпотентность для всех методов API?</b></p><p>Идемпотентность требуется только для методов, которые изменяют состояние системы — POST, PUT, PATCH и иногда DELETE. Методы чтения (GET, HEAD, OPTIONS) не изменяют данные, поэтому считаются идемпотентными по умолчанию.</p><p><b>6. Как понять, что в вашей системе уже есть скрытая проблема с дублями?</b></p><p>Лучший способ — ввести метрики превентивно, не дожидаясь жалоб пользователей. Отслеживайте количество повторных вызовов с одинаковым ключом идемпотентности и сравнивайте его с общим числом запросов. Если метрики уже показывают ненулевое значение — проблема есть, даже если внешне всё работает незаметно.</p><p>Если метрик ещё нет, вот три косвенных признака, которые помогут заподозрить неладное:</p><ul><li>В базе данных периодически появляются записи с одинаковым содержимым, созданные с разницей в несколько секунд.</li><li>Пользователи жалуются на дубликаты карт, заказов или платежей, но вы не можете воспроизвести проблему локально, списываете на то, что пользователи что-то делают не так</li><li>В логах API Gateway периодически всплывают HTTP 500 ошибки, но downstream-сервисы при этом отрабатывают успешно.</li></ul><p>Если заметили хотя бы один из этих симптомов — простого решения уже не будет. Однако остаётся возможность исправить ситуацию до того, как проблему заметят пользователи. В нашем случае дубли проявлялись редко и стали массовыми только при повышении нагрузки. Если отложить решение, скрытая проблема перейдет на уровень, где её последствия станут заметны снаружи и потребуют значительно больших усилий.</p><h2>Итог</h2><p>Главный урок, который мы вынесли: идемпотентность — это общая ответственность всех команд разработки, и поломать её может быть проще, чем кажется. А добавить в уже работающую систему быстро и дёшево — почти невозможно.</p><p>Метрик на всплески повторных запросов у нас не было. А зря — это самый дешёвый способ увидеть проблему до того, как она обрушит продакшен. Системы, спроектированные на 10% нагрузки, ломаются на 60% — и обычно это становится неожиданностью для команды.</p><h2>Практический чек-лист: что проверить в своей системе уже сегодня</h2><ul><li>Убедитесь, что все критические мутирующие эндпоинты поддерживают ключ идемпотентности.</li><li>Настройте алерты на аномальное количество запросов на создание сущностей от одного пользователя за короткий промежуток времени.</li><li>Проверьте, как ваш API Gateway обрабатывает ошибки — не теряет ли он ответы downstream-сервисов.</li><li>Убедитесь, что фронтенд корректно обрабатывает не только 200, но и 500, 502, 504, не провоцируя пользователя на повторные клики без необходимости.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Вы нашли работу в IT. Игра началась</title>
      <link>https://tproger.ru/articles/vy-nawli-rabotu-v-it-igra-nachalas</link>
      <comments>https://tproger.ru/articles/vy-nawli-rabotu-v-it-igra-nachalas?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дима Дмитриев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/vy-nawli-rabotu-v-it-igra-nachalas</guid>
      <description><![CDATA[<p>Как пройти онбординг в IT-компании: типичная траектория задач, как справляться с неполным ТЗ, отличить перегруженность от токсичности и что должно быть в плане на три месяца. Практический гид для новичков.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/vy-nawli-rabotu-v-it-igra-nachalas">Вы нашли работу в IT. Игра началась</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 15 May 2026 05:00:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Оффер подписан и кажется, что самое сложное позади. Но первые полгода в новой компании — это отдельный экзамен, и к нему никто не готовит. Centicore Group разбирает, как должен выглядеть онбординг разработчика и на что смотреть, чтобы понять: вас встретили нормально или бросили в свободное плавание.</p><h2>После оффера уже начинается работа компании</h2><p>После принятия оффера начинается онбординг. На этом этапе новичку объясняют порядок оформления: какие документы понадобятся, где их подписывать, кто отвечает за кадровые вопросы и что делать, если часть процесса проходит через электронную подпись.</p><p>Отдельно готовят информационный вход. Обычно это материалы по компании, welcome-видео, чек-лист первого дня и Onboarding book. HR остаётся контактом для человека до выхода, чтобы новичок не искал ответы через случайных людей в команде.</p><blockquote><b>Onboarding book</b> — внутренняя документация для новичка. В неё обычно входят история компании, ценности, FAQ, полезные контакты, ссылки на ресурсы и порядок действий для типовых ситуаций. Для разработчика в этом документе важнее рабочая часть: где лежит техническая документация, какие каналы используют для задач, как устроены доступы и кто помогает с настройкой.</blockquote><p>Для удалённой команды подготовка начинается ещё раньше: технику и welcome-pack отправляют до первого дня, иначе старт задержится из-за доставки, склада и ручных уточнений.</p><p>К первому дню у разработчика должен быть минимальный технический набор:</p><ul><li>доступ к репозиториям;</li><li>доступ к трекеру;</li><li>доступ к документации;</li><li>доступ к окружениям;</li><li>доступ к внутренним чатам;</li><li>инструкция по локальному запуску проекта;</li><li>контакт человека, который поможет с первичной настройкой.</li></ul><h2>Команда должна знать, кто к ней пришёл</h2><p>После организационного входа начинается рабочее знакомство. Новичку нужно понять, с кем он будет пересекаться, кто отвечает за продуктовые вопросы, кто ревьюит код, где обсуждают архитектуру и как в команде двигаются задачи.</p><p>Рабочий вариант — представить нового сотрудника во внутреннем канале. В сообщении достаточно указать должность, подразделение, прошлый опыт, будущую зону работы и людей, с которыми он будет чаще всего взаимодействовать. Если в компании принято добавлять нейтральные детали об интересах, их можно включить туда же. Главное, чтобы команда получила контекст, а новичок получил первую точку</p><p>На старте лучше узнать:</p><ul><li>кто ревьюит изменения и как договариваться о ревью;</li><li>где обсуждают архитектуру и продуктовые вопросы;</li><li>как оформляют баги и где фиксируют договорённости;</li><li>кто владеет конкретными сервисами и модулями;</li><li>где искать историю решений по проекту.</li></ul><p>Если HR исчез после первого рабочего часа — это небольшой красный флаг. В нормальном онбординге HR остаётся на связи весь день и следит, чтобы руководитель и команда не забыли про нового коллегу.</p><h2>Наставник</h2><p>При входе в проект вам назначают старшего — человека, которому можно задавать любые вопросы: про культуру компании, про то, как принято общаться, к кому с чем идти, какие правила существуют. По факту это старший разработчик с максимальной нагрузкой от бизнеса. Он знает всё — поэтому к нему идут все, но часто его задачи никто не отменял, поэтому достучаться вовремя получается не всегда. Это нормально, наберитесь терпения или ищите ответы самостоятельно у других коллег — вам главное понять, к кому идти с техническими вопросами, к кому — с процессными. А ещё — что трогать нельзя и почему, потому что в любом проекте есть модули, которые уже не в работе или которые работают на честном слове.</p><h2>Первые задачи</h2><p>Забудьте всё, чему вас учили на курсах. Не потому что знания бесполезны — просто в реальном проекте их почти негде применить сразу — каждый новый проект живёт по своим правилам и со своей логикой кодовой базы. Это могут быть сложные абстракции поверх абстракций — кто-то когда-то решил так сделать. Уникальные архитектурные решения — кто-то выдумывал. Костыли — потому что сроки горели.</p><p>Траектория задач в первое время у вас будет стандартная: баги → баги сложнее → фича с кем-то → своя фича. Сколько времени занимает каждый переход — зависит от размера проекта. В крупных командах на полное погружение уходит больше года. Это норма, не отставание.</p><p>Отдельно про ТЗ. В тикете почти никогда нет полного контекста. Часть вещей считается само собой разумеющейся, часть обросла локальным сленгом. Сделаете задачу — появится дополнительный контекст, который никто не упомянул, и придётся переделывать. Мотивация падает именно здесь.</p><p>Что помогает:</p><ul><li>Уточнять задачу до того, как начали, а не после</li><li>Узнавать, кто писал этот код — иногда человек ещё в команде</li><li>Не пытаться добивать задачу самостоятельно, где не понимаете систему, нужно уметь разговаривать</li></ul><h2>Атмосфера</h2><p>Скорее всего, вы попадёте в команду, где никто ничего не успевает. Причина простая: релизный календарь: сроки горят, технический долг копится, и всё это происходит одновременно. Не торопитесь делать выводы, поработайте месяц-другой в таком ритме — и станет понятно, почему всё именно так. Токсичность и перегруженность выглядят одинаково снаружи, но изнутри это разные вещи.</p><p>Показывайте, что понимаете нагрузку и какие решения можете предложить — этого достаточно, чтобы быстрее стать своим.</p><h2>Три месяца</h2><p>У нормального онбординга есть план на три месяца — что делать сейчас, что через месяц, к какому результату прийти в итоге. Это убирает главную тревогу на новом месте — ощущение, что непонятно вообще всё и непонятно когда станет понятно.</p><p>Как выглядит нормальный ритм:</p><ul><li>Еженедельные one-to-one с руководителем — задачи, сложности, обратная связь</li><li>Встреча с HR через две недели — как адаптируетесь, всё ли понятно, нужна ли дополнительная поддержка</li><li>Итоговая встреча через три месяца — что получилось, что нет, что дальше</li></ul><p>Про обратную связь отдельно — она должна быть регулярной, а не разовой в конце испытательного срока. Хорошая обратная связь — конкретная: что именно сделали хорошо, что надо поправить, как. Плохая — общие слова про командный дух и корпоративные ценности.</p><p>Компании, где онбординг выстроен правильно, фиксируют снижение увольнений в первые полгода на 7%. Цифра небольшая, но она про системный эффект: когда человек понимает правила игры с первого дня, он реже уходит из-за того, что просто не разобрался.</p><h2>На что смотреть</h2><p>Три признака, что онбординг нормальный:</p><ul><li>Техника пришла до первого дня, доступы открыты, HR на связи.</li><li>Есть наставник и план на три месяца.</li><li>Вас представили команде — не попросили познакомиться самому.</li></ul><p>Три красных флага:</p><ol><li>Нет наставника вообще.</li><li>Нет плана задач даже на первый месяц.</li><li>HR исчез после первого дня и больше не появлялся.</li></ol><p>Если все три красных флага подняты одновременно — это то, как устроены процессы в этой компании. Дальше будет примерно так же.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как я перестал метаться между нейросетями и устроил им общий экзамен</title>
      <link>https://tproger.ru/articles/kak-ya-perestal-metatsya-mezhdu-nejrosetyami-i-ustroil-im-obshhij-ekz</link>
      <comments>https://tproger.ru/articles/kak-ya-perestal-metatsya-mezhdu-nejrosetyami-i-ustroil-im-obshhij-ekz?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[AIguide]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-ya-perestal-metatsya-mezhdu-nejrosetyami-i-ustroil-im-obshhij-ekz</guid>
      <description><![CDATA[<p>Я рассказываю, как перестал доверять рандомным «вау»-кадрам и устроил честный экзамен нейросетям для генерации изображений. Замерял качество, скорость, форматы и стоимость на реальных задачах, а в итоге собрал понятный пайплайн выбора AI-сервисов без магии и маркетинга.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-ya-perestal-metatsya-mezhdu-nejrosetyami-i-ustroil-im-obshhij-ekz">Как я перестал метаться между нейросетями и устроил им общий экзамен</a>»</p>]]></description>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[TypeScript]]></category>
      <category><![CDATA[Node.js]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 12 May 2026 09:54:04 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Оглавление</h2><ol><li>Как я утонул в генерациях</li><li>Экзамен вместо «прыжков» по сервисам</li><li>Небольшой технический конвейер</li><li>Зачем цифры важнее впечатлений</li><li>Простой тест на форматы</li><li>Как ведут себя Riverflow, Flux и Seedream</li><li>Отчёты, артефакты и спокойная аналитика</li><li>Сценарий «восемь формулировок»</li><li>Зрелый подход к выбору AI</li></ol><p>В прошлой статье я рассказывал, как собрал тестовый стенд для AI‑генерации. Теперь — про то, как превратил его в живой процесс с разными сценариями и метриками.</p><h2>1. Как я утонул в генерациях</h2><p>Я осознал что  в очередной раз листал чат и не мог найти тот самый удачный вариант обложки.</p><p>Ситуация повторялась по одному и тому же шаблону. Запускаю один сервис — получаю результат, морщу лицо и сразу иду в другой. Там промпт приходится переформулировать: движок по-другому читает слова. В третьем генераторе наконец складывается приятная композиция, но детализация рушит весь смысл. Через пару дней на диске лежит россыпь PNG, а я уже не понимаю, где оказался осознанный успех, а где просто повезло. В какой-то момент я сказал себе: стоп. Случайные «попробую тут, попробую там» не ведут никуда.</p><h2>2. Экзамен вместо «прыжков» по сервисам</h2><p>Тогда я придумал простое правило. Любой сервис, который претендует на место в моём рабочем наборе, должен пройти экзамен. Не приятную беседу с общими вопросами, а одинаковый для всех, жёсткий сценарий. Без исключений и любимчиков.</p><h2>3. Небольшой технический конвейер</h2><p>Реализация получилась до обидного простой. Node.js, TypeScript, запуск через tsx. Список моделей вынесен в отдельный конфиг, API-ключ лежит в .env, а команды запуска выглядят вроде npm run test:niche или npm run test:collage-2x2-eight-prompts. Я взял творческий хаос и сложил его в аккуратный pipeline.</p><p>Дальше всё происходит автоматически: запускаешь тест — и один и тот же набор задач последовательно проходит через всех кандидатов. Мой вклад заканчивается на нажатии Enter.</p><h2>4. Зачем цифры важнее впечатлений</h2><p>Зачем вообще так усложнять? Потому что мантра «любая нейросеть — она и есть нейросеть» на практике не работает. Разброс колоссальный. Один сервис очень аккуратно держит геометрию кадра, но мелкие детали превращает в мыло. Другой рисует фактуру так, что хочется печатать и вешать, но при запросе «коллаж 3×3 с чёткими границами» внезапно решает творчески переосмыслить сетку. Третий стабильно отвечает и по времени, и по предсказуемости, но на сотне запросов выписывает такой чек, что хочется закрыть вкладку.</p><p>Если не фиксировать метрики, всё превращается в разрозненные ощущения. Сегодня это кажется идеальным инструментом, завтра тот же сервис тихо сжигает бюджет на десятке однотипных задач. И ты не можешь точно сказать, в какой момент всё поехало.</p><h2>5. Простой тест на форматы</h2><p>Возьмём самый базовый пример — проверка соотношения сторон. Формулировка элементарная: закат над горами, три варианта — 3:4, 1:1 и 16:9. Казалось бы, минимальный уровень адекватности. Но нет.</p><figure><img src="https://media.tproger.ru/user-uploads/138437/2026-05-12/967623f7-34c5-4109-ae88-7c3ccd8122f0.webp" alt="" /><figcaption>таблица 1</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/138437/2026-05-12/c77d406d-862c-492c-bc89-733b8cb50349.webp" alt="" /><figcaption>таблица 2</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/138437/2026-05-12/2b48f70f-e37d-4ab1-bc2a-826a5fa72d56.webp" alt="" /><figcaption>таблица 3</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/138437/2026-05-12/1b27a8d8-19e1-4a94-968b-475fc8cea34c.webp" alt="" /><figcaption>таблица 4</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/138437/2026-05-12/ad59138a-e1f9-49f7-ae5c-03c3819768e9.webp" alt="" /><figcaption>таблица 5</figcaption></figure><p>Достаточно пробежать глазами столбец со статусом. Три запроса — три быстрых проверки «на глаз». Там, где на 3:4 и 16:9 горит FAIL, модель откровенно игнорирует задачу и рисует квадрат или удобный для себя формат. И это при том, что промпт простейший: не сложная сцена, не коллаж — всего лишь «закат, горы и нужная рамка».</p><h2>6. Как ведут себя Riverflow, Flux и Seedream</h2><p>Если посмотреть на результаты, riverflow-v2-pro аккуратно соблюдает все три формата. Но за эту аккуратность приходится платить временем: портретная картинка генерируется около 360 секунд. Шесть минут — роскошь, если у вас в руках горящий дедлайн. Упрощённая версия, riverflow-v2-fast, выдаёт правильные форматы за секунды и остаётся в адекватных рамках по времени — это уже инструмент для реальных задач.runware+2</p><p>С моделями Flux история другая. Почти вся линейка black-forest-labs стабильно промахивается по нестандартным форматам: колонка «Соотношение» упорно показывает 4/3 или 1/1, хотя в запросе чётко указано «16:9, wide landscape». Относительно ровно ведёт себя только flux.2-max, который хотя бы честно выдаёт квадрат, но проблемы с другими соотношениями никуда не деваются.github+1</p><p>Seedream-4.5 от Bytedance, напротив, поражает скоростью: ответы прилетают за 7–8 секунд, но модель регулярно игнорирует заданный формат и возвращает квадрат 2048×2048. Для макета, привязанного к конкретным пропорциям — сторис, постера или баннера — такая «быстрота» только ломает всю вёрстку.eachlabs+1</p><h2>7. Отчёты, артефакты и спокойная аналитика</h2><p>Вся эта конструкция нужна ради пары простых эффектов. Каждый запуск сохраняет статус, итоговый размер, время генерации и, где это важно, стоимость. После завершения прогона скрипты собирают HTML-отчёт. Открываешь его в браузере — и на одном экране сразу видно, кто действительно справился, а кто только шумит.</p><p>Особенно сильно это помогает в задачах, где критична композиция: нужна ровная сетка 2×2 или 3×3 без самодеятельности в духе «я тут чуть подвину, так красивее». Это как раз те случаи, когда от сервиса нужна дисциплина, а не внезапные художественные «инициативы».</p><h2>8. Сценарий «восемь формулировок»</h2><p>Отдельный пласт наблюдений даёт сценарий «восемь формулировок» (collage-2x2-eight-prompts). Суть задачи не меняется, контент остаётся одним и тем же. Я варьирую только подачу: где-то пишу запрос грубо и коротко, где-то — щадяще и структурно, местами добавляю лишний контекст.</p><p>На этом месте становится видно, как модель реагирует не на саму тему, а на стиль запроса. Одна и та же нейросеть спокойно выдерживает строгое техническое ТЗ и проваливается при формулировке «сделай красиво, сам понимаешь». После таких тестов по-другому относишься к промптам: начинаешь формулировать точнее, понимая, какая модель как «слушает» текст. И внезапно исчезают загадки в духе «почему здесь получилось, а там всё развалилось».</p><h2>9. Зрелый подход к выбору AI</h2><p>Главный вывод из всей этой истории довольно приземлённый. Выбирать AI-сервисы по рекламе, по восторженным постам в Telegram или по одному удачному демо-кадру — путь к разочарованию. Их нужно ставить в одинаковые условия. Прогонять по своим реальным задачам, а не по чужим презентациям. Сохранять результаты и сравнивать их по конкретным цифрам.</p><p>Когда делаешь так, выбор перестаёт быть эмоциональной пыткой в стиле «нравится / не нравится». Он превращается в спокойное рабочее решение: этот сервис — для быстрых черновиков, этот — для вылизанной композиции, этот — для длинных и сложных запросов, в которых ошибка по смыслу недопустима. В этот момент генерация перестаёт быть магическим ритуалом с сюрпризами и превращается в нормальный, предсказуемый инструмент. Таким, каким он и должен был быть изначально.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как подключить общую память к Claude Code и Cursor за 5 минут</title>
      <link>https://tproger.ru/articles/kak-podklyuchit-obshhuyu-pamyat-k-claude-code-i-cursor-za-5-minut</link>
      <comments>https://tproger.ru/articles/kak-podklyuchit-obshhuyu-pamyat-k-claude-code-i-cursor-za-5-minut?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[C0Ally]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-podklyuchit-obshhuyu-pamyat-k-claude-code-i-cursor-za-5-minut</guid>
      <description><![CDATA[<p>Как подключить общую память к Claude Code и Cursor за 5 минут, общая shared память для ИИ-агентов. Общий контекст и экономия ресурсов. CoAlly</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-podklyuchit-obshhuyu-pamyat-k-claude-code-i-cursor-za-5-minut">Как подключить общую память к Claude Code и Cursor за 5 минут</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Рефакторинг]]></category>
      <category><![CDATA[Slack]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 09 May 2026 07:40:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Работаю с Claude Code и Cursor параллельно. Claude Code хорош для архитектурных задач и рефакторинга, Cursor - для быстрого редактирования и code review. Проблема одна: они друг про друга ничего не знают. И даже при выполнении задач в одной среде разработки через пару дней уже и не вспомнишь что решил, почему, приходится опять просить агента изучить контекст и разобраться чтобы получить нужную информацию. Это время и токены.</p><p>Сделал себе инструмент, который это решает. Потом оформил в продукт. Называется <b>CoAlly</b> - сервер, который дает агентам общую память.</p><h2>Что он делает</h2><p>Агент автоматически сохраняет контекст работы: какие решения принял, какие файлы затронул, почему сделал так, а не иначе. Когда другой агент (или тот же, но в новой сессии) берется за связанную задачу, он находит этот контекст через семантический поиск.</p><p>Запрос "проблемы с авторизацией" найдет запись про "token refresh rotation", хотя слова совершенно разные. Работает через эмбеддинги и косинусное расстояние, скоро выйдет фича с анализом смысловой корреляции при поиске.</p><h2>Подключение</h2><h2>Шаг 1: регистрация</h2><p>Заходим на <a href="https://coally.cortexally.ai">coally.cortexally.ai</a>, создаем аккаунт. Получаем API ключ.</p><h2>Шаг 2: подключение к агенту (Claude, Cursor и др.)</h2><p>Одна команда в терминале:</p><p>claude mcp add coally-nexus --transport sse https://coally.cortexally.ai/sse --header "Authorization: Bearer ВАШ_КЛЮЧ"</p><p>Перезапускаем Claude Code. В списке MCP-инструментов должен появиться coally-nexus.</p><p><b>Cursor, Windsurf, VSCode</b></p><p>Заходим в настройки Cursor -&gt; Settings -&gt; MCP -&gt; Settings (значок шестеренки) или создаем/редактируем файл `.cursor/mcp.json` в корне проекта (или в домашней директории для глобального подключения):</p><p>Файл `~/.codeium/windsurf/mcp_config.json` для Windsurf или соответствующее меню для VSCode и других его форков.</p><p>Перезапускаем IDE|Agent. Готово.</p><h2>Первая сессия</h2><p>После подключения агент при первом взаимодействии проиндексирует проект автоматически. Если нет - попросите: "<i>проиндексируй этот проект через CoAlly</i>".</p><p>Что происходит при индексации: сканируется дерево проекта, находятся конфиги, важные воспоминания, memorybanks и др., все это эмбеддится и сохраняется как контекст.</p><p>Дальше агент сам начнет сохранять контекст работы после значимых изменений. Если нужно явно сохранить что-то: "<i>сохрани контекст этой задачи в CoAlly</i>".</p><h2>Что получаем</h2><p>На вопрос "<i>что вчера делали по задаче авторизации? какой статус бага с токеном и сколько времени потребуется на доработку</i>" Агент достает из <b>CoAlly</b> записи: "<i>вчера в Cursor поправили ротацию токенов, причина была в TTL, затронули два файла. Могу сразу продолжить и на основе коммитов ... исправить точечно флоу, время на исправление — N минут.</i>"</p><p>Если работаете в команде - еще полезнее. Контекст коллеги тоже доступен. Его экспертиза и навыки также постепенно приобретают цифровую версию. Не нужно ждать стендап или писать в Slack.</p><p><b>Ограничения</b></p><p>Агенты иногда игнорируют инструкции и не сохраняют контекст. Бывает. Можно просить явно.</p><p>Семантический поиск хорош, но не идеален. Если запрос слишком общий ("что нового?"), результаты будут размытыми. Конкретные вопросы работают лучше.</p><p>Бесплатный тариф - 2 проекта. Для личного использования хватает. Для команд - тарифы Team и Enterprise.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как выбрать системного интегратора в 2026: 12 критериев для ЛПР</title>
      <link>https://tproger.ru/articles/kak-vybrat-sistemnogo-integratora-v-2026-12-kriteriev-dlya-lpr</link>
      <comments>https://tproger.ru/articles/kak-vybrat-sistemnogo-integratora-v-2026-12-kriteriev-dlya-lpr?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Лена Ф]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-vybrat-sistemnogo-integratora-v-2026-12-kriteriev-dlya-lpr</guid>
      <description><![CDATA[<p>Проверяете системного интегратора? 12 критериев для ЛПР: опыт в индустрии, техстек, санкционные риски, безопасность, репутация и красные флаги на каждом этапе.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-vybrat-sistemnogo-integratora-v-2026-12-kriteriev-dlya-lpr">Как выбрать системного интегратора в 2026: 12 критериев для ЛПР</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Микросервисы]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Финтех]]></category>
      <category><![CDATA[Стартапы]]></category>
      <category><![CDATA[Тимлид]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Инфраструктура]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 08 May 2026 09:45:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>При выборе системного интегратора — понимайте, что это решение на несколько лет. Один из самых эффективных способов снизить риски — это проверить подрядчика на пилотной задаче, а уже потом доверять ему бизнес, архитектуру и данные. Помимо тестового, есть ещё много нюансов, которые нужно сделать на старте, чтобы потом не было судов или переписывания проекта с нуля. О них мы и поговорим, а статья будет полезна  тимлидам и ЛПР со стороны компаний, и внешним командам, которых проверяют.</p><p>Эксперты Centicore Group собрали чек-лист из 12 пунктов, которые реально работают при выборе интегратора, а когда у вас станет вопрос подрядчика – вы можете воспользоваться этим списком.</p><h2>1. Опыт в вашей индустрии</h2><p>Системный интегратор, который делал проекты для e-commerce, не обязательно справится с финтехом. У каждой индустрии свои особенности: требования к безопасности, специфика бизнес-процессов, регуляторные ограничения.</p><p>Что проверять:</p><ol><li>Портфолио с проектами в вашей сфере. Нужны конкретные кейсы: что делали, какой стек, какие результаты.</li><li>Понимание специфики. Если интегратор сразу задаёт правильные вопросы про ваши бизнес-процессы — хороший знак. Если предлагает типовое решение без погружения в специфику — советуем искать дальше.</li><li>Измеримые результаты. Везде понятные показатели: на сколько сократили время обработки заявок, сколько проект занял по времени, какая команда специалистов и к чему в итоге пришли.</li></ol><p>Запрашивайте кейсы из вашей индустрии. Если подрядчик работает в финансах, логистике, промышленности — пусть покажет, как решал похожие задачи Универсальные решения редко работают эффективно в специфичных отраслях.</p><h2>2. Что по техстеку и обновлениям</h2><p>В 2026 году оценивать интегратора по знанию условного языка программирования бессмысленно. Смотреть нужно на то, как команда работает с энтерпрайз-стеком и требованиями безопасности.</p><p>На что смотреть:</p><p><b>1. Соответствие вашему контуру.</b> Если у вас закрытый on-premise, а подрядчик умеет деплоить только в публичные облака — вам не по пути.</p><p><b>2. Релевантные сертификаты и лицензии.</b> Если делаете финтех — нужен опыт прохождения PCI DSS. Если работаете с госсектором или персональными данными — ищите подрядчика с лицензиями ФСТЭК и ФСБ.</p><p><b>3. Архитектурное ревью на входе.</b> Дайте подрядчику доступ к вашей текущей инфраструктуре под NDA. Нормальный интегратор сразу укажет на узкие места, проблемы с легаси и потенциальные сбои, если они реально есть.</p><p><b>4. Геополитические и санкционные риски.</b> В 2026 году для российского рынка это один из ключевых рисков. Что здесь нужно проверять:</p><ul><li>Зависимость от иностранных облаков и компонентов.</li><li>Отдельно open-source библиотек и фреймворков с высокой санкционной уязвимостью.</li><li>Наличие у подрядчика плана «Б» на случай новых ограничений (альтернативные поставщики, российские облака, on-premise).</li><li>Опыт работы с проектами, которые уже проходили через санкционные ограничения.</li></ul><p>Красный флаг: Подрядчик говорит «у нас всё на AWS и мы не видим в этом проблемы» или не может ответить, как будет развивать систему при усилении ограничений.</p><p><b>5. Отношение к ИИ-инструментам и low-code решениям.</b> В 2026 году почти все интеграторы так или иначе используют ИИ (Cursor, GitHub Copilot, Claude, внутренние агенты). Важно понимать политику компании. Что проверять:</p><ul><li>Есть ли у подрядчика регламент использования ИИ-инструментов (что разрешено, что запрещено, как проверяется код, сгенерированный ИИ).</li><li>Насколько активно они применяют low-code/no-code платформы и как это влияет на качество и поддержку решения.</li><li>Готовы ли они комбинировать ИИ + ручную разработку или полностью полагаются на «ИИ всё сделает».</li><li>Есть ли у них экспертиза по prompt engineering и проверке качества ИИ-генерируемого кода.</li></ul><p>Красный флаг: Подрядчик либо полностью игнорирует ИИ («мы всё пишем руками»), либо говорит «мы всё делаем через ИИ и это в 10 раз быстрее» без упоминания проверок и рисков.</p><h2>3. Насколько гибкие в разработке</h2><p>Коробочные решения работают, когда подходят, но чаще всего бизнесу нужна кастомизация. Здесь важно, насколько интегратор готов адаптироваться под ваши требования.</p><p>Что важно:</p><ol><li>Подход к кастомизации показывает философию компании. Если подрядчик сразу говорит о готовом решении и предлагает подстроить бизнес-процессы под него — это провал для специфичных задач. Подбор решения под клиента, а не наоборот — признак зрелого подхода.</li><li>Работа с изменениями — реальность любого проекта. Требования меняются в процессе, это нормально. Agile не на словах, а на деле означает готовность пересмотреть приоритеты, адаптировать бэклог, обсуждать изменения.</li><li>Понимание бизнес-задачи отличает хорошего интегратора от посредственного. Технари часто зацикливаются на том, как реализовать, забывая спросить, зачем это нужно. Вопрос о том, какую проблему решает функция, должен звучать чаще, чем обсуждение технологии.</li></ol><p>Спросите, как подрядчик работает с меняющимися требованиями в середине спринта. Если ответ сводится к пунктам контракта и доп.оплате — это может быть, но для начала лучше обсудить приоритеты и найти компромисс.</p><h2>4. Прозрачность процессов</h2><p>Вы должны понимать, что происходит на проекте в любой момент.</p><p>Как оценить прозрачность:</p><ol><li>Структура коммуникации определяет скорость решения вопросов. Кто ваш контакт — менеджер без технической экспертизы или техлид команды? Как быстро получаете ответы? Есть ли прямой доступ к разработчикам для обсуждения технических деталей?</li><li>Регулярная отчётность — это не бюрократия, а инструмент контроля. Демо каждый спринт, доступ к таск-трекеру вроде Jira, понимание прогресса в реальном времени. Компании с 24/7 поддержкой обычно имеют настроенные процессы коммуникации и реагирования.</li><li>Документация показывает зрелость процессов. Если подрядчик не может показать примеры технической документации, процессов разработки, архитектурных решений — это тревожный звонок.</li><li>Совпадение ценностей и корпоративной культуры. Технические навыки важны, но если ценности не совпадают — проект будет постоянным источником конфликтов. Попросите пообщаться не только с техлидом, но и с 1–2 разработчиками, которые будут работать над проектом. Задайте вопросы про их реальный опыт работы в компании. Что проверять:</li></ol><ul><li>Отношение к удалённой работе и овертаймам (есть ли культура «гореть на проекте» или уважают work-life balance).</li><li>Прозрачность внутри компании (как принимаются решения, насколько открыто руководство общается с командой).</li><li>Отношение к качеству vs скорость (готовы ли отказываться от «быстрых костылей» ради долгосрочного результата).</li><li>Корпоративные ценности: как компания относится к клиентам, к сотрудникам, к этике в разработке.</li></ul><p>Красные флаги:</p><ol><li>Вам говорят, что всё хорошо, но конкретики нет. Нет демо, доступа к репозиторию, промежуточных результатов. А потом в день дедлайна выясняется, что половины функционала нет. Нормальная практика — давать клиенту видимость работы: задачи, коммиты, тесты.</li><li>Проводите демо результатов каждые 1-2 недели. Так будете видеть рабочий код, сможете проверить функционал, задать вопросы напрямую техлиду. Ошибки дешевле исправлять на ранних этапах, чем в продакшене.</li><li>Команда говорит одно на собеседовании, а на деле — жёсткий overtime, токсичная культура и «мы просто кодим, а менеджеры решают».</li></ol><h2>5. Команда и культура разработки</h2><p>Код пишут люди, а люди работают эффективно только в правильной среде. Культура разработки подрядчика напрямую влияет на качество вашего продукта.</p><p>Что проверять:</p><ol><li>Квалификация разработчиков определяет скорость и качество работы. Соотношение мидлов и сеньоров в команде показывает, кто будет делать архитектурные решения, а кто — рутинные задачи. Если в команде только джуны под управлением одного сеньора — это риск.</li><li>Текучка кадров — критический показатель стабильности. Высокая текучка означает проблемы: либо с зарплатами, либо с управлением, либо с атмосферой. Всё это отразится на вашем проекте.</li><li>Практики разработки видны в деталях. Code review, автоматизированное тестирование, CI/CD — это страховка от багов в продакшене. Спросите, как организован процесс: делают ли ревью кода, какое покрытие тестами, как часто деплоят.</li></ol><p>Попросите пообщаться с командой, которая будет работать над проектом. Нормальные компании не скрывают разработчиков за менеджерами. Обратите внимание на культуру внутри компании. Человекоцентричный подход, забота о сотрудниках, корпоративная культура поддержки — всё это влияет на мотивацию команды.</p><h2>6. Пост-интеграционная поддержка</h2><p>Основная задача интегратора корректно внедрить решение, отловить баги в проде и передать проект вашей инхаус-команде.</p><p>На что смотреть:</p><ol><li>Гарантии и доработки. Что будет, когда система упадет из-за архитектурной ошибки вендора? Условия фикса багов и доработок после релиза должны быть зафиксированы в контракте.</li><li>Контроль ответственности. Должно быть четко расписано, где заканчивается зона ответственности интегратора и начинается зона ваших админов, девопсов или первой линии поддержки.</li><li>Документация и передача знаний. Подрядчик обязан выгрузить не только исходники, но и актуальную документацию: ADR (архитектурные решения), схемы инфраструктуры, регламенты развертывания.</li></ol><p>Юридическая и договорная часть. Условия расторжения договора и стратегия. Кто владеет кодом и данными после завершения проекта. Штрафы за срыв сроков и SLA. Право на аудит кода и инфраструктуры.</p><h2>7. Безопасность и комплаенс</h2><ol><li>Проверяйте сертификаты и стандарты: ISO 27001 по информационной безопасности, соответствие ФЗ-152 о персональных данных, отраслевые стандарты вроде PCI DSS для платёжных систем.</li><li>Пентесты, аудит кода на уязвимости, шифрование данных, управление доступами — всё это должно быть в процессе по умолчанию.</li><li>Убедитесь, что контракт чётко прописывает, кому принадлежит код, как защищаются ваши данные, какие санкции за утечку.</li></ol><p>Для финтеха, медтеха и госсектора это  базовое условие запуска. Если подрядчик не умеет работать в рамках обязательных требований по безопасности и комплаенсу, проект упрётся в согласования, аудит или ввод в эксплуатацию.</p><h2>8. Реальные кейсы и рекомендации</h2><p>Самый очевидный и простой способ проверить подрядчика — поискать в открытом доступе упоминания и кейсы в медиа или на специальных площадках. Вот на что смотреть:</p><ol><li>Соблюдение сроков — классический больной вопрос IT-проектов. Уложились ли в первоначальные оценки? Если были задержки — как объясняли и решали?</li><li>Работа с изменениями — насколько гибко подрядчик реагировал на новые требования? Были ли конфликты по поводу доп.функционала?</li><li>Качество коммуникации — как быстро отвечали, насколько понятно объясняли технические вещи, был ли прямой контакт с командой?</li><li>Пост-поддержка — что происходило после запуска? Быстро ли реагировали на проблемы? Помогли ли с развитием продукта дальше?</li></ol><h2>9. Финансовая прозрачность</h2><p>Цена проекта состоит не только из цифры в коммерческом предложении. Важно понимать, что входит в стоимость и какие могут быть скрытые расходы.</p><p>На что смотреть:</p><ol><li>Детализация оценки показывает зрелость процессов. Хорошее КП разбито на этапы, модули, компоненты. Вы видите, сколько стоит разработка каждой части, инфраструктура, тестирование, документация.</li><li>Скрытые расходы появляются, когда подрядчик не включил в оценку важные вещи: тестирование, документацию, обучение команды, настройку мониторинга. Уточняйте, что именно входит в стоимость, а что может потребовать доп.оплаты.</li></ol><p>Красные флаги:</p><ul><li>Слишком низкая цена по рынку — либо подрядчик неправильно оценил сложность и потом будет просить доплату, либо сэкономит на качестве: джуны вместо мидлов, отсутствие тестирования, урезанная документация.</li><li>Отказ детализировать оценку под предлогом коммерческой тайны. Нормальная практика — объяснить клиенту, из чего складывается стоимость. Если подрядчик этого не делает — он либо сам не понимает, либо что-то скрывает.</li></ul><h2>10. Масштабируемость решения</h2><p>Интегратор не сдает вам в аренду серверы, поэтому он должен спроектировать систему так, чтобы при х10 росте нагрузки вам не пришлось переписывать ядро, менять СУБД или сносить весь проект.</p><ol><li>Проектирование под рост бизнеса отличает стратегическое мышление от тактического. Хороший интегратор спросит о ваших планах: сколько пользователей сейчас, сколько планируется через год, через три года. И заложит архитектуру с запасом.</li><li>Постепенное расширение функционала дешевле полной переделки. Модульная архитектура, микросервисы, API-first подход — всё это позволяет добавлять новые возможности без переписывания существующего кода.</li><li>Управление техническим долгом. Любая разработка накапливает технический долг: быстрые решения, костыли, устаревшие зависимости. Профессионалы планируют рефакторинг, выделяют время на улучшение кода, следят за обновлениями библиотек.</li><li>Vendor lock-in и технологическая независимость. Хороший интегратор не строит систему так, чтобы вы навсегда зависели от его экспертизы, конкретного облака или проприетарного инструмента. Проверяйте: на каких лицензиях работает стек, можно ли сменить подрядчика без переписывания системы, кто владеет кодом и есть ли возможность развивать продукт силами инхаус-команды.</li></ol><p>Спросите подрядчика, как система переживёт рост нагрузки, где будут ограничения и как их снимут на уровне архитектуры, инфраструктуры и интеграции. И не доверяйте подрядчикам, которые проектируют архитектуру так, что без него систему не поддержать.</p><h2>11. Скорость и качество коммуникации</h2><p>Здесь должно быть все понятно, но на всякий случай зафиксируем:</p><ol><li>Время отклика на первый запрос — если на ваше обращение отвечают через неделю — представьте, как будет идти коммуникация в процессе проекта.</li><li>Интегратор должен задавать вопросы не только про технические требования, но и про то, какую проблему бизнеса решает система. Это показывает стратегическое мышление.</li><li>Хороший подрядчик не просто делает, что сказали, а предлагает улучшения: как сделать эффективнее, дешевле, быстрее. Это требует глубокого понимания вашего бизнеса.</li></ol><p>Кто ваш основной контакт — менеджер-посредник или техлид команды? Менеджеры нужны для координации, но технические вопросы эффективнее решать напрямую с разработчиками. Еженедельные синки, демо каждый спринт, оперативные ответы в мессенджерах — это инфраструктура взаимодействия, которая должна быть настроена с первого дня.</p><h2>12. Репутация на рынке и стабильность</h2><p>Последний пункт проверки — надёжность подрядчика как бизнеса. Вы инвестируете в долгосрочные отношения, и компания должна быть стабильной.</p><p>Что оценивать:</p><ol><li>Время на рынке — один из положительных сигналов, но не гарантия. Компании с опытом 8+ лет, как правило, пережили кризисы, накопили экспертизу и выстроили процессы. Но возраст сам по себе не означает качество: проверяйте кейсы, репутацию и стабильность команды, а не только дату основания. Стартапы могут быть инновационными — просто риски у них другие.</li><li>Финансовая устойчивость проверяется косвенно: по масштабу проектов, количеству офисов, размеру команды.</li><li>Участие в профессиональных мероприятиях показывает открытость. Компании, которые выступают на конференциях, пишут статьи, делятся опытом, обычно уверены в своей экспертизе. Это также помогает проверить репутацию через знакомых в индустрии.</li><li>Партнёрские отношения с крупными вендорами — ещё один индикатор.</li></ol><p>Проверка на негатив:</p><ul><li>Поищите упоминания компании в негативном контексте: судебные споры, публичные конфликты с клиентами, жалобы сотрудников. Одна претензия — не приговор, но если их много — стоит задуматься.</li><li>Отсутствие следов в интернете тоже настораживает. Нормальная IT-компания в 2026 году должна быть видна: сайт, соцсети, публикации, упоминания в медиа.</li></ul><h2>Как использовать чек-лист</h2><ol><li>Первичный скрининг отсекает неподходящих кандидатов. Пройдитесь по критичным пунктам: опыт в индустрии, технологический стек, безопасность, репутация. Если есть красные флаги — не тратьте время на глубокую оценку.</li><li>Глубокое интервью для финалистов. Возьмите 2-3 компании, которые прошли скрининг, и проверьте остальные пункты детально. Встречи с командой, разбор кейсов, общение с референсами, обсуждение процессов.</li><li>Пилотный проект снижает риски. Перед большим контрактом протестируйте подрядчика на небольшой задаче. Это покажет реальное качество работы, скорость коммуникации, соблюдение договорённостей. Дешевле потратить месяц на пилот, чем год на исправление ошибок.</li></ol><p>Чек-лист работает, когда применяете его последовательно. Не пропускайте пункты, которые кажутся очевидными — именно там часто скрываются проблемы. И помните: идеального подрядчика не существует. Важно найти того, чьи сильные стороны совпадают с вашими приоритетами, а слабые — не критичны для проекта.</p><p>Но даже с такими характеристиками важно пройти все этапы проверки. Запросить кейсы в вашей индустрии, пообщаться с референсами, провести техническое интервью, возможно, начать с пилотного проекта. Потратьте время на правильный выбор сейчас — сэкономите месяцы и бюджеты в будущем.</p>]]></content:encoded>
    </item>
    <item>
      <title>OwnCloud – аналог Nextcloud: для чего использовать и как настроить облачное хранилище</title>
      <link>https://tproger.ru/articles/owncloud-analog-nextcloud-dlya-chego-ispolzovat-i-kak-nastroi</link>
      <comments>https://tproger.ru/articles/owncloud-analog-nextcloud-dlya-chego-ispolzovat-i-kak-nastroi?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Oksana Karelina]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/owncloud-analog-nextcloud-dlya-chego-ispolzovat-i-kak-nastroi</guid>
      <description><![CDATA[<p>ownCloud vs Nextcloud, что лучше? Какое облачное хранилище выбрать? Как может помочь связка S3 с ownCloud?
</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/owncloud-analog-nextcloud-dlya-chego-ispolzovat-i-kak-nastroi">OwnCloud – аналог Nextcloud: для чего использовать и как настроить облачное хранилище</a>»</p>]]></description>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[MySQL]]></category>
      <category><![CDATA[Конференции]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[macOS]]></category>
      <category><![CDATA[ICO]]></category>
      <category><![CDATA[Redis]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[Персональные данные]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Машин]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 07 May 2026 08:40:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Вы когда-нибудь задумывались, сколько информации производит человечество?</p><p>Если верить статистике, сейчас ежедневно создается около <a href="https://explodingtopics.com/blog/data-generated-per-day">402,74</a> миллионов терабайт данных.</p><p>Согласитесь, довольно внушительная цифра.</p><p>В этих реалиях, когда объем данных постоянно растет, у каждого из нас рано или поздно может возникнуть вопрос – где хранить рабочие и личные файлы, да еще и так, чтобы сохранить абсолютный контроль над ними.</p><p>Меня зовут Оксана, я маркетолог в Beget и в этой статье хочу поделиться решением, которое мы выбрали у себя в отделе для хранения файлов, когда заметили, что их стало слишком много.</p><p>Мы решили перейти на гибкое объектное хранилище S3 – чтобы централизовано хранить и управлять текстами, креативами, отчетами и другими маркетинговыми материалами с удобным доступом внутри команды, ведь S3 позволяет хранить файлы любого типа и объема и масштабируется автоматически. Осталось только выбрать ПО для хранения файлов в облаке, к которому можно подключить S3.</p><p>Ранее у нас был опыт использования Nextcloud, однако его функционал, подобный швейцарскому ножу (встроенные календарь, конференции, таск-трекер и т. д.), оказался слишком объемен для нашей, по сути, скромной задачи – удобного и стабильного хранения файлов.</p><p>Вот почему мы подыскали аналог Nextcloud – ownCloud. В отличие от более функционального <a href="https://beget.com/ru/cloud/marketplace/nextcloud">Nextcloud</a>, ownCloud заточен исключительно на работу с файлами. И при этом он поддерживает подключение облачного объектного хранилища S3. Поэтому для нас в сравнении Nextcloud vs ownCloud выбор был очевиден.</p><p>В этой статье я расскажу, какие возможности есть у ownCloud, почему это ПО может быть полезно и как настроить связку ownCloud и S3. Если вы хотите организовать безопасное, контролируемое хранение и обмен данными на работе или дома, то этот материал будет для вас полезен.</p><h2>Что может ownCloud</h2><p>Для начала – буквально несколько слов об ownCloud и его возможностях.</p><p>Это программное обеспечение с открытым исходным кодом для хранения, синхронизации и обмена файлами появилось в 2010 году благодаря усилиям разработчика KDE Франка Карличека, который <a href="https://ru.wikipedia.org/wiki/OwnCloud">стремился</a> создать бесплатную альтернативу коммерческим облачным сервисам хранения данных.</p><h3>OwnCloud позволяет:</h3><ol><li>получать доступ к данным из любой точки мира и хранить файлы на собственном сервере – под вашим полным контролем;</li><li>синхронизировать данные между устройствами – доступ к файлам возможен с компьютеров (Windows, macOS, Linux), смартфонов (iOS, Android) и через браузер, изменения на одном устройстве мгновенно появляются на всех остальных;</li><li>делиться файлами и папками по ссылке, настраивая права доступа, пароли и срок действия ссылок;</li><li>совместно работать с документами, отслеживать историю изменений и возвращаться к любой предыдущей версии файла.</li></ol><blockquote>Только ownCloud сочетает в себе полный контроль над данными с простыми в использовании функциями обмена файлами, делая совместную работу более эффективной и безопасной.</blockquote><p>Сегодня ownCloud используют <a href="https://owncloud.com/customers/">компании</a> (Philips, Nationwide, Zeppelin и др.) в самых разных сферах (IT, машиностроение, медицина и т. д.).</p><p>При этом решение подходит не только для работы, но и для личных целей, когда нужно обменяться фото и видео с родственниками и друзьями, ведь, по мнению пользователей, среди преимуществ ownCloud – <a href="https://www.capterra.com/p/176602/ownCloud/reviews/">простота настройки</a> и <a href="https://www.temjournal.com/content/102/TEMJournalMay2021_954_960.pdf">удобная синхронизация с различными гаджетами</a>.</p><blockquote>С ownCloud мне не нужно слепо доверять какой-то неопределенной организации. Я контролирую, как происходит обмен файлами, и ownCloud помогает мне на каждом этапе.</blockquote><p>OwnCloud позволяет решать самые разные задачи, связанные с работой с файлами, – расскажем на примере трех кейсов, как это облачное хранилище помогает нам в отделе маркетинга.</p><h2>Для каких задач мы используем ownCloud и S3</h2><h3>1. Централизованное управление материалами</h3><p>Мы часто работаем с текстами, изображениями и презентациями. Дизайнеры и авторы загружают эти материалы в ownCloud, файлы автоматически сохраняются в S3, а для удобства поиска у нас настроены теги.</p><p>В итоге каждый член команды может видеть версии файлов (это важно для правок), нет хаоса в почте и мессенджерах.</p><h3>2. Безопасное взаимодействие с подрядчиками</h3><p>Связка ownCloud и S3 позволяет выгружать внешним специалистам материалы и получать результаты работ без прямого доступа к внутренней сети компании. Мы создали папку с публичной ссылкой, но жесткими ограничениями – паролем, сроком жизни ссылки в течение нескольких дней и разрешением на загрузку файлов без права просмотра папки.</p><p>На практике это работает так: менеджер создает ссылку и отправляет подрядчику, подрядчик переходит по ссылке и загружает архив с готовыми материалами, файл попадает в ownCloud, а его содержимое сохраняется в S3. Таким образом, подрядчик не видит, какие еще файлы лежат в папке, а мы контролируем, кто, что и когда загрузил.</p><h3>3. Долгосрочный архив креативов и отчетов</h3><p>По закону (152-ФЗ в РФ или GDPR в Европе) компания обязана хранить персональные данные клиентов, а также отчеты о рассылках и рекламных акциях на протяжении определенного времени.</p><p>Для решения этой задачи мы настроили правило: файлы старше 90 дней автоматически перемещаются в S3 Glacier (холодное хранилище) – этот класс снижает стоимость хранения, а если, например, юристу понадобится скачать какой-нибудь отчет спустя 2–3 года, он просто выгрузит его из ownCloud буквально за 5–10 минут.</p><p>Теперь – в деталях и по шагам о том, как начать использовать ownCloud в связке с S3.</p><h2>Как развернуть ownCloud и подключить S3</h2><p>OwnCloud удобно использовать с объектным хранилищем S3 – таким образом можно:</p><ol><li>масштабировать систему – S3 расширяется автоматически и не имеет ограничений по объему и количеству размещаемых данных и файлов;</li><li>оптимизировать затраты – можно платить не за дорогую конфигурацию виртуального сервера с большим объемом диска, а лишь за фактически занимаемое место, по модели pay as you go (оплата по мере потребления);</li><li>повысить надежность хранения – за счет встроенной в S3 тройной репликации данных (файлы хранятся в 3 копиях и размещаются на независимых серверах в разных стойках для абсолютной сохранности данных).</li></ol><h3>Итак, разберем, как настроить связку ownCloud и S3.</h3><p>Разработчики ownCloud предлагают два варианта установки. Можно скачать ownCloud и установить его вручную или использовать Docker-контейнеры. Мы выберем второй вариант.</p><p>Для размещения ownCloud в нашем примере создадим виртуальный сервер на базе <a href="https://beget.com/ru/cloud/marketplace/docker">готового решения Docker</a>.</p><p>Можно подключиться к серверу по SSH или с помощью терминала в панели управления.</p><p>Для размещения файлов создайте бакет объектного хранилища S3. Реквизиты доступа к нему будут в карточке бакета в панели:</p><figure><img src="https://media.tproger.ru/user-uploads/105012/2026-04-29/ee49d00b-7e32-4b8d-8ad4-bbbaeb0c3bb0.webp" alt="" /></figure><p>Создайте директорию для размещения конфигурационных файлов проекта и перейдите в нее:</p><p>Затем вставьте в файл docker-compose.yml следующее содержимое с помощью любого текстового редактора:</p><p>После этого создайте файл .env, в котором будут храниться значения переменных. Шаблон файла следующий:</p><p>Теперь необходимо отредактировать эти строки:</p><ol><li>ownCloud_DOMAIN и ownCloud_TRUSTED_DOMAINS – укажите домен (так как ownCloud будет размещен за обратным прокси, указывать рабочий порт здесь не требуется);</li><li>ADMIN_USERNAME – логин администратора;</li><li>ADMIN_PASSWORD – пароль администратора.</li></ol><p><i>Обратите внимание! Изменение ADMIN_USERNAME и ADMIN_PASSWORD уже после развертывания контейнеров не возымеет эффекта. Изменить пароль администратора вы можете в настройках пользователя в веб-интерфейсе.</i></p><p>Далее необходимо указать параметры подключения к S3.</p><ul><li>ownCloud_OBJECTSTORE_BUCKET – имя бакета S3;</li><li>ownCloud_OBJECTSTORE_ENDPOINT – эндпоинт хранилища (например, https://s3.ru1.storage.beget.cloud);</li><li>ownCloud_OBJECTSTORE_REGION – регион (ru1 для Beget);</li><li>ownCloud_OBJECTSTORE_KEY – Access key бакета;</li><li>ownCloud_OBJECTSTORE_SECRET – Secret key бакета.</li></ul><p>Сохраните файл.</p><p>Остается лишь добавить файл конфигурации для Caddy – обратного прокси, через который пользователи будут получать доступ к ownCloud.</p><p>Создайте директорию config:</p><p>После чего создайте в ней файл конфигурации Caddyfile. Добавьте в него следующее содержимое, указав вместо ownCloud.betutorial.ru ваш домен ownCloud:</p><p><i>Обратите внимание! Caddy выпустит SSL-сертификат на домен автоматически.</i></p><p>Все запросы к домену будут проксироваться в контейнер ownCloud_server.</p><p>На этом настройка конфигурационных файлов завершена, можно запускать контейнеры:</p><p>Потребуется несколько минут, чтобы docker загрузил образ и развернул контейнеры.</p><p>После запуска перейдите по домену, чтобы проверить работу хранилища:</p><figure><img src="https://media.tproger.ru/user-uploads/105012/2026-04-29/934faf67-2939-40f3-840e-88af18ebfde3.webp" alt="" /></figure><p>Выполните вход со стандартными доступами.</p><p><i>Обратите внимание! Если ownCloud недоступен или вы получаете ошибку при входе со стандартными доступами, проверьте корректность конфигурационных файлов. После внесения изменений перезапустите контейнеры.</i></p><p>После входа вы попадете на главную страницу ownCloud. Перед началом работы мы крайне рекомендуем сменить стандартный пароль администратора. Сделать это можно, нажав на кнопку с именем пользователя в верхней правой части страницы и открыв раздел настроек.</p><figure><img src="https://media.tproger.ru/user-uploads/105012/2026-04-29/9f93c25a-3922-4223-b3bd-b45aaaf61edf.webp" alt="" /></figure><p>Теперь проверим работу объектного хранилища – перейдем на главную страницу и загрузим файлы:</p><figure><img src="https://media.tproger.ru/user-uploads/105012/2026-04-29/51a6e16f-ee9b-4e96-9a5c-7ef765f62286.webp" alt="" /></figure><p>Файлы также появились и в объектном хранилище:</p><figure><img src="https://media.tproger.ru/user-uploads/105012/2026-04-29/16e65ad7-28f9-462c-9af6-990d2cf3c878.webp" alt="" /></figure><p><i>Обратите внимание! Файлы, которые вы удалите в ownCloud, будут перемещены в корзину и останутся в S3. Для их полного удаления очистите корзину ownCloud.</i></p><p>Чтобы делиться паролями с новыми пользователями, необходимо настроить отправку почты в ownCloud, сделать это можно в разделе Settings&gt;General.</p><p>В нашем примере мы настроим отправку через SMTP:</p><figure><img src="https://media.tproger.ru/user-uploads/105012/2026-04-29/45e39a41-4bb1-4d19-9bfe-1e1db3afc4a6.webp" alt="" /></figure><p>После указания данных введите тестовый email и нажмите “Send email”. Если отправка успешна, вы получите уведомление об этом:</p><figure><img src="https://media.tproger.ru/user-uploads/105012/2026-04-29/5a22786d-3995-4e86-9b48-0a17363c8a18.webp" alt="" /></figure><p>А на почтовый ящик поступит письмо:</p><figure><img src="https://media.tproger.ru/user-uploads/105012/2026-04-29/f4043b49-9a17-42ed-a627-34502c2a16e8.webp" alt="" /></figure><p>На этом настройка завершена – можно начинать работать с файлами, используя связку ownCloud и S3.</p><h2>Заключение</h2><p>Если вы ловите себя на мысли, что данных стало настолько много, что поиск нужного файла порой происходит дольше, чем работа с ним (особенно если одни файлы хранятся на почте или в мессенджере, а другие – на ноутбуке или флешке), облачное хранилище может вам помочь.</p><p>Подобное ПО пригодится как для личных целей, так и для бизнеса – недаром в 2025 году в нашей стране был <a href="https://www.kommersant.ru/doc/8178724">зафиксирован</a> рост интереса крупного и среднего бизнеса к технологии облачного хранилища.</p><p>Надеюсь, эта статья была для вас полезна, а облачные хранилища помогут сделать ежедневную работу комфортнее.</p>]]></content:encoded>
    </item>
    <item>
      <title>Denwer SE: Возрождение легендарного локального веб-сервера на современном стеке</title>
      <link>https://tproger.ru/articles/denwer-se-vozrozhdenie-legendarnogo-lokalnogo-veb-servera-na-so</link>
      <comments>https://tproger.ru/articles/denwer-se-vozrozhdenie-legendarnogo-lokalnogo-veb-servera-na-so?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Александр Тишов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/denwer-se-vozrozhdenie-legendarnogo-lokalnogo-veb-servera-na-so</guid>
      <description><![CDATA[<p>Помните диск Z:, иконку джентльмена и магию Run.exe? Денвер вернулся. Denwer SE: Python вместо Perl, HTTPS без красных экранов, свежий PHP и портативность. И да, он всё ещё помещается на флешку.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/denwer-se-vozrozhdenie-legendarnogo-lokalnogo-veb-servera-na-so">Denwer SE: Возрождение легендарного локального веб-сервера на современном стеке</a>»</p>]]></description>
      <category><![CDATA[C++]]></category>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[MySQL]]></category>
      <category><![CDATA[PHP]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Браузеры]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Node.js]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[CMS]]></category>
      <category><![CDATA[Laravel]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 05 May 2026 10:11:34 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вы начинали веб-разработку в середине 2000-х, то наверняка помните Denwer — «джентльменский набор веб-разработчика». Иконка в виде человека в шляпе, виртуальный диск Z:, папка <i>home/localhost/www</i> — всё это было ритуалом, который упрощал жизнь тысячам разработчиков. Но оригинальный Denwer безнадёжно устарел: Perl-скрипты, 32-битные сборки, поддержка только древних версий PHP и MySQL. Ему на смену пришли громоздкие комбайны вроде Open Server или сложные для новичков Docker-контейнеры.</p><p>Однако недавно проект получил второе дыхание. Разработчик Александр Тишов (Amro) — создатель <a href="https://seditio.org" rel="nofollow">CMS Seditio</a> и основатель веб-студии <a href="https://avego.org" rel="nofollow">«Авего»</a>  — выпустил <a href="https://seditio.org/dev/denwer-se-lokalnyj-veb-stek-dlya-windows-apache-php-mysql-mariadb" rel="nofollow">Denwer SE (Second Edition)</a>. Это не просто обновление, а полный реинжиниринг с сохранением классической философии: портативность, скорость работы и привычная структура каталогов.</p><p>В этой статье разберём, что изменилось под капотом, почему панель управления переехала с Perl на Python, как работает автоматический HTTPS с собственным корневым сертификатом и зачем нужен зоопарк версий PHP от 5.6 до 8.5.</p><h2>Краткий экскурс: от Denwer 3 до Denwer SE</h2><p>Оригинальный Denwer (сокращение от Джентельменский Набор Веб-разработчика) появился в начале 2000-х. Он представлял собой связку Apache + PHP + MySQL, упакованную в самораспаковывающийся архив. Главные фишки:</p><ul><li>Виртуальный диск (по умолчанию Z:), который монтировался через subst.</li><li>Автоматическое создание виртуальных хостов по именам папок в home.</li><li>Консольные exe-файлы (Run, Stop, Restart) без графического окна.</li></ul><p>Проблемы оригинала:</p><ul><li>Управление на Perl — медленно, тяжело поддерживать в Windows.</li><li>Только 32-битные компоненты.</li><li>Невозможно быстро переключать версии PHP или БД.</li><li>Отсутствие нормального HTTPS (только самоподписанные сертификаты с ошибками в браузере).</li><li>Поддержка прекратилась в 2016 году.</li></ul><p>Denwer SE решает все эти проблемы, оставаясь при этом таким же портативным — достаточно скопировать папку на флешку или в облачный каталог.</p><h2>Архитектура: Python вместо Perl</h2><p>Denwer SE — панель управления написана на Python и скомпилирована в один EXE-файл (через PyInstaller).</p><p>Внутри служебной папки <b>denwer\</b> лежат:</p><ul><li>DLL-версия Python — интерпретатор, который использует основной исполняемый файл.</li><li>Скомпилированные модули .pyd — в том числе GUI на базе Tcl/Tk для оконного интерфейса и системного трея.</li><li>Минимальный набор библиотек для управления службами, правки hosts и генерации сертификатов.</li></ul><p>Это даёт несколько преимуществ:</p><ul><li>Портативность — панель ищет соседние папки home и usr, поэтому каталог со стеком можно переносить куда угодно без переустановки.</li><li>Скорость — Python-скрипты запускаются быстрее, чем Perl, особенно на холодном старте.</li><li>Читаемость кода — разработчику проще поддерживать и расширять функционал.</li></ul><h2>Полный переход на x64</h2><p>Оригинальный Denwer навсегда остался 32-битным, что в современных реалиях просто неприемлемо. Denwer SE собирается исключительно под x64:</p><ul><li>Apache (версия 2.4.x) — 64-битный.</li><li>Все модули PHP (от 5.6 до 8.5) — Thread Safe x64.</li><li>MySQL / MariaDB — 64-битные сборки.</li></ul><p>Системные требования — Windows 7/8/10/11 (x64). Для работы компонентов потребуются Microsoft Visual C++ Redistributable (VC11, VC12, VC14, VC15). Разработчик положил установщики этих пакетов в папку <b>vcredist\</b> — при необходимости можно доустановить вручную.</p><h2>Структура каталогов: преемственность и гибкость</h2><p>Denwer SE сохранил классическую структуру, чтобы старые пользователи не ломали голову:</p><p>Главный конфиг — usr\configuration.txt. В нём задаются пути без жёсткой привязки к букве диска, например:</p><p>При старте панель монтирует виртуальный диск (по умолчанию Z:) и динамически подставляет путь через переменную <b>subst_drive</b>.</p><h2>Управление версиями PHP и БД без танцев с бубном</h2><p>В Denwer SE встроен менеджер версий. Вы просто выбираете из выпадающего списка нужную версию PHP (например, 8.3 или 5.6) — панель сама правит конфигурацию Apache.</p><p>Как это работает под капотом:</p><p>В папке usr/local/apache/php лежат подкаталоги php5.6, php7.4, php8.3 и т.д..</p><p>В каждом из них есть файл php-denwer.conf— шаблон для подключения модуля к Apache. При выборе версии этот файл копируется в <b>conf/extra/httpd-denwer.conf</b>, который затем включается в основной httpd.conf.</p><p>Если вы хотите добавить свою сборку PHP (например, PHP 8.4-rc), достаточно:</p><ul><li>Распаковать x64 Thread Safe версию в отдельный каталог внутри php\.</li><li>Создать php-denwer.conf по образцу.</li><li>Убедиться, что все DLL от VC++ установлены.</li></ul><p>Аналогично для баз данных: переключение между MySQL 5.7 и MariaDB 11.8 происходит через тот же интерфейс. В каталоге СУБД может лежать файл <b>db-denwer.conf</b>, который при старте копируется в <b>my.ini</b>.</p><h2>HTTPS, который не бесит: локальный Root CA</h2><p>Самое болезненное место при локальной разработке это самоподписанные сертификаты. Браузеры постоянно ругаются, приходится кликать «Принять риск». Для командной разработки это вообще катастрофа: каждый участник должен сгенерировать свой сертификат и добавить в исключения.</p><p>Denwer SE решает проблему элегантно — он создаёт собственный корневой центр сертификации (CA) и подписывает им сертификаты для всех ваших локальных доменов.</p><p>Как это работает:</p><ol><li>При первом запуске (если найден OpenSSL) панель генерирует ключи denwer-ca.key и сертификат denwer-ca.crt в папку usr/local/apache/conf/cert/denwer-ca/.</li><li>Для каждого виртуального хоста (папки в home/) автоматически создаётся сертификат в conf/cert/&lt;domain&gt;/.</li><li>Все сертификаты хостов подписаны локальным CA.</li></ol><p>Чтобы браузер доверял им, нужно один раз установить <b>denwer-ca.crt</b> в хранилище «Доверенные корневые центры сертификации» Windows. Для этого в панели есть специальная кнопка (требует прав администратора).</p><p>После этого любые HTTPS-запросы к локальным хостам работают без единого предупреждения.</p><h2>Удобства для разработчика (DX)</h2><p>В версии 1.2.4 добавили несколько фич, которые экономят время каждый день:</p><ul><li>Лог с таймштампами — каждая строка в окне панели имеет префикс [чч:мм:сс]. Теперь видно, сколько секунд сервер поднимается и где возможны задержки.</li><li>Прямой доступ к php.ini и my.cnf — рядом со списками версий появились кнопки, открывающие конфигурацию именно активной версии.</li><li>Автоматическое ведение hosts — панель в реальном времени сканирует home/, находит новые домены и прописывает их в C:\Windows\System32\drivers\etc\hosts. Журнал добавляемых записей сохраняется в usr\AddedHosts.txt. При остановке стека лишние строки удаляются.</li><li>Для смены версии PHP или базы данных панель требует полной остановки всех служб. Вы нажимаете «Стоп», меняете версию в списке, затем «Старт» — и стек поднимается уже с новыми настройками. Автоматический перезапуск без вашего участия работает только для Apache: когда вы добавляете новый домен в папку home/, панель сама переписывает vhosts.conf и перезапускает веб-сервер, не трогая БД.</li></ul><h2>Почему не Open Server или Docker?</h2><p>Этот вопрос закономерно возникает у всех, кто видит очередной локальный веб-сервер. Ведь есть уже давно Open Server Panel, Laragon, XAMPP, а для продвинутых — Docker. Зачем ещё один?</p><p><b>Open Server</b> — мощный и удобный комбайн с десятками версий PHP и настройками «на века». Но он разворачивается в системе не портативно: создаёт папки в ProgramData, пишет в реестр, а запуск может занимать 5–10 секунд. Denwer SE, напротив, полностью переносим: скопировал папку на флешку или в облачный каталог — и всё работает. Запуск стека — буквально 1–2 секунды, что критично, когда вы десятки раз за день перезапускаете сервер для тестов.</p><p><b>Docker</b> — индустриальный стандарт для изоляции и воспроизводимости окружений. Но для локальной разработки простого сайта он часто избыточен. Вам нужно разобраться в образах, контейнерах, пробросе портов, volume’ах и docker-compose.yml. А в Denwer SE вы просто создали папку в home/ — и готово. Никакой работы с командной строкой, никакого потребления гигабайт ОЗУ на фоновую службу Docker Desktop.</p><p><b>Laragon</b> — быстрый, портативный, поддерживает не только PHP, но и Node.js, Python, Go. Но он ориентирован на современные фреймворки, особенно Laravel. Denwer SE же сделан для тех, кто вырос на классическом Денвере: виртуальный диск Z:, папка home/имя_домена/www, минимум настроек. Не нужно переучиваться — просто распаковал и работаешь как 10 лет назад, но с новыми версиями PHP и HTTPS.</p><h2>Как начать пользоваться Denwer SE</h2><ol><li>Скачать архив с <a href="https://seditio.org/dev/denwer-se-lokalnyj-veb-stek-dlya-windows-apache-php-mysql-mariadb" rel="nofollow">официального сайта автора</a>.</li><li>Распаковать в любое место, например C:\web\DenwerSE\.</li><li>Запустить DenwerSE.exe — если нет прав администратора, попросит их для монтирования диска и правки hosts.</li><li>Нажать «Запустить» — появится виртуальный диск Z:, а в системном трее иконка.</li><li>Создать папку сайта — например, home\myproject.local и положить туда index.php.</li><li>Открыть в браузере http://myproject.local/ (или https://myproject.local/). HTTPS будет работать сразу после установки корневого сертификата (кнопка в панели).</li></ol><p>По умолчанию пароль к MySQL/MariaDB — пустая строка (пользователь <b>root</b>). При желании его можно сменить через phpMyAdmin.</p><h2>Заключение</h2><p>Denwer SE — это не просто ностальгический проект. Это действительно современный инструмент, который доказывает, что концепция «локального сервера в одну папку» всё ещё актуальна. Отказ от Perl в пользу Python, менеджер версий PHP/БД, нормальный HTTPS, портативность и мгновенный запуск — всё это делает его отличным выбором для быстрого прототипирования, тестирования легаси-кода или обучения веб-разработке.</p><p>Если вы устали ждать, пока Open Server применит настройки, или не хотите разбираться в Docker Compose — попробуйте <b>Denwer SE</b>. Вероятно, он напомнит вам старые добрые времена, но уже без боли устаревших технологий.</p><ul><li>Автор проекта: Александр Тишов
	(Amro), разработчик CMS Seditio.</li><li>Лицензия: Freeware.</li><li>Совместимость: Windows 7/8/10/11 x64.</li></ul><p>Исходники панели управления не открыты (распространяется скомпилированный EXE), но архитектура и конфиги полностью прозрачны. В планах — добавить поддержку Nginx в качестве альтернативы. Следите за обновлениями.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как я написал E2EE-мессенджер на Spring Boot и WebCrypto — и почему сервер не видит сообщения</title>
      <link>https://tproger.ru/articles/kak-ya-napisal-e2ee-messendzher-na-spring-boot-i-webcrypto-i-poch</link>
      <comments>https://tproger.ru/articles/kak-ya-napisal-e2ee-messendzher-na-spring-boot-i-webcrypto-i-poch?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Василенков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-ya-napisal-e2ee-messendzher-na-spring-boot-i-webcrypto-i-poch</guid>
      <description><![CDATA[<p>Разбор архитектуры E2EE-мессенджера на Spring Boot 3, React и WebCrypto: X3DH, symmetric ratchet, AES-GCM, WebSocket, multi-device и ограничения реализации.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-ya-napisal-e2ee-messendzher-na-spring-boot-i-webcrypto-i-poch">Как я написал E2EE-мессенджер на Spring Boot и WebCrypto — и почему сервер не видит сообщения</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[React]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Алиса]]></category>
      <category><![CDATA[Redis]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[5g]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[PostgreSQL]]></category>
      <category><![CDATA[Grafana]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 05 May 2026 05:35:02 GMT</pubDate>
      <content:encoded><![CDATA[<figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/240e412b-4307-49f9-b24f-bde7e0a7fd9a.webp" alt="" /></figure><p>Я Java-разработчик и в основном работаю с backend: Spring Boot, базы данных, интеграции, авторизация, WebSocket — всё то, что обычно находится за интерфейсом.</p><p>В какой-то момент я поймал себя на мысли: я каждый день пользуюсь мессенджерами, но плохо понимаю, как они устроены внутри. Окей, JWT, WebSocket, PostgreSQL, Redis — это понятно. Но что технически означает фраза "end-to-end encryption"? Как сервер доставляет сообщения, если он не должен их читать? Где живут ключи? Что хранится в базе? Что происходит, если у пользователя два устройства?</p><p>Решил разобраться через практику. Написал мессенджер с нуля. Назвал Chaos Messenger.</p><p>Сразу честно: криптографическую часть я изучал вместе с Claude и ChatGPT — читал спецификации X3DH и Double Ratchet, разбирал примеры, задавал вопросы, пока не сложилась цельная картина. Frontend тоже делался с активной помощью ChatGPT: я backend-разработчик, React для меня не основная среда. Но архитектура, backend, интеграция WebCrypto, модель конвертов, хранение сообщений и принципиальные решения — мои.</p><p>Для меня AI здесь был не заменой понимания, а инструментом — примерно как документация, Stack Overflow и ревью коллег. Без понимания threat model и архитектуры такой проект всё равно не собрать.</p><p>В статье расскажу, как работает E2EE изнутри: как устанавливается сессия через X3DH, как каждое сообщение получает отдельный ключ через Symmetric Ratchet, почему сервер хранит только зашифрованные конверты, и какие ошибки я допустил по дороге.</p><p>Стек: Spring Boot 3, React 18, WebCrypto API, PostgreSQL, Redis, WebSocket/STOMP, Prometheus, Grafana.</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/4b028f37-2de1-46ea-a247-567f74fb3081.webp" alt="" /></figure><h2>Важная оговорка про web-E2EE</h2><p>Когда я говорю, что сервер не может прочитать сообщения, я имею в виду backend, базу данных, WebSocket-слой и уже сохранённые ciphertext-конверты. У них нет ключей и plaintext.</p><p>Но у web-E2EE есть отдельная проблема: frontend-код тоже приходит с сервера. Теоретически скомпрометированный сервер может отдать изменённый JavaScript, который украдёт ключи или plaintext до шифрования. Это ограничение не конкретно моего проекта, а браузерной модели в целом.</p><p>Поэтому корректная формулировка такая: backend не получает ключи и не может расшифровать уже переданные или сохранённые сообщения. Защита от подмены клиентского кода — отдельный слой безопасности: подпись сборок, независимая верификация клиента, desktop/mobile-приложения, reproducible builds.</p><h2>Почему обычный подход не работает</h2><p>Большинство "мессенджеров" на GitHub выглядят примерно так:</p><p>Сервер знает всё. Видит каждое сообщение. Если БД утекла — утекла вся переписка. Если сервер взломали — читай что хочешь. Если завтра компания решит продать данные — технически ничего не мешает.</p><p>E2EE решает это радикально: backend не получает ключи и не хранит plaintext. Сообщение шифруется на устройстве отправителя до отправки в сеть, а расшифровывается только на устройстве получателя.</p><p>Это уже не вопрос политики конфиденциальности в стиле "мы обещаем не читать". Это архитектурное ограничение: если у сервера нет ключа, он не может превратить ciphertext обратно в текст.</p><p>Звучит как магия. На самом деле — два протокола и немного WebCrypto.</p><h2>Главная идея: конверты</h2><p>Представь что Алиса хочет написать Бобу. Вместо того чтобы положить письмо на стол и надеяться что никто не прочитает — она кладёт его в запечатанный конверт. Конверт может открыть только Боб своим ключом. Сервер просто передаёт конверт не заглядывая внутрь.</p><p>Именно так это работает в коде. В базе данных у меня это выглядит так:</p><p>Когда я впервые увидел</p><p>в своей БД вместо текста — стало понятно, что модель наконец работает правильно: сервер создал сообщение, доставил его, сохранил метаданные, но так и не узнал содержимое.</p><p>А вот что сервер возвращает при запросе списка чатов через API:</p><p>Не</p><p>. Не</p><p>. Буквально</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/b466ad91-20da-4e64-8b78-f6e08d2851d5.webp" alt="" /></figure><p>(DevTools → Network → ответ API с</p><p>)</p><h2>Откуда берутся ключи: X3DH</h2><p>Главный вопрос: как Алиса и Боб получают общий секрет, если они никогда раньше не общались? И как сделать это так, чтобы сервер только помог передать публичные данные, но сам не смог вычислить итоговый ключ?</p><p>Для этого используется X3DH — Extended Triple Diffie-Hellman, протокол из экосистемы Signal. Его задача — установить общий секрет между двумя устройствами, используя долгосрочные и временные ключи.</p><h2>Что хранится на сервере</h2><p>Когда пользователь регистрирует устройство, он загружает на сервер пакет публичных ключей:</p><p>На сервер уходят только публичные части. Приватные ключи сериализуются и хранятся локально в браузере — и никогда не покидают устройство в сеть.</p><p>Здесь важно сказать честно: хранение приватных ключей в</p><p>Более строгий вариант — использовать Web Crypto API с</p><p>, чтобы приватный ключ жил внутри браузерного crypto runtime и его нельзя было экспортировать в байты. Но у этого подхода есть практическая сложность: ключи нужно переживать между перезагрузками страницы, синхронизировать с IndexedDB, аккуратно восстанавливать состояние устройства и не сломать UX.</p><p>В браузерных E2EE-приложениях обычно приходится выбирать между несколькими вариантами:</p><ul><li>Сериализуемые ключи в localStorage или IndexedDB — проще реализовать, но нужно очень серьёзно относиться к XSS и целостности frontend-кода.</li><li>extractable: false + IndexedDB — безопаснее, но сложнее в реализации и восстановлении состояния.</li><li>Нативное secure storage вроде Android Keystore или iOS Secure Enclave — лучший вариант для мобильных клиентов, но он недоступен обычному web-приложению.</li></ul><p>В текущей версии Chaos Messenger используется первый вариант. Это осознанный компромисс для pet/open-source проекта и удобного запуска в браузере. Переход на non-extractable ключи и более строгую модель хранения стоит в roadmap.</p><p>Ключевой момент: backend всё равно не получает приватные ключи и не может расшифровать сохранённые ciphertext-конверты. Но защита ключей на клиенте — отдельная задача, и её нельзя честно замалчивать.</p><h2>Установка сессии</h2><p>Когда Алиса открывает переписку с Бобом впервые, происходит следующее:</p><p>В классическом X3DH четвёртая DH-операция с one-time prekey опциональна: она выполняется, если сервер выдал доступный OPK получателя. В моей реализации устройство публикует набор one-time prekeys при регистрации, поэтому первое сообщение обычно использует DH4. Если OPK закончились, сессию всё равно можно установить через остальные DH-компоненты, но это уже менее сильный вариант.</p><p>Боб, получив конверт с эфемерным публичным ключом Алисы, повторяет те же операции со своими приватными ключами и получает тот же самый</p><p>. Математика симметрична.</p><p>Сервер в этот момент видит только публичные ключи и зашифрованный конверт. Он помогает устройствам найти друг друга, но не участвует в вычислении секрета.</p><p>Получить</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/e7bbacf3-4fd2-4710-863a-2c710b1f6759.webp" alt="" /></figure><h2>Как шифруется каждое сообщение: Symmetric Ratchet</h2><p>X3DH даёт нам стартовый</p><p>. Но использовать один и тот же ключ для всех сообщений — плохая идея. Если использовать один ключ для всей переписки, компрометация этого ключа сразу открывает весь поток сообщений.</p><p>Решение — симметричный ratchet. После каждого сообщения цепочка ключей продвигается вперёд:</p><p>Визуально это выглядит так:</p><p>используется для шифрования одного сообщения через AES-GCM, после чего уничтожается. Если атакующий компрометирует</p><p>— он прочитает только второе сообщение.</p><p>В рамках такой симметричной цепочки это даёт forward secrecy назад по цепочке: зная текущий или отдельный</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/939a74f7-60c5-4816-85f0-05b5afdc9845.webp" alt="" /><figcaption>(диаграмма схемы chainKey → messageKey)</figcaption></figure><p>Само шифрование сообщения:</p><p>А вот что уходит на сервер — живой пример из DevTools:</p><p>Сервер получает</p><p>и</p><p>. Расшифровать без</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/b5e24cda-6fd9-4b15-9f27-3eb9b4f843b0.webp" alt="" /></figure><h2>Важная оговорка: это ещё не полный Double Ratchet</h2><p>В этом проекте реализован Symmetric Ratchet — цепочка, где из</p><p>для каждого сообщения выводится отдельный</p><p>Это защищает прошлые сообщения: если атакующий узнает текущий ключ или отдельный</p><p>, он не сможет откатить HMAC назад и получить старые ключи.</p><p>Но это не полный Double Ratchet из Signal Protocol.</p><p>В полном Double Ratchet есть ещё DH ratchet step: стороны периодически выполняют новый Diffie-Hellman обмен и обновляют root key. Это даёт break-in recovery — возможность восстановить безопасность будущих сообщений после компрометации части состояния.</p><p>В моей реализации DH ratchet step пока нет. Если атакующий получит актуальное состояние сессии на устройстве и сможет продолжать его читать, он сможет расшифровывать будущие сообщения до переустановки сессии. Это честное ограничение текущей версии, и оно стоит первым пунктом в roadmap.</p><h2>Мультиустройство: один пользователь, несколько конвертов</h2><p>Первый неочевидный момент: в E2EE сообщение адресуется не просто пользователю, а конкретным устройствам пользователя.</p><p>Если у Боба два устройства — телефон и ноутбук — нужен отдельный encrypted envelope для каждого устройства. Сервер не может взять один конверт, расшифровать его и "переупаковать" для второго устройства: у него нет ключей и он не знает plaintext.</p><p>Значит при отправке сообщения нужно зашифровать его отдельно для каждого устройства каждого участника чата.</p><p>Для чата где у каждого по 2 устройства — 4 конверта на одно сообщение. Для группы из 10 человек — потенциально 20 конвертов. Это нормально, это цена безопасности.</p><h2>Сервер: хранение и доставка конвертов</h2><p>На сервере сообщение создаётся с контентом</p><p>, а конверты сохраняются отдельно:</p><p>После сохранения — fanout по WebSocket. Каждое устройство получает свой конверт и только его:</p><p>Это важное отличие от обычного WebSocket-чата. В обычном чате сервер рассылает одно и то же событие всем участникам. В E2EE-чате сервер рассылает разные события разным устройствам: payload для каждого устройства содержит свой</p><p>Топик</p><p>— строго персональный. Устройство А не получает конверт устройства Б. Никакого broadcast — только адресная доставка.</p><h2>Архитектура целиком</h2><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/de0e3257-d893-459f-86ed-7ed8eace5d56.webp" alt="" /></figure><h2>Баг который долго не замечал</h2><p>В панели чатов показывается превью последнего сообщения. Я реализовал это через</p><p>Запускаю — в списке чатов у всех написано</p><p>.</p><p>Конечно. Сервер же не знает что там написано.</p><p>Я полчаса думал как решить это на сервере. Потом дошло: нельзя решить это на сервере — у него нет ключей. Решение только на клиенте.</p><p>После того как пользователь открыл чат и сообщения расшифровались — кешируем последнее в памяти:</p><p>Это хороший пример того, как E2EE меняет привычное мышление backend-разработчика. В обычном приложении preview — это поле в SQL-запросе. В E2EE-приложении preview — это локальное клиентское состояние, потому что только клиент видел plaintext.</p><p>Простое решение. Но чтобы к нему прийти нужно было полностью принять идею что сервер здесь просто не при делах — и перестать пытаться решить задачу на его стороне.</p><h2>Rate limiting: дыра которую легко не заметить</h2><p>Эндпоинт</p><p>отправляет SMS с кодом. Без защиты любой скрипт может дёргать его тысячи раз — это называется SMS pumping fraud, SMS стоят реальных денег.</p><p>Redis у нас уже был для хранения онлайн-статусов. Добавил rate limiting поверх него:</p><p>При превышении — HTTP 429 с заголовком</p><p>. Клиент знает через сколько секунд можно повторить.</p><p>Важный нюанс: в текущей реализации, если Redis недоступен, сервис не блокирует авторизацию полностью. Для pet-проекта это приемлемый компромисс: лучше рискнуть одним лишним SMS, чем положить вход в приложение.</p><p>В production я бы сделал строже: fallback in-memory лимит на инстанс, отдельные лимиты по IP и телефону, антифрод-логику и алерты на всплески отправки кодов.</p><h2>Авторизация WebSocket</h2><p>Отдельная история — авторизация WebSocket соединений. HTTP-эндпоинты защищены Spring Security автоматически, но WebSocket — другое дело. STOMP-соединение устанавливается один раз, и нужно проверять JWT при каждом подключении.</p><p>Отдельно важно не только проверить JWT, но и связать WebSocket-соединение с конкретным устройством. Пользователь может быть один, но устройств у него несколько, а encrypted envelope адресован именно</p><p>Поэтому при подключении я проверяю не только токен, но и</p><p>: устройство должно быть зарегистрировано и принадлежать текущему пользователю. Иначе легко случайно превратить per-device E2EE-доставку обратно в обычный broadcast по пользователю.</p><h2>Что получилось — живые скрины</h2><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/1fdfa006-f5c6-4731-a40f-50559be8832d.webp" alt="" /></figure><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/c99164a5-021c-49ac-bcc4-3e38f9cd1c31.webp" alt="" /></figure><p>Что реализовано:</p><ul><li>E2EE-модель с per-device encrypted envelopes</li><li>X3DH session setup + Symmetric Ratchet + AES-GCM</li><li>Мультиустройство</li><li>Личные и групповые чаты</li><li>Realtime доставка через WebSocket/STOMP</li><li>Статусы SENT → DELIVERED → READ</li><li>Редактирование и soft delete сообщений</li><li>Online presence, typing indicator</li><li>Фото-вложения</li><li>Поиск пользователей</li><li>Rate limiting на SMS через Redis</li><li>Prometheus метрики + Grafana дашборд</li><li>Swagger UI с JWT авторизацией</li><li>24 backend-теста на Testcontainers, 12 frontend на Vitest, E2E на Playwright</li><li>GitHub Actions CI</li></ul><p>Что ещё не сделано:</p><ul><li>Полный Double Ratchet с DH ratchet step и break-in recovery</li><li>Ротация signed prekey и аккуратное пополнение one-time prekeys</li><li>Более строгая модель хранения приватных ключей на клиенте: non-extractable CryptoKey + IndexedDB</li><li>Защита от подмены frontend-кода: подпись сборок, независимая верификация клиента, reproducible builds</li><li>Android-клиент с Android Keystore</li><li>Реальный SMS-провайдер вместо кода в backend-логах</li><li>Push-уведомления без утечки содержимого сообщений</li><li>Более строгая metadata-модель для групповых чатов</li></ul><h2>Главный инсайт</h2><p>E2EE — это архитектурное решение, а не библиотека.</p><p>Нельзя взять обычный Spring Boot чат и просто "включить шифрование". Нужно с самого начала проектировать систему так, чтобы backend не был участником доверенной зоны: он не должен получать plaintext, не должен иметь ключи и не должен уметь пересобирать сообщение из данных в базе.</p><p>Это меняет почти всё:</p><ul><li>структуру БД — вместо текста появляются encrypted envelopes</li><li>API — сервер отдаёт [encrypted], а не preview сообщения</li><li>WebSocket — доставка идёт не по пользователю, а по конкретному устройству</li><li>мультиустройство — одно сообщение превращается в несколько ciphertext-конвертов</li><li>frontend — становится полноценной криптографической частью системы, а не просто UI</li></ul><p>Второй инсайт: мессенджер — это не "чат с WebSocket". В E2EE-модели это система доставки зашифрованных конвертов с адресацией по устройствам. Как только это принимаешь, многие странные на первый взгляд решения становятся логичными.</p><h2>Репозиторий</h2><p>Код открыт: <a href="https://github.com/vaazhen/chaos-messenger">github.com/vaazhen/chaos-messenger</a></p><p>В репозитории есть README на русском и английском, диаграммы, скриншоты, security audit, Docker Compose и запуск одной командой.</p><p>Проект не претендует на уровень production-криптомессенджера вроде Signal. Это учебный и инженерный open-source прототип, цель которого — показать, как E2EE меняет архитектуру backend, frontend и realtime-доставки.</p><p>Если вы делали что-то похожее — особенно интересно сравнить подходы к ротации prekey-ов, хранению non-extractable ключей в браузере и реализации DH ratchet step. Вопросы и критика приветствуются.</p>]]></content:encoded>
    </item>
    <item>
      <title>Адаптация открытого симулятора InferSim для оценки загрузки промышленных GPU</title>
      <link>https://tproger.ru/articles/adaptaciya-otkrytogo-simulyatora-infersim-dlya-ocenki-zagruzki-prom</link>
      <comments>https://tproger.ru/articles/adaptaciya-otkrytogo-simulyatora-infersim-dlya-ocenki-zagruzki-prom?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дмитрий Ходыкин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/adaptaciya-otkrytogo-simulyatora-infersim-dlya-ocenki-zagruzki-prom</guid>
      <description><![CDATA[<p>Рассказываем, как доработали симулятор InferSim от Alibaba: добавили поддержку новых GPU (включая MetaX C500), расширили список моделей с гибридными архитектурами и сделали визуализацию на Streamlit. Инструмент позволяет оценивать задержки и требуемую память без запуска реального инференса и помогает избежать грубых ошибок при планировании закупок оборудования.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/adaptaciya-otkrytogo-simulyatora-infersim-dlya-ocenki-zagruzki-prom">Адаптация открытого симулятора InferSim для оценки загрузки промышленных GPU</a>»</p>]]></description>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[JSON]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Визуализация]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[микро]]></category>
      <category><![CDATA[Hardware]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 04 May 2026 08:09:55 GMT</pubDate>
      <content:encoded><![CDATA[<p>Планирование аппаратных ресурсов под обслуживание больших языковых моделей — задача с высоким порогом ошибки. Потратишь лишнего — получишь неоправданные расходы. Сэкономишь — столкнёшься с деградацией пользовательского опыта. На российском рынке, где доступ к современным ускорителям ограничен, эта задача становится особенно острой.</p><p>Мы остановились на открытом симуляторе InferSim от Alibaba. Он умеет считать TTFT, TPOT и пропускную способность без запуска реального инференса. Но из коробки поддерживает только несколько топовых GPU и фиксированный набор моделей — для наших сценариев этого было недостаточно. Пришлось дорабатывать.</p><p><b>Как устроен InferSim</b></p><p>В основе симулятора — двухфазная схема. Сначала на целевом железе запускаются микро-бенчмарки: измеряется реальная производительность на типовых операциях внимания и матричных умножениях. Получается таблица коэффициентов Model FLOPs Utilization (MFU) — сколько процентов от теоретического максимума выдаёт конкретная карта на конкретной операции. Затем, уже без доступа к GPU, симулятор на основе этих MFU и аналитической модели вычисляет задержки. Именно такой подход даёт более точные предсказания, чем оценка по паспортной пропускной способности памяти.</p><p><b>Добавляем своё железо</b></p><p>Первым делом мы внесли в hardware/gpu.py поддержку MetaX C500 64GB. Характеристики добавляются через dataclass-экземпляры:</p><p>После этого c500 попадает в словарь gpu_map, и симулятор запускается с ключом --device-type C500 --world-size 2. Значения FLOPS и пропускной способности пришлось оценивать по косвенным источникам — производитель не публикует точных цифр. Позже планируем уточнить их через бенчмаркинг на реальном оборудовании. Таким же способом добавили Nvidia 1xH100 и A100.</p><p><b>Конфигурация моделей и одна болезненная ошибка</b></p><p>Симулятор ожидает стандартный config.json в формате Hugging Face. Для Qwen3-32B подготовили файл qwen3_32b_config.json:</p><p>Ключевой момент — правильное значение head_dim. У Qwen3-32B оно равно hidden_size / num_attention_heads = 5120 / 64 = 80. У нас ушло некоторое время, чтобы понять, почему симулятор выдаёт невалидные результаты: изначально в конфиге стояло значение 128. Пока не исправили — KV-кеш переоценивался, и метрики улетали в неадекватные цифры. После исправления всё встало на свои места.</p><p>Позже добавили поддержку Qwen3.5‑9B с её гибридной архитектурой, построенной на чередовании Gated DeltaNet и Gated Attention. Главная особенность модели в том, что около трёх четвертей слоёв не создают привычного KV‑кеша, а используют линейное внимание – компактное скрытое состояние, которое лишь обновляется с каждым новым токеном, не увеличиваясь в объёме. Это кардинально снижает расход памяти на длинных контекстах, но привносит и свою цену: на коротких дистанциях такая модель проигрывает в скорости Prefill, потому что Gated DeltaNet работает последовательно и хуже утилизирует матричные вычисления GPU.</p><p>Симулятор изначально не умел различать слои двух типов и считал весь KV‑кеш одинаково. Чтобы поддержать Qwen3.5, пришлось доработать расчёт задержек в классе HybridModel: теперь он отдельно обсчитывает full‑attention‑слои с полным кешем и linear‑attention‑слои без кеша, используя параметры num_full_attn_layers и num_linear_attn_layers из конфигурации. В директорию проекта models добавили hybrid_model.py, в котором сделали дополнительные расчёты:</p><p>Без такой дифференциации симулятор для Qwen3.5‑9B показывал E2E порядка 2 500 секунд вместо реальных нескольких секунд – та ошибка, которую мы долго отлавливали.</p><p><b>Визуализация и эксплуатация</b></p><figure><img src="https://media.tproger.ru/user-uploads/137657/2026-04-30/d68ad2ca-cbc0-4fe3-a4af-2f082a55ecdf.webp" alt="" /><figcaption>Пользовательский интерфейс на Streamlit</figcaption></figure><p>Чтобы не разбирать каждый раз текстовый вывод InferSim, сделали веб-интерфейс на Streamlit. Симулятор дёргается через subprocess, результаты парсятся из stdout и визуализируются:</p><ul><li>тепловые карты задержек (Prefill, Decode, E2E Total) для разных длин входных и выходных токенов;</li><li>анализ RPS с расчётом требуемой параллельности и сравнением с доступной памятью;</li><li>информация о занятой памяти в формате «X ГБ из Y ГБ».</li></ul><p>Кэширование через @st.cache_data позволило избежать повторных запусков симуляции при неизменных параметрах. Интерфейс получился достаточно удобным, чтобы даже коллеги без погружения в командную строку могли осмысленно сравнивать конфигурации.</p><p>Приложение упаковано в Docker и лежит в репозитории на <a href="https://github.com/DmitriyKhodykin/InferSim" rel="nofollow">GitHub</a>. Сервисы — сам Streamlit и Nginx в качестве обратного прокси с SSL-терминацией и базовой HTTP-аутентификацией. Деплой на VDS автоматизирован через GitHub Actions: собрали образ, отправили на сервер, перезапустили контейнеры. SSL-сертификаты Let's Encrypt обновляются по cron.</p><p><b>Что в итоге</b></p><p>Адаптированный InferSim не претендует на абсолютную точность — она ограничена качеством бенчмарков и коэффициентов MFU. Но инструмент позволяет избежать грубых ошибок при планировании, что в условиях ограниченного доступа к GPU и их высокой стоимости само по себе немало. Мы продолжаем калибровку симулятора и готовим обновлённые конфигурации для следующих моделей.</p><p>Репозиторий проекта открыт, будем рады замечаниям и предложениям от тех, кто решает схожие задачи.</p>]]></content:encoded>
    </item>
    <item>
      <title>Сравнение гибридных языковых моделей класса 9B для промышленного инференса</title>
      <link>https://tproger.ru/articles/sravnenie-gibridnyh-yazykovyh-modelej-klassa-9b-dlya-promywlennogo</link>
      <comments>https://tproger.ru/articles/sravnenie-gibridnyh-yazykovyh-modelej-klassa-9b-dlya-promywlennogo?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дмитрий Ходыкин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/sravnenie-gibridnyh-yazykovyh-modelej-klassa-9b-dlya-promywlennogo</guid>
      <description><![CDATA[<p>В материале сравниваются три открытые гибридные модели класса 9B (NVIDIA Nemotron‑Nano‑9B‑v2, Bamba‑9B‑v2, Qwen3.5‑9B) с референсной плотной Llama 3.1 8B. На основе моделирования под нагрузкой 4096 входных и 256 выходных токенов на одном H200</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/sravnenie-gibridnyh-yazykovyh-modelej-klassa-9b-dlya-promywlennogo">Сравнение гибридных языковых моделей класса 9B для промышленного инференса</a>»</p>]]></description>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[IBM]]></category>
      <category><![CDATA[NVIDIA]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[GPU]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 30 Apr 2026 09:07:23 GMT</pubDate>
      <content:encoded><![CDATA[<p>Выбор языковой модели с 8–9 млрд параметров для задач промышленного инференса — инженерная задача, требующая учёта нескольких факторов. Модель должна работать на ограниченном парке ускорителей, обеспечивать приемлемую задержку и показывать достаточное качество на таких задачах, как чат-боты, саммаризация документов, генерация кода и аналитика длинных контекстов. Классический подход — использование проверенной плотной модели Llama 3.1 8B — даёт стабильный результат, однако упирается в расход памяти на KV‑кеш, что ограничивает число одновременно обслуживаемых запросов.</p><p>Альтернативой выступают гибридные архитектуры, в которых традиционное внимание чередуется с более экономичными механизмами: Mamba‑2, Gated DeltaNet. Разработчики этих моделей заявляют о радикальном снижении потребления памяти и повышении пропускной способности без потери качества. В данном материале рассматриваются три открытые гибридные модели — NVIDIA Nemotron‑Nano‑9B‑v2, Bamba‑9B‑v2 (IBM) и Qwen3.5‑9B (Alibaba) — и сравниваются с референсной плотной моделью Llama 3.1 8B.</p><p><b>Методика моделирования</b></p><p>Моделирование проводилось для одного ускорителя NVIDIA H200 с 141 ГБ видеопамяти при типичной нагрузке: 4096 входных токенов и до 256 выходных. Рассчитывались следующие метрики: память на один экземпляр с учётом весов, оверхеда и KV‑кеша (Instance VRAM); полное время ответа (E2E Latency); пропускная способность одного экземпляра в запросах в секунду (RPS per replica); требуемый объём памяти на единицу пропускной способности (VRAM/RPS); максимальное число параллельных запросов, ограниченное исключительно памятью. Расчёты верифицировались с помощью расширенного симулятора InferSim и по данным публичных бенчмарков.</p><p><b>Результаты</b></p><figure><img src="https://media.tproger.ru/user-uploads/137657/2026-04-30/213cf68a-3c91-4545-a4f4-ebba0d3f8bfe.webp" alt="" /><figcaption>Результаты моделирования относительно референсной Llama 3.1 8B</figcaption></figure><p><b>Особенности производительности моделей</b></p><p>Разница на порядок по KV-cashe у Nemotron обусловлена архитектурой. Модель содержит 56 слоёв, из которых лишь четыре используют полноценное внимание с KV‑кешем, а остальные 52 — сверхбыстрые Mamba‑2‑блоки. Mamba‑2 работает как рекуррентная сеть: вместо хранения растущей таблицы ключей и значений для каждого токена она обновляет компактное скрытое состояние фиксированного размера. В результате для запроса длиной 4096 + 256 токенов KV‑кеш Nemotron занимает около 68 МБ — примерно в восемь раз меньше, чем у Llama. Именно поэтому модель способна удерживать в памяти почти 2000 одновременных запросов; узким местом становится не память, а вычислительная мощность GPU.</p><p>Архитектура Qwen3.5 построена на чередовании Gated DeltaNet и Gated Attention. Большинство слоёв использует механизм линейного внимания, который подобно Mamba‑2 оперирует скрытым состоянием постоянного размера, не порождая тяжёлого KV‑кеша. Однако у этого подхода есть обратная сторона: Gated DeltaNet работает последовательно, послойно обновляя внутреннее состояние, и плохо утилизирует матричные вычисления GPU. На коротких дистанциях классический Attention с его эффективным матричным умножением способен загрузить видеокарту почти полностью, тогда как GDN‑слои проигрывают в чистой скорости. В результате TTFT у Qwen3.5 для 4096 токенов составляет 1.86 с против 1.32 с у Llama. На очень длинных контекстах (100K токенов и выше) ситуация меняется: классический KV‑кеш становится тормозом, а Gated DeltaNet продолжает работать с прежней эффективностью.</p><p><b>О качестве и специализации моделей</b></p><p>Каждая из рассмотренных моделей имеет собственную нишу, определяемую не только скоростью, но и метриками качества.</p><p>Llama 3.1 8B — референсная плотная модель. Показывает 69.4% на MMLU и 72.6% на HumanEval. Это проверенный универсал для задач, где важна предсказуемость и стабильность, а не максимальная производительность.</p><p>Nemotron‑Nano‑9B‑v2 позиционируется как математик и кодер. По данным NVIDIA, модель достигает 72.1% на AIME25, 97.8% на MATH500, 64.0% на GPQA Diamond и 71.1% на LiveCodeBench. Эти результаты делают её сильнейшим вариантом для задач, требующих точных вычислений и генерации корректного кода.</p><p>Qwen3.5‑9B является универсальным «эрудитом». Модель превосходит GPT‑OSS‑120B по MMLU‑Pro (82.5%) и GPQA Diamond (81.7%), а также показывает 83.2% на HMMT. Высокое качество на широком спектре тестов позволяет использовать её в сценариях, где важны широкий кругозор и точность ответов.</p><p>Bamba‑9B‑v2 — быстрый универсал, превосходящий Llama 3.1 8B по среднему баллу OpenLLM v2. Она не специализируется на одной задаче, но обеспечивает хорошее качество при заметно более высокой скорости.</p><p><b>Рекомендации</b></p><ul><li>Для чат-ботов и потоковой обработки с высокой пропускной способностью оптимален Nemotron‑Nano‑9B‑v2 — он в полтора раза быстрее Llama и примерно на 30% эффективнее использует память (VRAM/RPS 45.8 против 65.0 ГБ·с).</li><li>Для саммаризации, аналитики документов и агентных систем, где во главе угла широкий кругозор и качество ответа, лучше подходит Qwen3.5‑9B.</li><li>Bamba‑9B‑v2 занимает промежуточную позицию: она даёт заметный прирост скорости при сопоставимом с Llama объёме памяти и может использоваться как универсальный инструмент.</li></ul><p><b>Заключение</b></p><p>Большие языковые модели по‑прежнему требуют значительных вычислительных ресурсов. Однако прогресс в архитектурах — Mamba‑2, Gated DeltaNet — шаг за шагом снижает стоимость владения: на одном H200 теперь можно обслужить заметно больше клиентов, чем год назад. Выбор модели перестаёт быть гаданием по маркетинговым обещаниям и превращается в инженерную задачу с чёткими метриками.</p><p>Автор продолжает калибровку симулятора на реальных замерах и готов делиться обновлёнными данными. Читатели, имеющие опыт промышленного развёртывания этих или аналогичных моделей, приглашаются к обсуждению.</p>]]></content:encoded>
    </item>
    <item>
      <title>Сравниваем офисные редакторы 2026: Яндекс, Р7 и Google</title>
      <link>https://tproger.ru/articles/sravnivaem-ofisnye-redaktory-2026-yandeks-r7-i-google-docs</link>
      <comments>https://tproger.ru/articles/sravnivaem-ofisnye-redaktory-2026-yandeks-r7-i-google-docs?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Валерия Турчак]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/sravnivaem-ofisnye-redaktory-2026-yandeks-r7-i-google-docs</guid>
      <description><![CDATA[<p>Я рассмотрел несколько вариантов редакторов документов — от Яндекс, Р7 и Google — сравнил их по ключевым параметрам, чтобы вы могли выбрать подходящий инструмент, исходя из своих задач и сценариев работы</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/sravnivaem-ofisnye-redaktory-2026-yandeks-r7-i-google-docs">Сравниваем офисные редакторы 2026: Яндекс, Р7 и Google</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Организация разработки]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 28 Apr 2026 09:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Онлайн-редакторами документов сегодня никого не удивишь. Написать текст в браузере, быстро поправить таблицу, открыть доступ коллегам, поработать вместе над одним файлом — всё это давно стало настолько привычным, что отдельным преимуществом уже почти не считается. Скорее, это базовое ожидание от любого офисного сервиса.</p><p>Я рассмотрел несколько вариантов редакторов документов — от Яндекс, Р7 и Google — сравнил их по ключевым параметрам, чтобы вы могли выбрать подходящий инструмент, исходя из своих задач и сценариев работы.</p><h2>Вместо введения: контекст и герои обзора</h2><p>Долгое время в Яндекс 360 для работы с документами использовались редакторы Р7 офис. Они никуда не делись и по-прежнему работают. Не так давно Яндекс начал развивать и собственные редакторы. Осенью 2025 года они вышли из стадии бета-тестирования и медленно стали  обрастать функциями.</p><p>Поскольку познакомиться с ними довольно просто — достаточно переключить соответствующий ползунок в разделе «Документы» в Яндекс 360, — я это и сделал. Заодно стало интересно посмотреть, как новые редакторы Яндекса выглядят на фоне Р7 офис и Google Docs, которые для многих давно стали привычной точкой отсчёта.</p><p>Сразу оговорюсь: редакторы Яндекса сейчас — это средства работы с текстами и таблицами. Редактора презентаций пока нет: если открыть файл *.pptx, система по-прежнему запускает только Р7 офис.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/19d5a1f4-3939-430a-9feb-c0effbdbdcc6.webp" alt="" /></figure><p>Доступны новые редакторы пока только через браузер. О десктопных версиях Яндекс говорил ещё в январе, но на момент тестирования они мне не попадались. Совместная работа есть, одновременное редактирование тоже. Но главная особенность новых редакторов — встроенный ИИ. Сначала он появился только в текстовом редакторе, потом добрался и до табличного.</p><p>Если же говорить о Р7 офис, как о другом участнике этого сравнения, то его логика иная. Это скорее попытка дать пользователю более классический офисный опыт: с широким набором функций, несколькими вариантами использования и более серьёзной совместимостью с привычными офисными форматами (DOCX, XLSX, ODT и пр.). ИИ-ассистент также имеется в текстовом редакторе. Пользоваться Р7 можно в браузере, в виде приложений для Windows и Linux, на мобильных устройствах, а при желании и развернуть у себя на сервере. Функциональность здесь ощутимо шире, чем у новых редакторов Яндекса.</p><p>Google Docs в этой компании — отдельная история. Это уже не просто один из редакторов, а, по сути, давно сложившийся стандарт веб-работы с документами. Именно через него многие привыкли понимать, как вообще должен выглядеть современный браузерный редактор: быстрое совместное редактирование, история изменений, комментарии, предсказуемый интерфейс, знакомая логика действий. Поэтому сравнивать с ним любые новые решения всё равно будут — хотят того разработчики или нет.</p><h2>Простота, минимализм и всё, что из этого следует</h2><p>Первое впечатление от редакторов Яндекса — перед тобой попытка сделать сознательно облегчённый инструмент для работы. Интерфейс предельно лаконичный: строка меню «Файл — Правка — Вставка…», немного иконок под ней, минимум визуального шума. Всё выглядит современно, аккуратно и вполне понятно для человека, который не хочет разбираться в десятках редко используемых функций.</p><p>И в этом, надо признать, есть своя логика. Далеко не всем нужны громоздкие редакторы уровня Word, Excel или тем более полноценного офисного пакета. Очень многим нужен именно лёгкий инструмент: быстро открыть документ, набрать текст, чуть-чуть его оформить, вставить таблицу или картинку, поделиться с коллегой. В эту модель Яндекс, похоже, и целится.</p><p>Но лёгкость — вещь приятная ровно до того момента, пока не начинаешь искать функции, к которым привык.</p><p>Например, меню «Файл» в новых редакторах Яндекса на момент тестирования выглядело очень скромно: фактически там доступны только «Скачать» и «Печать». Документ можно выгрузить в DOCX или XLSX, либо в PDF. И здесь особенно заметно, насколько по-разному устроены конкуренты.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/5b855b5e-4527-47d2-909a-ffcab7f3463b.webp" alt="" /></figure><p>В Р7 офисе список экспортируемых форматов ощутимо шире: можно сохранять в OpenDocument, RTF, EPUB, PDF, JPG и не только.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/c5e17111-0c6d-473f-a051-1e9ca5a8d5dd.webp" alt="" /></figure><p>Google Docs, хотя и хранит документы в собственном формате, тоже позволяет скачать их в DOCX, XLSX, PDF, RTF, EPUB, а в некоторых случаях — и в Markdown.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/8a19084f-6c71-4ac6-b68a-f7ead960caac.webp" alt="" /></figure><h2>Что умеют текстовые редакторы — и чего в них пока нет</h2><p>С текстовым редактором Яндекса история примерно та же. Базовые инструменты форматирования есть: можно выбрать шрифт, выставить выравнивание, интервалы, отступы. Для многих сценариев этого хватит.</p><p>Но, во-первых, даже набор шрифтов пока выглядит скромно. Во-вторых, довольно быстро упираешься в отсутствие вещей, которые в более зрелых редакторах давно воспринимаются как обыденность. Мне, например, не удалось найти вставку формул или уравнений, диаграмм, WordArt и даже более-менее очевидный способ вставить спецсимвол. При этом вставить таблицу, изображение, пустую страницу, ссылку или комментарий — можно.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/d121b5e4-4ba1-477c-8d09-d32cef21f606.webp" alt="" /></figure><p>Так возможности вставки выглядят в Р7 офис: для вставки доступны диаграммы, SmartArt, гиперссылки, таблицы, уравнения, символы, большое количество фигур и многое другое.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/f24f693e-051d-48a9-ac3c-8dfffda95857.webp" alt="" /></figure><p>И в Google Docs:</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/d4ac2833-c62e-44db-894d-7f09a8a8108d.webp" alt="" /></figure><p>То есть для обычного «написать текст и немного его причесать» яндексовский годится уже сейчас. А вот для сценариев, где текстовый документ начинает тянуть на что-то более сложное, ограничений пока многовато.</p><p>Совместное редактирование есть, но и здесь не без нюансов. Когда несколько человек правят документ одновременно, видно, что изменения происходят. Но вот привычного режима рецензирования или хотя бы полноценной записи изменений я не нашёл. А это уже важная история не только для авторов и редакторов, но вообще для любой совместной работы, где потом нужно понять, кто именно и что поменял.</p><p>Не получилось у меня и, например, сделать вёрстку текста в две колонки. Вроде бы мелочь, но именно из таких мелочей и складывается ощущение зрелости редактора.Проверка орфографии «на лету» тоже пока не выглядит сильной стороной. Да, ошибки может исправлять ИИ — либо в выделенном фрагменте, либо во всём тексте. Но тут сразу встаёт другой вопрос: а как потом быстро понять, что именно он исправил? Если документ большой, а режима сравнения правок нет, это превращается в отдельное приключение.</p><p>Есть и совсем бытовые детали, которые внезапно оказываются не такими уж бытовыми. Например, кавычки-ёлочки. В русскоязычной практике это не редкость, особенно если текст хоть сколько-то претендует на аккуратное оформление. Ввести их в редакторе Яндекса можно, но не самым очевидным способом — через Alt-коды. Для пользователя с полноразмерной клавиатурой это ещё терпимо, а вот на ноутбуке без цифрового блока удовольствие уже заметно ниже среднего. Впрочем, справедливости ради, в Google Docs с этим тоже не праздник.</p><h2>Таблицы: базовые и сложные сценарии</h2><p>С табличным редактором у Яндекса та же логика, что и с текстовым. Он явно рассчитан на несложные повседневные сценарии: вбить данные, отсортировать, включить фильтр, сделать простую формулу, что-то быстро поправить в браузере. Для этого он в целом подходит.</p><p>Но как только речь заходит о более серьёзной табличной работе, ограничений оказывается заметно больше. На момент тестирования здесь отсутствовали сводные таблицы в полноценном режиме редактирования, условное форматирование, спарклайны. Диаграммы появились, и это уже хорошо, но некоторые диаграммы, ранее собранные в Excel, отображаются не совсем корректно. И это, к сожалению, касается не только диаграмм.</p><p>Для проверки я открыл старый тестовый XLSX-файл, который когда-то специально собирал как пример таблицы с непростым форматированием. Так его демонстрирует Р7 офис, вполне корректно.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/64cbac54-0368-4ebf-bf3e-ebdcb86d179c.webp" alt="" /></figure><p>Google Docs часть элементов потерял: у объёмной диаграммы исчезли данные, некоторые нестандартные элементы оформления тоже не пережили импорт, местами появились ошибки. Но в целом документ был хотя бы узнаваем.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/7c752fa5-7c29-451c-947c-5916f7da4776.webp" alt="" /></figure><p>Яндексовский редактор отреагировал иначе: показал предупреждение о том, что сводные таблицы пока доступны только в режиме просмотра, и предложил обратиться к владельцу документа или открыть файл в старом редакторе. То есть фактически — в Р7 офис. И это, пожалуй, довольно честный момент.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/e955d94c-1268-4ebe-aada-09a9bde69803.webp" alt="" /></figure><p>После нажатия кнопки “Понятно” редактор визуализирует таблицу следующим образом:</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/cfc18b0e-6dcc-4f31-9afe-b9d0d3a5fa80.webp" alt="" /></figure><p>Однако, как я упоминал раннее, в редакторах Яндекса сохранена возможность переключиться на редакторы Р7 офис. Для этого достаточно зайти в настройки Яндекс 360 и в строке «Перейти на новый редактор» сдвинуть бегунок влево, сделав его серым.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/bab9fe53-36a6-4fc0-b30f-2ebe85f01f47.webp" alt="" /></figure><p>Тогда моя тестовая табличка откроется уже в редакторе Р7 офис в изначально задуманном виде.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/3b1f7df1-fce9-4cf9-b4d1-684989dcaf8e.webp" alt="" /></figure><p>Собственно, в этом и состоит важная разница между редакторами. Р7 офис хорош как инструмент для сложных корпоративных сценариев, но порой за это расплачивается тяжеловесностью. Яндексовский редактор делает ставку на простоту, современный интерфейс и скорость входа, но сложные документы регулярно выбивают его из колеи. Google Docs остаётся где-то посередине: с одной стороны, он веб-ориентированный и понятный, с другой — за годы разработки и эксплуатации он успел обрасти таким количеством функций и сценариев, что давно воспринимается как полноценный рабочий инструмент, и, своего рода, стандарт индустрии для облачных редакторов. Только купить и использовать его в России нельзя.</p><h2>Немного спорта: кто и как ведёт себя на больших файлах</h2><p>Пара слов о скорости работы. Для теста я взял файл с текстом романа «Война и мир» — 1918 страниц. Ничего особенно экзотического в этом документе не было: текст, таблицы, несколько чёрно-белых иллюстраций. Но объём, мягко говоря, не маленький.</p><p>Р7 офис открыл его меньше чем за минуту. Причём навигация по документу становилась доступна довольно быстро — примерно секунд через десять-двенадцать после открытия уже можно было начинать с ним работать, пока оставшаяся часть продолжала подгружаться.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/fc3c810f-355a-4230-bcf7-8bc2c4bd7f35.webp" alt="" /></figure><p>Редакторы Яндекса повели себя иначе. При первом открытии документ довольно долго не показывался вовсе: на экране висела плашка «Загружаем», и только примерно через минуту появилась первая страница. Полностью документ прогрузился где-то за две минуты. При последующих открытиях первая страница появлялась уже почти сразу, видимо, часть данных кэшировалась. Но вот полная загрузка всё равно оставалась примерно той же. И главное — даже после этого навигация по тексту не становилась совсем уж бодрой: при попытке перескочить куда-нибудь вглубь романа редактор нередко задумывался на те же десять-двенадцать секунд.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/188c2e15-3826-4451-be6b-66891dee9e50.webp" alt="" /></figure><p>Google Docs здесь отличился по-своему: файл он просто отказался открывать, честно сообщив, что документ слишком большой. И это, как ни странно, тоже вполне полезный результат теста. Зрелость продукта не всегда означает универсальность на любых экстремальных кейсах.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/b6e6c1a8-6c3a-440a-8483-ccb8f25d3901.webp" alt="" /></figure><h2>Ещё один тест: как редакторы переживают чужую вёрстку</h2><p>Чтобы не ограничиваться только «Войной и миром», я решил проверить и более прикладной сценарий: открыть готовый DOCX со сложным расположением элементов. Для этого взял типовой файл технического задания.</p><p>Результаты получились показательные. Лучше всего с отображением справился Google Docs: документ выглядел близко к тому, как ожидаешь после Word.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/d712fd32-6b8c-408e-8a07-e5ae4f412c82.webp" alt="" /></figure><p>Р7 офис показал все элементы, но порядок местами поплыл: например, часть шапки на первой странице съехала относительно ожидаемой позиции.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/b3597690-8d78-45db-9504-8a855838f54b.webp" alt="" /></figure><p>Яндексовский текстовый редактор на первой странице отобразил уже заметно меньше.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/d94e8c23-1af7-4233-921c-5db98ab3c2b2.webp" alt="" /></figure><p>Это важный момент, потому что он хорошо показывает текущую специализацию продуктов. Когда документ простой и создаётся с нуля прямо в редакторе — всё более-менее хорошо. Когда же в редактор попадает уже готовый файл с чужой сложной вёрсткой, вопрос совместимости начинает играть куда большую роль.</p><h2>И совсем простой табличный тест</h2><p>После больших файлов и непростого форматирования захотелось проверить что-нибудь совсем базовое. Я взял простую таблицу: в одном столбце арифметическая прогрессия, в другом — такая же, но со смещением, а в третьем — обычный ВПР. Ничего героического, один из тех примеров, на которых обычно проверяют самые базовые табличные сценарии.</p><p>Google Docs справился мгновенно. Единственный нюанс — для суммирования диапазон пришлось задать вручную или сначала выделить.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/ebdab528-3d38-4c30-981a-1b8c63c34dd3.webp" alt="" /></figure><p>Р7 офис тоже с задачей справился, но работал заметно степеннее: некоторые действия занимали несколько секунд. Это не катастрофа, но ощущается.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/14c88c74-521b-4847-96e3-eb5d50a6999b.webp" alt="" /></figure><p>Редактор Яндекса тоже сумму в итоге посчитал, хотя сначала озадачил меня другим: по какой-то причине встать на позицию ниже последнего значения в одном из столбцов у меня не получилось, как будто таблица там просто заканчивалась и дальше ничего не существовало.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/1f8cbd39-18bf-4924-84bb-3ce1d6e9a56d.webp" alt="" /></figure><p>В итоге считать пришлось в другом месте. Посчиталось — уже хорошо, но осадок, как говорится, остался.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/cd08ca42-427e-4a30-9c38-6c62a29bdfdb.webp" alt="" /></figure><h2>Что по совместной работе?</h2><p>В Р7 офис доступны режимы комментирования, чтения, редактирования, можно установить пароль и срок действия для внешней ссылки. И есть чат для участников совместного редактирования — чтобы написать коллегам сообщение, даже не нужно выходить из редактора. Такой возможности у редакторов Яндекса, как и у Google, нет.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/6c1c1de2-3bee-42bf-8a00-d682bffd2b89.webp" alt="" /></figure><p>Яндекс позволяет делиться файлами, редактировать их в реальном времени и настраивать права доступа. Пока роли ограничиваются только двумя вариантами — «только просмотр» и «редактирование». Если у вас есть Яндекс 360, доступны будут некоторые дополнительные настройки безопасности — можно установить пароль, срок действия ссылки и запретить скачивание.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/da7ed29a-5994-46c1-9755-c4c18694c9da.webp" alt="" /></figure><p>А такие сценарии доступны в Google Docs, всего три и все по делу:</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-04-27/7f186c76-cd2d-4b86-ae12-aeb551485721.webp" alt="" /></figure><h2>Выводы</h2><p>У всех трёх решений оказались довольно разные роли.</p><p>Google Docs по-прежнему выглядит самым зрелым и предсказуемым веб-редактором из этой троицы. Это тот случай, когда сервис уже давно стал отраслевой нормой: не идеальной во всём, но очень понятной и привычной. Особенно если важна совместная работа, история изменений и в целом проверенный интерфейс.</p><p>Р7 офис — вариант для тех, кому нужен более широкий функционал, больше форматов, более серьёзные сценарии совместной работы и в целом ощущение классического офисного приложения, а не только браузерного редактора. Но вместе с этим приходится принимать и его особенности: более тяжёлый интерфейс и не самую быструю работу в ряде сценариев. C ноября прошлого года здесь уже также доступны ИИ-инструменты, но пока только для работы с текстовыми документами, а именно корректуры текста, выделения ключевых мыслей, перевода на различные языки и т.д. Следует отметить, что сравнение ИИ-ассистентов в отечественных офисных решениях заслуживает отдельного материала, так как сказать там точно будет о чем.</p><p>Новые редакторы Яндекса выглядят как попытка пойти в другую сторону и предложить более понятный инструмент для повседневной работы. И в этом есть своя логика. Однако на текущий момент это всё ещё сырой продукт, который пригодится для самых базовых сценариев: простой текст, лёгкая таблица, быстрый доступ в браузере. Но как только речь заходит о сложном форматировании, тяжёлых файлах, сводных таблицах или о проверке орфографии с историей изменений, редакторы Яндекса начинают откровенно "спотыкаться". И пока одним из главных конкурентных преимуществ служит интеграция Алисы AI: для части пользователей она может оказаться полезнее, чем редкие офисные функции.</p><p>Поэтому ответ на вопрос «что выбрать» здесь не универсальный. Если важны сложные документы, форматы и более богатый офисный функционал — логичнее смотреть в сторону Р7. Если нужны ИИ-инструменты, простота и современный интерфейс — у Яндекса есть вполне понятный сценарий применения.  Если нужен проверенный веб-стандарт совместной работы — редакторы от Google всё ещё остаются ориентиром, хотя, будучи российским пользователем, надеяться на безопасность данных или легально оплачивать их уже не получится.</p>]]></content:encoded>
    </item>
    <item>
      <title>Страница статусов снизила нагрузку на поддержку в три раза. Как мы к этому пришли</title>
      <link>https://tproger.ru/articles/stranica-statusov-snizila-nagruzku-na-podderzhku-v-tri-raza-kak</link>
      <comments>https://tproger.ru/articles/stranica-statusov-snizila-nagruzku-na-podderzhku-v-tri-raza-kak?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Алексей Симоненков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/stranica-statusov-snizila-nagruzku-na-podderzhku-v-tri-raza-kak</guid>
      <description><![CDATA[<p>Разбор кейса: как страница статусов сократила количество тикетов во время инцидентов на 67%. Что пробовали до этого, как устроен нормальный incident workflow и что важно при выборе инструмента для российского рынка.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/stranica-statusov-snizila-nagruzku-na-podderzhku-v-tri-raza-kak">Страница статусов снизила нагрузку на поддержку в три раза. Как мы к этому пришли</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Новости]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Системное администрирование]]></category>
      <category><![CDATA[Высокие нагрузки]]></category>
      <category><![CDATA[Техподдержка]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 28 Apr 2026 06:40:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Несколько лет назад я работал в компании, которая делала платёжный процессинг. Не скажу название - NDA жив до сих пор. Но расскажу про один конкретный вечер в пятницу, который изменил то, как я думаю об инцидентах.</p><p>Около семи вечера начали падать транзакции. Не все - примерно 15%. Команда сразу занялась разбором: логи, метрики, трейсы. Стандартный процесс. Проблему нашли и починили за 40 минут. По меркам платёжки - нормально.</p><p>Но пока мы разбирались, в поддержку пришло 300 тикетов. Три сотни «что происходит», «у нас не проходят платежи», «когда заработает». Саппорт ничего не знал - он ждал, пока инженеры выплывут из логов. Клиенты ждали саппорт. Всё это время тишина с нашей стороны читалась как безразличие.</p><p>Проблему починили за 40 минут. Разгребали тикеты три дня.</p><h2>Почему молчание хуже, чем «мы знаем о проблеме»</h2><p>Есть простая психология: человек переносит неопределённость хуже, чем плохие новости. Если транзакция не прошла и нет никакой информации - клиент начинает строить сценарии. Деньги потерялись. Сервис умер. Нас кинули. Он пишет в поддержку. Потом пишет ещё раз. Потом оставляет отзыв.</p><p>Если транзакция не прошла, но есть страница</p><p>с записью «Повышенное время отклика платёжного шлюза. Investigating. 19:12» - большинство людей закрывают вкладку и ждут. Не все. Но большинство.</p><p>Мы это проверили. После того как поставили нормальную страницу статусов, количество тикетов во время инцидентов упало примерно в три раза. Точнее - на 67% по среднему за квартал. Это не магия, это просто информация в нужный момент.</p><h2>Что мы пробовали до этого</h2><p>Расскажу честно, через что прошли, потому что это типичный путь.</p><p>Шаг первый: Telegram-канал. Завели канал «Статус сервиса». Писали туда когда что-то падало. Работало ровно до тех пор, пока кто-то не забыл написать. А потом написал через два часа когда уже всё починилось. Клиенты не понимали что происходило. Доверие к каналу упало быстро.</p><p>Шаг второй: статус в шапке сайта. Зелёный кружок когда всё хорошо. Ручной - кто-то должен был его менять. Понятно куда это ведёт: кружок всегда зелёный, потому что некогда, потому что забыли, потому что «сейчас разбираемся, потом обновим».</p><p>Шаг третий: Atlassian Statuspage. Это уже нормальный инструмент. Он решил проблему. Но у него есть два неудобства для русскоязычного рынка: оплата в долларах (что в 2022 стало практической проблемой) и серверы за пределами России (что для ряда клиентов принципиально с точки зрения регулирования).</p><h2>Как устроен нормальный incident workflow со страницей статусов</h2><p>Я говорю «нормальный» - имею в виду тот, который не требует героизма от дежурного инженера в 2 ночи.</p><p>Всё начинается с мониторинга. HTTP/TCP-проверки каждую минуту на все критичные эндпоинты: API, веб, база, очереди. Когда что-то падает - автоматическое создание инцидента и уведомление команды. Это не новость, большинство так и делают.</p><p>Новость в том, что параллельно с уведомлением команды - автоматическое обновление публичной страницы статусов. Не «кто-то должен написать туда», а именно автоматически. Клиент видит «Degraded performance» раньше, чем успевает написать в поддержку.</p><p>Дальше инженер работает по стандартному процессу: Investigating - Identified - Monitoring - Resolved. Каждый статус обновляется на странице. Клиенты, подписавшиеся на уведомления, получают апдейты в Telegram или email. Поддержка может в один клик скопировать ссылку на инцидент и отправить клиенту вместо объяснений.</p><p>После разрешения - postmortem прямо на странице. Клиенты видят что случилось, почему и что сделано чтобы не повторилось. Это, как ни странно, повышает доверие сильнее, чем если бы инцидента не было совсем.</p><h2>Что важно при выборе инструмента</h2><p>Несколько технических вещей, на которые стоит обратить внимание.</p><p>Uptime самой страницы статусов. Она должна быть на отдельной инфраструктуре. Если ваш основной сервис упал и страница статусов на той же инфраструктуре - вы получили идеальный шторм: сервис не работает и статус показать невозможно.</p><p>Собственный домен.</p><p>вместо</p><p>. Это доверие и брендинг.</p><p>Telegram-уведомления. Для российской аудитории это важнее email. Люди читают Telegram, а не почту, когда ищут статус сервиса в панике.</p><p>Локализация данных. Если работаете с персональными данными российских пользователей - вопрос где физически хранятся данные о ваших инцидентах становится юридическим, а не техническим.</p><p>Мы в Flaree делаем страницу статусов именно для таких случаев - серверы в России, Telegram из коробки, оплата в рублях. Сейчас открыт ранний доступ, первые 50 команд получают 3 месяца Pro бесплатно: <a href="https://flaree.ru/">flaree.ru</a></p><h2>Что в итоге</h2><p>Страница статусов - это не инструмент для больших команд. Это инструмент для любого сервиса, у которого есть клиенты и бывают инциденты. То есть для всех.</p><p>Настройка занимает 15 минут. Первый же инцидент, который клиенты узнают из статусной страницы раньше, чем напишут в поддержку - окупает это время с запасом.</p><p>P.S. Если у вас уже есть страница статусов - напишите в комментариях какой инструмент используете. Интересно что прижилось у разных команд.</p>]]></content:encoded>
    </item>
    <item>
      <title>Аналоги Jira 2026: лучшие российские альтернативы для управления проектами и задачами</title>
      <link>https://tproger.ru/articles/analogi-jira-2026--luchwie-rossijskie-alternativy-dlya-upravleniya</link>
      <comments>https://tproger.ru/articles/analogi-jira-2026--luchwie-rossijskie-alternativy-dlya-upravleniya?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Артем Герасимов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/analogi-jira-2026--luchwie-rossijskie-alternativy-dlya-upravleniya</guid>
      <description><![CDATA[<p>Чем заменить Jira в России? Сравнение аналогов: SimpleOne, Kaiten, YouGile. Функционал, цены, миграция данных. Пошаговый план по переходу для команд разработки.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/analogi-jira-2026--luchwie-rossijskie-alternativy-dlya-upravleniya">Аналоги Jira 2026: лучшие российские альтернативы для управления проектами и задачами</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 23 Apr 2026 11:51:45 GMT</pubDate>
      <content:encoded><![CDATA[<p>Вопрос о том, чем заменить Jira, остается одним из самых острых для российского ИТ-менеджмента. Для многих компаний перенос процессов из привычного австралийского трекера долгое время казался задачей, сопоставимой с остановкой непрерывного производства: риски высоки, а равноценную замену найти сложно. Бизнес привык к гибким JQL-запросам, сложным маршрутам согласований (workflow), десяткам установленных плагинов и тесной интеграции с Confluence и Bitbucket.</p><p>Но реальность 2026 года диктует свои условия. Использовать Jira через серые схемы оплаты, без официальной поддержки и с риском блокировки облака — это игра в русскую рулетку, в которую крупный бизнес играть не готов.</p><p>Хорошая новость заключается в том, что российский рынок систем управления разработкой совершил качественный скачок. Если несколько лет назад российский аналог Jira часто представлял собой базовую канбан-доску, то сегодня заказчикам доступны зрелые платформы. Современные решения способны справляться с Enterprise-нагрузками, поддерживать масштабируемые фреймворки (такие как SAFe или LeSS) и оркестрировать сложные процессы CI/CD.</p><p>В этой статье мы проведем объективный обзор топовых аналогов Jira, представленных на российском рынке. Мы сравним их функциональные возможности, удобство миграции, ценовую политику и поможем определить, какая замена Jira оптимально подойдет под задачи вашей команды</p><h2>Почему команды ищут замену Jira в 2026 году</h2><p>Помимо очевидных ограничений, связанных с доступом к сервисам Atlassian из России, существуют и глубокие архитектурные причины, побуждающие ИТ-директоров рассматривать альтернативные решения:</p><ol><li>Перегруженность системы. Инструмент, созданный 20 лет назад как баг-трекер, оброс таким количеством плагинов и настроек, что для управления им нужен отдельный штат администраторов.</li><li>Зависимость от плагинов (Франкенштейн-архитектура).  Чтобы настроить нормальный учет времени (Tempo), диаграммы Ганта (Structure) или управление тестовыми сценариями (Zephyr), нужны сторонние плагины. Они стоят денег, часто конфликтуют друг с другом после обновлений и не всегда дружат между собой.</li><li>Слабый фокус на продуктовый подход. В Jira вы живете в парадигме «Проектов». Если над одним большим продуктом работает 10 команд, вам придется городить сложную иерархию проектов и эпиков, чтобы просто понять, кто что делает.</li><li>Требования информационной безопасности. Для государственного сектора, финансовой отрасли и промышленных предприятий критически важно размещать данные внутри собственного защищенного контура (On-premise) и использовать программное обеспечение из Реестра отечественного ПО.</li></ol><p>Таким образом, альтернативы Jira сегодня выбирают не только из соображений импортонезависимости, но и ради получения более современного пользовательского опыта (UX), монолитной архитектуры без избытка плагинов и наличия необходимого функционала «из коробки».</p><h2>Топ-10 аналогов Jira для российского рынка</h2><p>Рассмотрим десять наиболее заметных решений на рынке, чтобы понять их позиционирование и целевую аудиторию.</p><h2>1. SimpleOne SDLC</h2><p><a href="https://simpleone.ru/sdlc?utm_source=jira_analogue_tproger_18_03" rel="nofollow">SimpleOne SDLC</a> — это аналог Jira для команд разработки. Комплексная Enterprise-платформа для управления всем жизненным циклом разработки ПО (Software Development Life Cycle), а не просто трекер задач. Решение изначально спроектировано под потребности крупного бизнеса и продуктовой разработки. В основе архитектуры платформы лежит «Продукт», что позволяет эффективно выстраивать работу множества команд.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-03-18/0e23acc7-d8d6-4fe3-ad71-add8ab74c898.webp" alt="" /><figcaption>Интерфейс SimpleOne SDLC</figcaption></figure><p><b>Для кого: </b>средний и крупный бизнес, корпорации, банки, финтех, а также компании, внедряющие масштабируемые Agile-фреймворки (например, SAFe).</p><h3>Соответствие Jira</h3><ul><li>Полная поддержка продуктовой иерархии: Портфель -&gt; Продукт -&gt; Модуль -&gt; Эпик -&gt; Фича -&gt; История -&gt; Дефект/Задача;</li><li>Нативные Agile-инструменты (Scrum, Kanban), управление спринтами и бэклогом;</li><li>Возможность настройки сложных рабочих процессов (workflow) визуальными средствами;</li><li>Наличие встроенного функционала, который в Jira требует плагинов: учет трудозатрат, ресурсное планирование, готовые дашборды (Burndown, CFD, Velocity).</li></ul><h3>Миграция из Jira</h3><p>Отработанный процесс автоматизированного переноса данных. Мигрируют пользователи, статусы, проекты, задачи с сохранением истории изменений, комментарии и вложенные файлы. Возможна бесшовная миграция с Jira на On-premise серверы заказчика.</p><h3>Плюсы</h3><ul><li>Low-code платформа: в отличие от жесткой архитектуры классических трекеров, в SimpleOne бизнес-аналитики могут изменять логику, формы и интерфейсы с помощью визуальных конструкторов;</li><li>Глубокая интеграция с ITSM: процессы разработки и технической поддержки (Service Desk) функционируют в единой среде. Инцидент, зарегистрированный в поддержке, конвертируется в задачу для разработчиков в один клик;</li><li>Продуктовый подход: структура платформы оптимальна для управления сложными продуктами, над которыми работают десятки кросс-функциональных команд;</li><li>Соответствие требованиям РФ: включено в реестр отечественного ПО.</li></ul><h3>Минусы</h3><ul><li>Избыточный функционал и высокий порог входа для небольших стартапов (до 15 человек);</li><li>Для получения максимальной отдачи от системы требуется определенный уровень зрелости процессов разработки в компании.</li></ul><h3>Тарифы</h3><p>Стоимость рассчитывается индивидуально в зависимости от масштаба внедрения (Enterprise-модель лицензирования, On-premise или SaaS).</p><h2>2. Kaiten</h2><p>Один из ведущих российских визуальных трекеров задач. <a href="https://kaiten.ru">Kaiten</a> делает ставку на обеспечение максимальной прозрачности процессов с помощью продвинутых Канбан-досок и системы рабочих пространств.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-03-18/d8257bc5-41ab-41f9-b31b-3afea2f7ebff.webp" alt="" /><figcaption>Интерфейс Kaiten</figcaption></figure><p><b>Для кого: </b>Agile-команды, продуктовые студии, ИТ-компании среднего размера, маркетинговые подразделения.</p><h3>Соответствие Jira</h3><ul><li>Полноценная поддержка Scrum (спринты, бэклог, оценка в Story Points) и Kanban (WIP-лимиты, классы обслуживания);</li><li>Иерархия задач реализуется через гибкие связи между карточками (эпики, истории);</li><li>Встроенный модуль работы с документами (альтернатива Confluence).</li></ul><h3>Миграция из Jira</h3><p>Реализован автоматизированный импорт данных из Jira, включая задачи, комментарии и структуру досок.</p><h3>Плюсы</h3><ul><li>Уникальная система пространств: на один экран можно вывести доски нескольких смежных команд, что идеально для выявления узких мест в общем потоке создания ценности;</li><li>Современный UX/UI: интуитивно понятный и «легкий» интерфейс, в котором приятно работать;</li><li>Быстрый старт: минимальное время на обучение сотрудников, команда может начать работу в первый же день;</li><li>Импортонезависимость: система включена в реестр ПО РФ.</li></ul><h3>Минусы</h3><ul><li>Ограниченные возможности для построения сложной, нестандартной бизнес-логики (workflow) по сравнению с Enterprise-платформами;</li><li>Отсутствие глубокого функционала для финансового и ресурсного управления сложными портфелями проектов.</li></ul><h3>Тарифы</h3><p>От 185 руб./пользователь/мес (до 15 пользователей). Тариф стандарт (до 250 пользователей) — 430 руб./пользователь/мес. Доступен бесплатный тариф с базовыми функциями и On-premise версия для корпоративных заказчиков.</p><h2>3. YouGile</h2><p>YouGile — это инновационный гибрид классического таск-трекера и корпоративного мессенджера. Философия системы строится на том, что все рабочие коммуникации должны происходить строго в контексте конкретной задачи.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-03-18/ce17bd4d-ee5d-42c3-9c60-4ec49a24a141.webp" alt="" /><figcaption>Интерфейс YouGile</figcaption></figure><p><b>Для кого: </b>небольшие и средние ИТ-команды, digital-агентства, студии веб-разработки, где критически важна скорость коммуникации.</p><h3>Соответствие Jira</h3><ul><li>Базовый функционал представлен Agile-досками (колонки и стикеры);</li><li>Присутствуют инструменты учета времени, контроля дедлайнов и базовой отчетности;</li><li>Отсутствует строгая иерархия эпиков и продвинутое управление спринтами «из коробки» (реализуется преимущественно через систему тегов).</li></ul><h3>Миграция из Jira</h3><p>Доступен базовый импорт (задачи, исполнители), однако перенос сложной структуры и кастомных полей потребует ручной настройки.</p><p>Плюсы:</p><ul><li>Контекстное общение: полноценный чат внутри каждой задачи — эффективное решение проблемы потери информации в разрозненных мессенджерах;</li><li>Максимальная простота: интерфейс не перегружен лишними функциями, что способствует быстрому внедрению;</li><li>Бесплатный старт: полноценное бесплатное использование для микро-команд численностью до 10 человек.</li></ul><h3>Минусы</h3><ul><li>Не подходит для управления сложной продуктовой разработкой (отсутствуют модули управления релизами, CI/CD интеграции, учет технического долга);</li><li>Слабые возможности для автоматизации бизнес-процессов.</li></ul><h3>Тарифы</h3><p>Облачная версия — бесплатно до 10 пользователей, далее от 594 руб./мес за пользователя. Доступна коробочная версия (On-premise).</p><h2>4. ПланФикс</h2><p>Гибкая платформа-конструктор для настройки рабочих процессов. ПланФикс позволяет бизнес-пользователям самостоятельно смоделировать необходимую среду: от простой CRM до аналога сложного ИТ-трекера.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-03-18/367ec142-bcae-4eb4-b19e-6b8f9cee8944.webp" alt="" /><figcaption>Интерфейс ПланФикс</figcaption></figure><p>Для кого: команды и компании любого масштаба, располагающие ресурсами бизнес-аналитиков, готовых инвестировать время в детальную настройку системы под уникальные процессы.</p><h3>Соответствие Jira</h3><ul><li>Изначально система не специализируется на разработке ПО, но ее гибкость позволяет настроить Scrum-доски, спринты и бэклоги;</li><li>Поддержка любых кастомных полей, статусов и сложных сценариев автоматизации;</li><li>Наличие учета времени и диаграмм Ганта.</li></ul><h3>Миграция из Jira</h3><p>Реализуется через импорт CSV-файлов или настройку интеграции через открытый API. Готового автоматизированного коннектора для миграции не предусмотрено.</p><h3>Плюсы</h3><ul><li>Исключительная гибкость: платформа-конструктор позволяет настроить автоматизацию любой сложности без использования программного кода;</li><li>Единое цифровое пространство: возможность органично объединить управление разработкой, CRM и Service Desk в одном интерфейсе;</li><li>Экономичность: конкурентоспособная и прозрачная ценовая политика.</li></ul><h3>Минусы</h3><ul><li>Высокий порог входа: система представляет собой «чистый лист», требующий вдумчивого проектирования и длительной настройки;</li><li>Интерфейс может восприниматься как перегруженный;</li><li>Отсутствие готовых нативных интеграций с репозиториями кода (требуется настройка через webhook).</li></ul><h3>Тарифы</h3><p>Поставляется по модели SaaS. Стоимость от 366 руб./пользователь/мес (при годовой оплате). Доступна бесплатная версия для микро-команд (до 5 человек).</p><h2>5. TeamStorm</h2><p><a href="https://teamstorm.io">TeamStorm</a> — это российская система управления разработкой, позиционируемая как наиболее близкая по логике работы и интерфейсу замена Jira.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-03-18/bc47a142-6dbc-496d-80d0-4fd8917561ed.webp" alt="" /><figcaption>Интерфейс TeamStorm</figcaption></figure><p><b>Для кого:</b> ИТ-подразделения и команды разработки, ищущие прямую альтернативу продуктам Atlassian с минимальным периодом адаптации сотрудников.</p><h3>Соответствие Jira</h3><ul><li>Поддержка классической иерархии: Эпик, История, Задача, Дефект, Подзадача;</li><li>Организация рабочего пространства через «Пространства» и «Папки»;</li><li>Управление спринтами, бэклогами, поддержка оценки задач в Story Points;</li><li>Встроенный модуль базы знаний (аналог Confluence).</li></ul><h3>Миграция из Jira</h3><p>Вендор предоставляет специализированные инструменты для бесшовного переноса данных из Jira.</p><h3>Плюсы</h3><ul><li>Привычный пользовательский опыт (UX): интерфейс и логика работы максимально приближены к связке Jira + Notion, что снижает затраты на переобучение ИТ-команд;</li><li>Производительность: высокая скорость отклика интерфейса даже при работе с большими массивами данных;</li><li>Безопасность: наличие в реестре отечественного ПО и возможность установки в закрытый контур.</li></ul><h3>Минусы</h3><ul><li>Экосистема готовых интеграций со сторонними DevOps-сервисами пока уступает зарубежным аналогам;</li><li>Ограниченный функционал для управления портфелями проектов на уровне Enterprise.</li></ul><h3>Тарифы</h3><p>Облачная (SaaS) и On-premise версии. Стоимость от 500 руб./пользователь/мес.</p><h2>6. Comindware</h2><p>Comindware — это платформа для управления бизнес-процессами (BPMS) на базе Low-code архитектуры. Предназначена для комплексной цифровой трансформации крупных предприятий.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-03-18/c39bd43a-de11-4a24-adaa-496a64680cc7.webp" alt="" /><figcaption>Интерфейс Comindware</figcaption></figure><p><b>Для кого:</b> средний и крупный бизнес (Enterprise), где процессы разработки ПО необходимо интегрировать с другими сложными корпоративными процедурами (закупки, документооборот, согласования).</p><h3>Соответствие Jira</h3><ul><li>Возможность настройки трекинга задач любой степени сложности;</li><li>Гибкое управление маршрутами (workflow) и использование графовой базы данных для построения сложных связей между объектами;</li><li>Управление неструктурированными процессами (Case Management).</li></ul><h3>Миграция из Jira</h3><p>Осуществляется через API или путем импорта/экспорта данных в рамках комплексного проекта внедрения.</p><h3>Плюсы</h3><ul><li>Максимальная адаптивность (Low-code): бизнес-процессы можно модифицировать и перестраивать прямо «на лету» без остановки работы системы и кодинга;</li><li>Масштаб автоматизации: возможность построения единой платформы для оцифровки процессов всей компании, а не только ИТ-отдела;</li><li>Корпоративная безопасность: полноценное развертывание на серверах заказчика (On-premise).</li></ul><h3>Минусы</h3><ul><li>Не является специализированным трекером для ИТ-команд (отсутствуют нативные интеграции с CI/CD);</li><li>Интерфейс требует адаптации пользователей;</li><li>Внедрение представляет собой масштабный ИТ-проект, требующий участия квалифицированных аналитиков.</li></ul><h3>Тарифы</h3><p>Лицензирование по количеству пользователей, расчет стоимости владения (TCO) предоставляется по запросу.</p><h2>7. Битрикс24 (Scrum/Задачи)</h2><p>Битрикс 24 — это популярный корпоративный портал, объединяющий инструменты коммуникации, CRM и модуль управления задачами с поддержкой методологии Scrum.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-03-18/e26d5e58-d78b-4969-8d10-65e27d2d2fce.webp" alt="" /><figcaption>Интерфейс Битрикс24</figcaption></figure><p><b>Для кого:</b> малый и средний бизнес, а также ИТ-подразделения внутри не-ИТ компаний, где приоритетом является работа в единой среде с отделами продаж и маркетинга.</p><h3>Соответствие Jira</h3><ul><li>Наличие инструмента «Скрам»: бэклог, управление спринтами, оценка в Story Points, эпики, диаграмма сгорания задач;</li><li>Поддержка Канбан-досок, диаграмм Ганта, учета времени;</li><li>Инструменты автоматизации (роботы) для изменения статусов задач.</li></ul><h3>Миграция из Jira</h3><p>Реализуется с помощью специализированных приложений из встроенного маркетплейса.</p><h3>Плюсы</h3><ul><li>Комплексный подход (Всё-в-одном): чаты, видеозвонки, задачи, документы, календарь и CRM доступны в едином, привычном интерфейсе;</li><li>Доступность и поддержка: систему можно развернуть за один день, а на рынке присутствует широкая сеть партнеров-интеграторов для любой доработки;</li><li>Гибкое ценообразование: оптимальное соотношение цены и функциональности, особенно для небольших команд.</li></ul><h3>Минусы</h3><ul><li>Модуль Scrum не обладает достаточной глубиной для сложной Enterprise-разработки (управление релизами, техническим долгом, глубокая интеграция с репозиториями);</li><li>Многообразие не-ИТ функций портала может перегружать интерфейс для профильных разработчиков.</li></ul><h3>Тарифы</h3><p>Гибкая линейка: от бесплатных облачных тарифов до коробочных версий (On-premise) для корпоративного сектора. Стандартный облачный тариф (до 50 пользователей) — 4893 руб./мес за всех пользователей.</p><h2>8. WEEEK</h2><p>WEEEK — это современная мультисервисная платформа для командной работы. Сочетает в себе функционал таск-трекера, базы знаний и CRM-системы.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-03-18/602948d4-b4c3-4e81-ac1c-92787a83caec.webp" alt="" /><figcaption>Интерфейс WEEEK</figcaption></figure><p><b>Для кого: </b>продуктовые команды, стартапы, маркетинговые агентства, отдающие предпочтение современному дизайну и удобству использования (в стиле Notion).</p><h3>Соответствие Jira</h3><ul><li>Управление задачами в форматах списков, Канбан-досок и календаря;</li><li>Встроенная база знаний для ведения документации;</li><li>Отсутствует поддержка сложных JQL-запросов и многоуровневых кастомных workflow.</li></ul><h3>Миграция из Jira</h3><p>Возможна загрузка данных через файлы, однако готового коннектора для автоматического переноса всех связей между задачами нет.</p><h3>Плюсы</h3><ul><li>Эстетика и современный UX/UI: продуманный дизайн, в котором командам действительно приятно и комфортно работать ежедневно;</li><li>Универсальность: платформа успешно заменяет сразу несколько узкоспециализированных сервисов (например, связку Trello + Notion + простую CRM);</li><li>Доступность: наличие полнофункционального бесплатного тарифа для микро-команд.</li></ul><h3>Минусы</h3><ul><li>Не ориентирован на сложную инженерную разработку (отсутствуют глубокие аналитические отчеты по релизам и интеграции с Git);</li><li>Функционал находится в стадии активного развития.</li></ul><h3>Тарифы</h3><p>Облачная версия от 199 ₽/мес за пользователя. Доступна бесплатная версия для команд до 5 человек.</p><h2>9. Directum Projects</h2><p>Directum Projects — это корпоративная система управления проектами, исторически развившаяся из мощной платформы электронного документооборота (СЭД).</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-03-18/7c1db84f-9761-4f0c-8bfa-9a083d0dd23c.webp" alt="" /><figcaption>Интерфейс Directum Projects</figcaption></figure><p><b>Для кого: </b>крупный бизнес, государственный сектор и промышленные предприятия, где проектное управление тесно связано с формализованным документооборотом и строгими регламентами.</p><h3>Соответствие Jira</h3><ul><li>Поддерживает визуализацию на Agile-досках (Scrum/Kanban);</li><li>Основной упор сделан на классическое каскадное управление (Waterfall), мощные диаграммы Ганта, ресурсное планирование и работу с проектной документацией.</li></ul><h3>Миграция из Jira</h3><p>Выполняется проектной командой в рамках внедрения системы.</p><h3>Плюсы</h3><ul><li>Синергия с документооборотом: глубокая, нативная интеграция с системами электронного документооборота (СЭД Directum);</li><li>Управление по PMBOK: профессиональный инструмент для проектных офисов (PMO), обеспечивающий контроль сроков, вех и бюджетов.</li></ul><h3>Минусы</h3><ul><li>«Корпоративный» интерфейс может потребовать адаптации со стороны Agile-команд разработчиков;</li><li>Система менее сфокусирована на специфике гибкой продуктовой разработки ПО.</li></ul><h3>Тарифы</h3><p>Преимущественно On-premise поставки. Корпоративное лицензирование (ориентировочно от 7400 ₽ за пользователя в год).</p><h2>10. Мегаплан</h2><p>Мегаплан — это широко известная на российском рынке CRM-система, оснащенная развитым модулем управления задачами и поручениями.</p><p>Для кого: малый и средний бизнес, ищущий надежную систему для контроля исполнительской дисциплины и ведения клиентской базы в едином контуре.</p><h3>Соответствие Jira</h3><ul><li>Иерархия: задачи, подзадачи, чек-листы;</li><li>Диаграммы Ганта для визуального планирования сроков;</li><li>Инструменты учета рабочего времени и планирования загрузки сотрудников;</li><li>Отсутствует специализированный ИТ-инструментарий (спринты, эпики, интеграции с репозиториями кода).</li></ul><h3>Миграция из Jira</h3><p>Доступен базовый перенос данных через экспорт/импорт CSV-файлов.</p><h3>Плюсы</h3><ul><li>Стабильность и простота: легкость внедрения, простота освоения пользователями и высокая стабильность работы;</li><li>Связка процессов: возможность в одном окне интегрировать процессное управление с продажами (CRM) и финансами;</li><li>Мобильность: качественное и полнофункциональное мобильное приложение.</li></ul><h3>Минусы</h3><ul><li>Не является профильным инструментом для разработчиков ПО; не подходит в качестве полноценной замены Jira для ИТ-подразделений;</li><li>Сложности при масштабировании на крупные кросс-функциональные ИТ-проекты.</li></ul><h3>Тарифы</h3><p>Доступны облачная (SaaS) и коробочная версии. Базовый тариф — 315 руб./мес за пользователя при покупке на год. Расширенный тариф (с бо́льшим функционалом) — 630 руб./мес за пользователя.</p><h2>Сравнительная таблица: Jira vs российские аналоги</h2><p>Мы свели ключевые функции для ИТ-разработки в единую таблицу. Вместо простых галочек «есть/нет», мы описали уровень реализации каждой функции, чтобы вы могли наглядно оценить, какие аналоги Jira лучше всего закроют ваши потребности.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-03-18/06395971-2cfe-49d8-bdb1-0639428cecd0.webp" alt="" /></figure><p>Таблица наглядно демонстрирует: для гибких Agile-команд отлично подходят легкие решения вроде Kaiten, но если вам нужна полноценная замена Jira для Enterprise-разработки с жесткими воркфлоу, глубокой интеграцией с кодом и продуктовой иерархией, ближе всего к оригиналу стоят специализированные системы — SimpleOne SDLC и TeamStorm.</p><h2>Балльная оценка готовности систем заменить Jira (для ИТ-разработки)</h2><p>Чтобы дать вам быстрый срез, мы оценили системы по 10-балльной шкале именно в контексте разработки программного обеспечения и близости к методологии Jira.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-03-18/86a27ae2-f2e0-4b2e-af30-710f62958dcb.webp" alt="" /></figure><p>Примечание: Низкий балл не означает, что система плохая. Он лишь показывает, что решение (например, YouGile, WEEEK или Мегаплан) сфокусировано на других задачах (коммуникация, продажи, универсальный трекинг) и не является прямым аналогом Jira для хардкорной инженерной разработки и управления релизами.</p><h2>Критерии выбора аналога Jira в 2026 году</h2><p>Выбор системы трекинга задач — стратегическое решение. Ошибка на этом этапе приведет к необходимости перестраивать процессы управления в будущем. При оценке решений рекомендуем обращать внимание на следующие аспекты:</p><ol><li>Масштаб и поддерживаемая методология. Для небольших команд (до 10-15 человек), работающих над внутренними проектами, оптимально подойдут легкие решения вроде Kaiten или YouGile. Для крупных ИТ-департаментов (от 100 разработчиков), создающих сложные продукты и применяющих фреймворки масштабирования (SAFe), необходимы платформы Enterprise-уровня (например, SimpleOne SDLC), поддерживающие сложную продуктовую иерархию «из коробки».</li><li>Глубина кастомизации процессов. Если ваши процессы требуют сложной логики переходов статусов (например, задача переходит в тестирование только после согласования техлидом и заполнения обязательных полей), выбирайте платформы на базе Low-code, позволяющие настраивать workflow без программирования.</li><li>Интеграция с процессом разработки. Полноценный аналог Jira должен бесшовно интегрироваться с вашими репозиториями (GitLab, GitHub). Автоматическая смена статусов задач на основе коммитов существенно повышает прозрачность разработки.</li><li>Безопасность и варианты развертывания. Для компаний финансового сектора и организаций с государственным участием обязательным требованием является наличие On-premise версии и включение продукта в Реестр отечественного ПО.</li></ol><h2>Как мигрировать с Jira на российский аналог: пошаговый план</h2><p>Процесс миграции с Jira требует тщательного планирования. Рекомендуем придерживаться следующего алгоритма:</p><p>Шаг 1: Аудит текущей конфигурации Jira.</p><p>Проанализируйте используемый функционал. Выявите устаревшие кастомные поля, неиспользуемые статусы и отключенные плагины, чтобы не переносить накопленный «технический мусор» в новую систему.</p><p>Шаг 2: Маппинг сущностей.</p><p>Составьте таблицу соответствия терминологии. Например, тип задачи Issue Type «Bug» в Jira должен соответствовать типу «Дефект» в новой системе.</p><p>Шаг 3: Тестовый перенос (Пилотный запуск).</p><p>Выберите один репрезентативный проект и осуществите его перенос в новую систему (используя встроенные инструменты импорта или API). Проверьте корректность переноса вложений, комментариев, авторов задач и связей между ними (например, blocks/depends on).</p><p>Шаг 4: Настройка ролей и бизнес-логики.</p><p>Воспроизведите утвержденные маршруты движения задач (workflow) и настройте ролевую модель доступа в выбранной платформе.</p><p>Шаг 5: Обучение проектных команд.</p><p>Проведите установочные сессии для разработчиков и менеджеров продуктов, продемонстрировав принципы работы с бэклогом и создания дефектов в новом интерфейсе. Подготовьте краткие памятки (Cheatsheets).</p><p>Шаг 6: Финальная миграция и заморозка Jira.</p><p>Переведите Jira в режим «только чтение» (Read-only) перед выходными. За выходные выгрузите «дельту» (изменения, произошедшие с момента тестового переноса) и импортируйте ее в новую систему. В понедельник утром команда начинает работать в новом трекере.</p><h2>Чек-лист: 10 вопросов перед заменой Jira</h2><p>Перед тем как подписать договор с новым вендором, задайте эти вопросы себе и интегратору:</p><ol><li>Какие функции и плагины Jira мы используем реально, а какие были установлены «на всякий случай»?</li><li>Обладает ли предлагаемый аналог готовым инструментом (скриптом или коннектором) для импорта данных из Jira (пользователи, история статусов, вложения)?</li><li>Насколько прозрачна модель ценообразования: оплата взимается за пользователей, проекты или отдельные модули? Предусмотрены ли скрытые платежи?</li><li>Способна ли новая система обрабатывать наши объемы данных (десятки тысяч задач) без деградации производительности?</li><li>Включает ли стоимость лицензии базовую техническую поддержку и помощь в процессе миграции?</li><li>Сможем ли мы беспрепятственно экспортировать свои данные (например, в форматах CSV/JSON) при необходимости смены системы в будущем?</li><li>Имеет ли вендор подтвержденные кейсы миграции с Jira в компаниях сопоставимого с нами масштаба?</li><li>Поддерживает ли система «из коробки» нативные интеграции с нашим ИТ-стеком (Git, системы CI/CD, корпоративные мессенджеры)?</li><li>Соответствует ли архитектура решения требованиям безопасности (ФЗ-152, Реестр Минцифры, возможность On-premise)?</li><li>Каков реалистичный срок внедрения системы «под ключ» для команды нашего размера?</li></ol><h2>Заключение</h2><p>Поиск ответа на вопрос «чем заменить Jira» в 2026 году — это не проблема дефицита, это проблема выбора. Российский рынок предлагает отличные альтернативы, которые давно переросли стадию «импортозамещения ради галочки».</p><p>Если вам нужен просто наглядный и быстрый инструмент для Agile-команды, смело смотрите в сторону Kaiten. Если ваша разработка тесно завязана на другие бизнес-процессы компании — вам помогут ПланФикс или ELMA365.</p><p>Но если вы крупная продуктовая компания, где сотни разработчиков пишут код, а ИТ-директору нужна прозрачная связь между техдолгом, релизами и инцидентами из техподдержки — вам нужны Enterprise-решения. Платформы вроде SimpleOne SDLC предлагают не просто трекер, а архитектуру, изначально заточенную под масштаб, продуктовый подход и гибкость Low-code настройки, что делает их, пожалуй, наиболее полноценной заменой Jira для серьезного бизнеса на сегодняшний день.</p><h2>FAQ</h2><h4>Какие российские аналоги полностью заменяют Jira?</h4><p>Полностью (со всеми тысячами плагинов) скопировать Jira невозможно и не нужно. Но по покрытию базового и продвинутого функционала для разработки (Scrum, Kanban, бэклог, релизы, Git) лучшими российскими аналогами Jira считаются SimpleOne SDLC, TeamStorm и Kaiten.</p><h4>Сложно ли перенести данные из Jira в российский аналог?</h4><p>Большинство зрелых российских трекеров уже разработали встроенные утилиты или API-скрипты для миграции. Перенос базовых задач (названия, описания, статусы) обычно проходит гладко. Сложности могут возникнуть при миграции специфических кастомных полей, скриптов автоматизации (ScriptRunner) и данных из редких плагинов.</p><h4>Сколько стоит переход с Jira на российский аналог?</h4><p>Совокупная стоимость складывается из двух составляющих: стоимости лицензий на новое ПО (от 400-500 руб/мес за пользователя в облачных версиях до миллионов рублей за Enterprise On-premise решения) и стоимости самого проекта миграции (услуги бизнес-аналитиков и системных интеграторов по настройке процессов и переносу данных).</p><h4>Какой аналог Jira лучше для скрам-команд?</h4><p>Для небольших скрам-команд (до 30 человек), которым нужна максимальная визуализация досок и быстрый старт, отлично подойдет Kaiten или YouGile. Для крупных кросс-функциональных скрам-команд в Enterprise-сегменте, работающих над сложными продуктами (например, по SAFe), более мощной альтернативой станет SimpleOne SDLC, так как он поддерживает сложную продуктовую иерархию и связку с ITSM.</p><h4>Сколько времени занимает миграция с Jira на российский аналог?</h4><p>Для небольшой команды (до 50 человек) с простыми процессами переезд можно осуществить за 1-2 недели. Для корпорации (500+ пользователей), где нужно перенести сложные воркфлоу, обучить сотрудников и провести интеграции с внутренними системами, проект миграции может занять от 2 до 6 месяцев.</p><h4>Есть ли альтернативы Jira с хорошими AI-функциями?</h4><p>Да, российские вендоры активно внедряют ИИ. Искусственный интеллект в современных аналогах (например, на платформе SimpleOne) умеет классифицировать новые задачи, подсказывать операторам решения на основе базы знаний (RAG) и помогать в создании кратких резюме по длинным обсуждениям в тикетах.</p><p>Реклама. Рекламодатель: ООО «СИМПЛ 1», ИНН 9725013892, erid: 2W5zFFxmVEH</p>]]></content:encoded>
    </item>
    <item>
      <title>Собери свой стек — узнай стажировку</title>
      <link>https://tproger.ru/quiz/soberi-svoj-stek-uznaj-stazhirovku</link>
      <comments>https://tproger.ru/quiz/soberi-svoj-stek-uznaj-stazhirovku?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дима Дмитриев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/quiz/soberi-svoj-stek-uznaj-stazhirovku</guid>
      <description><![CDATA[<p>Пройди квиз и выбери направление стажировки в IT: тестирование, разработка, администрирование или железо. 7 вопросов — понятный результат.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/quiz/soberi-svoj-stek-uznaj-stazhirovku">Собери свой стек — узнай стажировку</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Стажировка]]></category>
      <category><![CDATA[Викторины]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 16 Apr 2026 07:03:51 GMT</pubDate>
    </item>
    <item>
      <title>Цена 10x продуктивности: как ИИ физически ломает сеньоров</title>
      <link>https://tproger.ru/articles/cena-10-produktivnosti-kak-ii-fizicheski-lomaet-senorov</link>
      <comments>https://tproger.ru/articles/cena-10-produktivnosti-kak-ii-fizicheski-lomaet-senorov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/cena-10-produktivnosti-kak-ii-fizicheski-lomaet-senorov</guid>
      <description><![CDATA[<p>ИИ увеличил очередь PR на ревью на 98%, а мозг сеньора обрабатывает мысль на 10 бит/с. 88% burnout у самых продуктивных. Что делать сеньорам и командам.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/cena-10-produktivnosti-kak-ii-fizicheski-lomaet-senorov">Цена 10x продуктивности: как ИИ физически ломает сеньоров</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 14 Apr 2026 16:45:05 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вы сеньор, который в последний год ловил себя на том, что к 18:00 мозг физически пустой и вы не помните, что хотели сделать через секунду после того как встали из-за стола, — это не возраст и не выгорание от «обычного» объёма работы. Денис Стецков в блоге <a href="https://techtrenches.dev/p/the-human-cost-of-10x-how-ai-is-physically">From the Trenches</a> собрал исследования за последние 18 месяцев и показал, что происходит с сеньорами под ИИ-потоком: ИИ-ускоритель вдвое увеличил количество PR на проверку, но осознанное внимание человека по-прежнему работает на скорости ~10 бит/с. Разбираем, что именно в этой математике не сходится и почему сильнее всех достаётся как раз сеньорам.</p><p><b>77% сотрудников, использующих ИИ, говорят: работы стало больше, а не меньше</b>. 71% — выгорание. Upwork Research Institute.</p><p><b>88% burnout rate у «самых продуктивных» ИИ-юзеров</b>. Они в 2 раза чаще увольняются. Те, кто лучше всех выглядит на дашборде, — ближе всех к двери.</p><p><b>Осознанная аналитическая мысль работает на ~10 бит/с</b> (Zheng &amp; Meister, Neuron 2025). ИИ увеличил очередь на ревью на 98%. Биологический потолок никуда не делся.</p><p><b>Только 22% сеньоров уверены в ИИ-коде, который выкатывают</b> (Qodo). 59% разработчиков в целом коммитят код, который не понимают полностью (Clutch, 800 профи).</p><p><b>Выгорание повышает риск сердечно-сосудистых заболеваний на 21%</b>. Верхний квинтиль — +79% к риску ишемической болезни. Метаанализ на 26 916 участников, 2024.</p><p>Денис Стецков — инженерный лид, ведёт блог <a href="https://techtrenches.dev">techtrenches.dev</a>. Статья <a href="https://techtrenches.dev/p/the-human-cost-of-10x-how-ai-is-physically">«The Human Cost of 10x: How AI Is Physically Breaking Senior Engineers»</a> за пару дней <a href="https://news.ycombinator.com/item?id=47758863">набрала на Hacker News</a> оживлённое обсуждение — сеньоры узнают себя в описании и добавляют своих деталей. Автор собирает под один тезис данные из UC Berkeley, Upwork, Neuron, GitHub Octoverse, Faros AI, METR, Qodo, GitClear и старой работы Bainbridge «Ironies of Automation» 1983 года. Получается не манифест против ИИ, а попытка честно посчитать арифметику.</p><h2>Workload creep: ИИ не сокращает работу, он её интенсифицирует</h2><p><i>Workload creep</i> — это когда объём и границы работы ползут вверх без официального пересмотра планов и ожиданий. В феврале 2026 UC Berkeley опубликовали результаты восьмимесячного полевого исследования в 200-человечной tech-компании — 40+ глубинных интервью. Вывод, ради которого стоит прочитать оригинал: <b>ИИ не уменьшает объём работы, он его интенсифицирует через три механизма</b>.</p><ul><li><b>Task expansion</b>: у каждого расширяется скоуп, потому что ИИ делает возможным «ещё вот это». Раньше вы делали три задачи — теперь формально можете пять, и вам их молча накидывают.</li><li><b>Blurred boundaries</b>: ИИ-промптинг просачивается в обед, дорогу домой, вечер — «ну это же не работа, я просто спросил у Claude». В итоге 14 часов думающего времени в сутки вместо 8.</li><li><b>Implicit pressure</b>: когда коллеги на глазах делают больше с ИИ, ожидания поднимаются для всех. Даже если ваши — не поднялись, то в голове они поднялись уже.</li></ul><p>Upwork Research Institute (опрос апреля-мая 2024) квантифицировал: <b>77% сотрудников, использующих ИИ, говорят, что инструменты либо снизили их продуктивность, либо добавили нагрузку — минимум по одному из пунктов</b>. 71% рапортуют выгорание. А теперь главная находка, ради которой стоит не закрывать вкладку: рабочие с <b>самыми высокими</b> показателями ИИ-продуктивности выгорают сильнее всех. 88% burnout rate у «самых продуктивных». Они в два раза чаще увольняются. Тот, кто лучше всех выглядит на вашем дашборде, — ближе всех к тому, чтобы уйти.</p><p>Честный контраргумент, который в оригинале не разобран: возможно, люди, которые берутся за всё подряд, выгорают в любой среде — ИИ просто дал им больше «всего». Статистика корреляционная, не причинно-следственная. Но даже в этой версии вывод остаётся: система, которая поощряет «делать больше» без оглядки на человека, получает выгоревших сильнее всего.</p><h2>Мозг обрабатывает 10 бит в секунду. Это биология, а не характер</h2><p>В декабре 2024 года Чжэн и Майстер <a href="https://www.cell.com/neuron/abstract/S0896-6273%2824%2900808-0">опубликовали в Neuron</a> работу с неприятным для индустрии выводом. Сенсорные системы собирают данные на скорости около миллиарда бит в секунду. А вот осознанная аналитическая мысль — та самая, которой вы делаете code review — работает на скорости <b>примерно 10 бит в секунду</b>. Рабочая память при этом удерживает около 4 чанков информации одновременно.</p><p>Поверх этого — классическое исследование SmartBear и Cisco (Best Kept Secrets of Peer Code Review): эффективность обнаружения дефектов резко падает, когда скорость ревью превышает ~500 строк в час, и качество заметно проседает после первого часа непрерывной работы. Это не про «собраться и потерпеть» — это про то, что после часа когнитивная точность мозга физически падает.</p><p>Теперь посмотрите, что ИИ сделал с очередью на ревью. <a href="https://github.blog/news-insights/octoverse/octoverse-2025/">GitHub Octoverse 2025</a> показывает 43,2 млн смердженных PR в месяц — рост 23% год к году. Faros AI <a href="https://www.faros.ai/blog">проанализировала</a> 10 000+ разработчиков и зафиксировала главное: <b>с ИИ-помощью мерджат на 98% больше PR</b>. PR review time +91%, размер PR +154%. И каждый из этих PR ложится на стол сеньору.</p><blockquote>Джуниоры генерят гораздо больше кода с ИИ-инструментами, но сам объём насыщает пропускную способность сеньоров по ревью.</blockquote><p>В марте 2026 <a href="https://discuss.ocaml.org/">мейнтейнер OCaml</a> отклонил 13 000-строчный ИИ-сгенерированный PR целиком — у команды не было пропускной способности его разбирать. И это уже не отдельные истории, это статистика. Ранее METR <a href="https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/">показала</a>, что опытные разработчики с ИИ-инструментами на самом деле работают медленнее, хотя <i>чувствуют себя быстрее</i>. Зазор между ощущением и реальностью — самый опасный вывод из всей этой серии исследований: вы не можете починить то, чего не чувствуете.</p><h2>Почему экспертность делает только хуже</h2><p>В 1983 году Лизанн Бэйнбридж опубликовала в Automatica эссе <i>«Ironies of Automation»</i>. Основной тезис: <b>чем более сложной становится автоматизация, тем более требовательной становится остающаяся человеческая роль</b>. После автоматизации в работе человека остаётся самое неоднозначное, самое сложное, хуже всего инструментируемое. Microsoft Research в 2024 подтвердила это для генеративного ИИ: ИИ-системы могут делать сложные задачи ещё сложнее, оставляя пользователю ту же или бо́льшую когнитивную нагрузку.</p><p>Механизм асимметричный. Когда вы пишете код сами, вы <i>выгружаете</i> уже существующую в голове модель. Мышление уже сделано до того, как пальцы коснулись клавиатуры. Когда вы ревьюите ИИ-код, вам нужно <i>реконструировать</i> чужой ход рассуждений по артефакту, произведённому системой, которая не имеет понятия о вашем бизнесе. Это фундаментально более тяжёлая операция.</p><p>Clutch опросили 800 разработчиков: <b>59% используют ИИ-код, который не понимают полностью</b>. Для джунов это ещё допустимо, для сеньоров — нет. Их работа — ловить то, что <i>выглядит правильным, но не является</i>. Отчёт Qodo даёт распределение по стажу: уверенность в ИИ-коде у сеньоров — всего 22%. Боль с контекстом: 41% у джунов против 52% у сеньоров. То, что все остальные сгружают в «когнитивный оффлоадинг», сеньор обязан не сгружать — это его работа. Он впитывает всю ту когнитивную цену, которую сняли с себя все остальные.</p><h2>Тело записывает всё</h2><p>Когнитивный ущерб — это половина истории. Вторую половину собирает тело. Computer Vision Syndrome — синдром компьютерного зрения (на tproger.ru про это <a href="https://tproger.ru/articles/tunnelnyj-sindrom-blizorukost-vygoranie-chem-bolejut-ajtishniki">есть отдельный разбор — про туннельный синдром, близорукость и выгорание у айтишников</a>) — <b>затрагивает 74% пользователей экранов</b> в периоды увеличенной нагрузки, и тяжесть цифрового напряжения глаз сильно растёт вместе с ростом когнитивной нагрузки. ИИ-интенсифицированное ревью — это не просто «больше часов перед экраном»: каждый час становится физически более разрушительным, потому что вы не просто смотрите в монитор, а упираетесь в него со всей остротой внимания.</p><p>Метаанализ 2024 года на 26 916 участников: <b>выгорание повышает риск сердечно-сосудистых заболеваний в среднем на 21%</b>. Отдельное проспективное исследование Toker et al. 2012 (8838 участников, Psychosomatic Medicine) показало для верхнего квинтиля по выгоранию +79% к риску ишемической болезни сердца. Крупнейшее IT-исследование: метаболический синдром у 32% долго сидящих программистов — вдвое больше, чем в общей популяции.</p><p>Плюс сон. Пережёвывание рабочих задач после работы напрямую ломает качество сна. Когда вы закрываете ноутбук, мозг не выключается — он проигрывает PR, который вы не досмотрели, зависимость, которую флагнули, но не успели отследить. Больше ревью днём → хуже сон ночью → хуже решения утром → больше rubber-stamped PR → больше багов в проде → больше стресса. Цикл замыкается. Ломается — обычно человек.</p><h2>Дашборд лжёт</h2><p><a href="https://www.gitclear.com/ai_assistant_code_quality_2025_research">GitClear</a> (компания-вендор инструментов для анализа качества кода — к выводам стоит относиться с оглядкой на конфликт интересов) проанализировала 211 миллионов изменённых строк и показала неприятный тренд. Code churn за период массового внедрения ИИ-ассистентов вырос с ~3% до ~7–8%. Дублированный код в статистике вырос в несколько раз. Агрегированные цифры по росту багов и логических дефектов Стецков приводит со ссылкой на GitClear — но сам отчёт GitClear закрыт за формой лидогена, независимо верифицировать их нельзя.</p><p>Faros AI на тех же 10 000+ разработчиках: <b>несмотря на +98% смердженных PR с ИИ, компании целиком не показали никакого измеримого улучшения</b> ни по throughput, ни по качеству. То есть индивидуально PR больше, а на уровне компании — ничего не изменилось, кроме количества людей с burnout.</p><p>CEO компании Sonar (той самой, что делает SonarQube) <a href="https://www.sonarsource.com/blog/">писал</a> про скрытую опасность точно: ИИ-модели всё лучше избегают очевидных багов и простых security-дыр, но <b>структурные дефекты сейчас составляют больше 90% всех проблем</b>. Вы засыпаете в ложном чувстве безопасности: простые проблемы решены, а сложные прячутся под чистым на вид кодом, который проходит все автоматические проверки. А люди, которые умеют их находить, закопаны под потоком, превышающим их когнитивную пропускную способность by design.</p><h2>Что делать прямо сейчас, если узнали себя</h2><p>Три практических шага, которые не требуют согласования с руководством и которые можно начать делать с завтра.</p><ol><li><b>Поставьте верхний лимит на количество PR в день</b> — 3–5, в зависимости от их размера. И держите его жёстко. Лучше пусть PR полежит в очереди день, чем вы отревьюите его в режиме rubber stamp в 19:00 с пустой головой.</li><li><b>Явно разделите время на «генеративное» и «review-only»</b>. Мозг переключается между написанием и ревью дорого: каждый свитч стоит 15–25 минут на возврат в контекст. Лучше два полутора-часовых ревью-окна в день, чем пять размазанных между всем остальным.</li><li><b>Считайте часы перед экраном как физическую нагрузку, а не как «ничего же не делаю»</b>. Вам нужны паузы, прогулки, нормальный сон и понимание, что 9 часов плотного ревью — это как тренировка на стадионе для того, кто к ней не готовился.</li></ol><p>Если вы технический руководитель — проверьте у себя пару уязвимых мест. Технические лиды сами выгорают на ревью так же, как сеньоры, плюс несут отдельный груз ответа за дашборды, которые не показывают выгорание команды. Второе: у вас есть политика на максимальный размер PR на ревью? Если нет — это вопрос времени до первого человека, которого придётся выписывать из строя.</p><h2>Что с этим делать командам</h2><p>Это перекликается с темой <a href="https://tproger.ru/articles/pereosmyslenie-pull-rekvestov--pochemu-code-review-dolzhen-uchit--">переосмысления code review как процесса обучения</a>, а не только отлова багов. Главная развилка, которую автор формулирует в финале: ИИ увеличил спрос на сеньорскую инженерную экспертизу на 76–98%. Предложение сеньоров — не сдвинулось. Более того, индустрия массово увольняет сеньоров с 2022 года (сотни тысяч), и pipeline, производящий новых, ломается теми же инструментами, что создают спрос. Формула не сходится.</p><p>Если вы технический руководитель, из статьи вытекает несколько неудобных вопросов к себе. <b>Сколько времени сеньоры из вашей команды физически тратят на ревью за ИИ — и это измеряется?</b> Дашборд с количеством смердженных PR этого не видит, он видит только throughput. <b>Есть ли у вас политика на максимальный размер PR на ревью и на максимальное количество в день?</b> Без этого «просто больше code review» — это вопрос времени до первого выгоревшего сеньора с диагнозом. <b>Как выглядит разгрузка?</b> Если ответ «увеличим штат» — откуда возьмутся эти сеньоры при текущем рынке, и не те же ли это люди, которых вы только что уволили в прошлой оптимизации?</p><blockquote>У ревью-инженера в 2026 году нет версии выбора, где он не отвечает за результат. Доверился ИИ-PR — твоё имя на коммите. Перепроверил всё руками — твой сон и твоё сердце. Индустрия должна это считать.</blockquote><p>Если вы сеньор и узнаёте себя — стоит <a href="https://techtrenches.dev/p/the-human-cost-of-10x-how-ai-is-physically">прочитать оригинал целиком</a>: там больше деталей по исследованиям и меньше выводов-обобщений, чем в этом разборе. Автор собирает ответы от читателей для follow-up статьи. Комментарии на <a href="https://news.ycombinator.com/item?id=47758863">HN</a> тоже стоят того: половина треда — это другие сеньоры, рассказывающие свои версии той же истории.</p>]]></content:encoded>
    </item>
    <item>
      <title>Зарплаты разработчиков в 2026 году: кого из нас ждёт повышение, а кого увольнение</title>
      <link>https://tproger.ru/articles/zarplaty-razrabotchikov-v-2026-godu-kogo-iz-nas-zhdyot-povywenie</link>
      <comments>https://tproger.ru/articles/zarplaty-razrabotchikov-v-2026-godu-kogo-iz-nas-zhdyot-povywenie?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дима Дмитриев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/zarplaty-razrabotchikov-v-2026-godu-kogo-iz-nas-zhdyot-povywenie</guid>
      <description><![CDATA[<p>Зарплаты разработчиков в 2026: рост в 1С и импортозамещении, стагнация массовых направлений, важность навыков и защищённых проектов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/zarplaty-razrabotchikov-v-2026-godu-kogo-iz-nas-zhdyot-povywenie">Зарплаты разработчиков в 2026 году: кого из нас ждёт повышение, а кого увольнение</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 09 Apr 2026 05:00:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Три года подряд рынок работал по одной схеме: джун с полугодовым опытом выбирал из пяти офферов, а сеньоров хантили каждые две недели с плюс 30–50% к зарплате. В конце 2024-го это закончилось. Не замедлилось — именно закончилось.</p><p>Сегодня компании режут бюджеты, закрывают проекты и ищут способы делать то же самое, но дешевле. В 2026 году это видно и по количеству вакансий, и по тому, как растут зарплаты — или не растут.</p><h2>Рост есть, но вы его не почувствуете</h2><p>Зарплаты в IT формально растут — цифры в отчётах положительные. Но рост составляет 5–7% в год, и это примерно совпадает с инфляцией. То есть денег на счёте стало больше, а купить на них можно примерно столько же, сколько год назад.</p><p>Раньше всё было проще: пришёл к руководителю, сказал что мониторишь рынок и хочешь повышения — и в большинстве случаев получал его. Потому что нанять нового человека стоило дороже и дольше, чем поднять зарплату текущему. Сейчас этот аргумент не работает.</p><blockquote>Если сейчас сотрудник придёт к руководству за повышением и не будет при этом суперзвездой с уникальной эффективностью — его могут просто не услышать. Более того, в некоторых случаях человека могут сократить, чтобы найти кого-то дешевле, хоть и с меньшим опытом.</blockquote><p>Это уже происходит, когда опытные разработчики соглашаются на зарплаты ниже рыночных, лишь бы не потерять место.</p><p>Поиск работы тоже изменился. Если раньше нормальный оффер находился за две недели, то сейчас этот же процесс занимает 3–4 месяца. Кандидаты стали соглашаться на условия, от которых раньше отказывались: нет ДМС, нет удалёнки — ладно, главное чтобы компания платила вовремя и не закрылась через полгода. Рынок стал рынком работодателя.</p><h2>Кто в плюсе: 1С и всё, что связано с импортозамещением</h2><p>На фоне общей стагнации есть один сегмент, который чувствует себя лучше всех — и это не AI-разработка, не DevOps и не облака — а 1С.  Специалисты по 1С в 2026 году получают прибавку 15–20% в год. Это в три раза выше среднего по рынку, и по наблюдениям рекрутингового рынка — лучший год для этого направления за всю историю.</p><p>Почему так происходит — понятно, если разобраться в том, откуда берутся деньги. Бюджеты на импортозамещение выделяются отдельно от всего остального. Переход на российское ПО — законодательное требование с конкретными сроками. Деньги под это уже заложены, и срезать их в середине года гораздо сложнее, чем заморозить, например, маркетинговый проект или разработку нового продукта.</p><p>Пока другие направления оптимизируют бюджеты и пересматривают приоритеты, разработчики и проекты на 1С закрывают один проект интеграции и сразу берут следующий — очередь не заканчивается.</p><h2>Кого сокращают и почему</h2><p>Если коротко, нас сокращают, потому что бизнес выбирает более дешёвое и менее технологичное решение прямо сейчас вместо окупаемого через несколько лет.</p><p>Простой пример: заказчик отказывается от автоматизации колл-центра и оставляет живых операторов в регионе. Автоматизация была бы выгоднее в долгосроке, но деньги нужны сейчас — и дешёвый колл-центр выигрывает. Разработчики сложных систем остаются без задач, а операторы поддержки получают больше нагрузки.</p><p>Расслоение внутри самого IT при этом только усиливается: зарплаты растут у тех, кто много знает и много работал и тех, кому повезло с проектом, а массовые позиции стагнируют. Рынок становится предсказуемым: каждый человек в команде должен приносить результат, который видно и который можно посчитать.</p><h2>География больше не определяет зарплату</h2><p>В IT заметного разрыва между регионами пока нет, и причина простая — удалёнка никуда не делась. Да, компании всё чаще зовут людей в офис хотя бы пару дней в неделю, но этого недостаточно, чтобы создать серьёзный разрыв между Москвой и остальными городами. Максимум 20% — и то это скорее редкие случаи, чем правило.</p><p>Два разработчика одного уровня, один в офисе в Казани, другой на удалёнке в том же часовом поясе — получают примерно одинаково. Потому что работодателю важно не где вы сидите физически, а насколько вы пересекаетесь с командой по времени и что за проект. Если проект финансируется и входит в приоритетное направление — город значения не имеет.</p><h2>Три вопроса, которые нужно задать себе прямо сейчас</h2><p>Смотреть на общую статистику по отрасли сейчас бесполезно — она слишком размытая, чтобы из неё что-то вывести про себя лично. Полезнее задать три конкретных вопроса про то, над чем вы работаете прямо сейчас.</p><h3>1. Является ли ваш проект обязательным для бизнеса?</h3><p>Не полезным, не интересным, не перспективным — именно обязательным, таким, без которого бизнес не может функционировать или выполнить регуляторные требования. Экспериментальные продукты и внутренние инструменты замораживаются первыми — именно потому, что их отсутствие не останавливает работу компании.</p><h3>2. Проект связан с переходом на российское ПО?</h3><p>Если да — вы в той части рынка, где бюджеты защищены и не зависят от квартальных результатов компании. Если нет — лучше оценить, насколько реально переориентироваться на это направление через повышение квалификации именно в тех стеках, где бюджеты не урезаются.</p><h3>3. Насколько легко вас заменить?</h3><p>Есть ли на рынке люди с похожим набором компетенций, но дешевле, и можно ли вашу задачу закрыть автоматизацией за разумное время. Стратегия «переждать» в текущих условиях не работает, потому что стагнация зарплат в массовых сегментах может длиться долго, а рынок не вернётся к прежней динамике автоматически — только тогда, когда макроэкономическая ситуация позволит компаниям снова вкладывать в развитие.</p><h2>Итог: рынок пытается нормализоваться</h2><p>То, что происходит — не обвал и не кризис. Это возврат к ситуации, когда зарплата определяется тем, что ты реально умеешь и насколько это нужно бизнесу прямо сейчас. Несколько лет до этого рынок был аномальным: компании перебивали офферы друг у друга даже за слабых специалистов, потому что людей просто не хватало. Сейчас это закончилось, и работа всё равно есть — просто условия стали жёстче.</p><p>Зарплатная гонка перешла в гонку навыков. Побеждает не тот, кто громче просит повышения, а тот, кого сложно заменить. И цена ошибки в выборе направления стала выше — если сидите на проекте, который могут заморозить в любой момент, лучше разобраться с этим сейчас, а не когда придёт уведомление.</p><p>Точечный рост будет — там, где дефицит нужных людей и защищённые бюджеты: импортозамещение, интеграция российского ПО, направления, которые бизнес не может себе позволить остановить. Общего подъёма не будет, но у тех, кто попал в правильную нишу и приносит измеримый результат — возможности есть.</p>]]></content:encoded>
    </item>
    <item>
      <title>Портфолио студента без опыта: что показать работодателю</title>
      <link>https://tproger.ru/articles/portfolio-studenta-bez-opyta--chto-pokazat-rabotodatelyu</link>
      <comments>https://tproger.ru/articles/portfolio-studenta-bez-opyta--chto-pokazat-rabotodatelyu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[СтудГид]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/portfolio-studenta-bez-opyta--chto-pokazat-rabotodatelyu</guid>
      <description><![CDATA[<p>Объясняем, как создать портфолио для поиска работы с нуля, какие проекты стоит включить и как адаптировать учебные работы под требования работодателя.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/portfolio-studenta-bez-opyta--chto-pokazat-rabotodatelyu">Портфолио студента без опыта: что показать работодателю</a>»</p>]]></description>
      <category><![CDATA[Партнёрский материал]]></category>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 04 Apr 2026 11:00:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Даже если кажется, что к концу обучения тебе нечего показать работодателю, всегда найдутся учебные проекты, которые спасут ситуацию. Кейсы из курсовых работ или практических занятий могут спокойно наполнить портфолио, если правильно их упаковать. Когда рабочих проектов еще нет, учебные работы помогут выйти на рынок труда и создать портфолио для работы с нуля.</p><h2>Портфолио — что это?</h2><p><b>Портфолио</b> — это подборка твоих наилучших работ с описанием результатов. Единого стандарта оформления нет, потому что у каждой специальности свои особенности. К тому же, это творческий процесс, и каждый упаковывает кейсы так, как считает нужным. Главное, чтобы на выходе получилось убедительное портфолио для работодателя.</p><p><b>Нужно ли портфолио всем?</b> Нет, портфолио нужно только тем, у кого есть осязаемый результат: дизайн, код, фотография, тексты или цифры.</p><p><b>Обязательно ли иметь портфолио?</b> Такой обязанности ни у кого нет, но при общении с работодателем это уже стало хорошим тоном.</p><h2>Зачем включать учебные работы в портфолио?</h2><p>Когда опыта нет, а выходить на рынок пора, учебные проекты становятся единственным аргументом. Резюме заполняют все, но этого мало. Чтобы тебя заметили, рекомендуется написать сопроводительное письмо к портфолио. Сейчас автоматизированные системы проверяют не только резюме, но и текст письма на наличие ключевых слов. Только если алгоритм одобрит твой отклик, HR увидит портфолио.</p><figure><img src="https://media.tproger.ru/user-uploads/114541/2026-03-26/7ca5fb8f-63ff-4bfe-91c5-d78a89502a5f.webp" alt="" /></figure><h2>Какие работы можно включить?</h2><p><b>В портфолио можно включить:</b></p><ul><li>дипломные работы,</li><li>курсовые,</li><li>творческие зачеты,</li><li>лабораторные работы,</li><li>исследования.</li></ul><p>Не нужно вставлять дипломные фолианты целиком, их никто не будет читать. Отсеки лишнее и оставь только выжимку с основной информацией.</p><p>Важно, чтобы проекты были структурированы. Каждый блок должен иметь четкое название. Также, если посмотреть на качественный пример портфолио студента, можно заметить, что работы там чаще всего расположены в хронологическом порядке, чтобы была видна динамика твоего роста.</p><p>И самое главное, не бойся добавлять в портфолио для поиска работы неидеальные проекты. Никто не ждет от студентов работ уровня сеньора. Работодателю важно видеть твой потенциал и подход к работе.</p><h2>Что лучше не включать?</h2><p>Портфолио не должно стать архивом твоих работ. В нем должно быть собрано только лучшее. Есть еще несколько рекомендаций о том, что лучше не добавлять:</p><ul><li>Проекты не по теме. Если ты откликаешься на вакансию дизайнера, то твои лабораторные по основам безопасности жизнедеятельности будут совсем не в тему.</li><li>Недоделки. Проекты, брошенные на полпути, создадут о тебе впечатление несерьезного человека. Уж лучше один доделанный, чем пять незавершенных.</li><li>«Средненькие» проекты. Оставляй только то, что имеет вес. Слабые работы размывают впечатление о портфолио.</li><li>Чужое авторство. Не включай работы, в которых твой вклад был минимальным. Если проект был командным, четко пропиши свою роль и внесенный вклад, чтобы не присваивать чужие заслуги.</li></ul><p>Меньше, но лучше! Когда отсеешь все лишнее и оставишь только сильные проекты, можно переходить к тому, как выполнить оформление портфолио для работы.</p><figure><img src="https://media.tproger.ru/user-uploads/114541/2026-03-26/42ab1ca0-e256-4bb2-a293-94fd127f1ac4.webp" alt="" /></figure><h2>Как правильно оформить портфолио?</h2><p>Оформление для разных сфер может разительно отличаться, но при первом составлении лучше опираться на понятную структуру. Пункты ниже помогут понять, что включает в портфолио успешный кандидат. Тем не менее, ничего не мешает тебе менять порядок разделов по своему усмотрению и адаптировать их под конкретные задачи.</p><h2>Обложка</h2><p>«Встречают по одежке…». Видел когда-нибудь портфолио дизайнеров на Behance? Они точно знают, что без цепляющей обложки на проект никто не кликнет. И не важно, какого профиля ты специалист. В эпоху переизбытка контента каждому нужно уметь выделяться.</p><h2>Информация об авторе</h2><p>Простое копирование описания из резюме может сделать портфолио слишком сухим. Лучше составить новый текст в свободном формате. Расскажи о своих интересах или профессиональных целях живым языком, чтобы работодателю было проще погрузиться в портфолио.</p><h2>Фотография</h2><p>Портфолио прикрепляется не к госуслугам, поэтому необязательно делать фото, как на паспорт. Старайся соблюдать единый стиль и прикреплять фотографию в стилистике портфолио.</p><h2>Примеры работ</h2><p>Иногда работы так хорошо оформлены в отдельных файлах, что переносить их в портфолио не хочется. Кажется, что процесс будет муторным и результат будет выглядеть хуже оригинала. Сразу возникает соблазн просто вставить на проект и надеяться, что работодатель на неё кликнет.</p><p>В реальности тратить время на переход по ссылкам от незнакомого человека никто не станет. Заинтересовать работодателя с первых секунд можно только готовым проектом перед глазами. Оптимально будет включить в портфолио от 3 до 10 лучших работ.</p><h2>Контакты</h2><p>Как и с примерами работ, контакты должны быть сразу перед глазами. Выходить за пределы портфолио и искать твой ник в телеграме — процесс энергозатратный. Так работодатель может ненароком отвлечься на чужое портфолио, в котором по закону подлости окажутся ссылки на все мессенджеры и социальные сети.</p><p>Укажи актуальный номер телефона, адрес электронной почты. Добавь ссылки на мессенджеры и все доступные способы быстро связаться с тобой. Чем меньше усилий нужно прилагать для того, чтобы написать тебе сообщение, тем выше твои шансы на получение оффера.</p><figure><img src="https://media.tproger.ru/user-uploads/114541/2026-03-26/f9c4dd0c-237c-45f5-a05a-15f2c17e563d.webp" alt="" /></figure><h2>Где разместить портфолио?</h2><p>Выбор площадки напрямую зависит от твоей специальности. Одной платформы часто не хватает, потому что интерфейс везде ориентирован под разные цели.</p><ul><li>Behance. Дизайнеры и иллюстраторы чаще выбирают этот ресурс для подачи визуального материала и оформления красивых кейсов.</li><li>GitHub. Программистам больше подходит этот сервис, где можно опубликовать чистый код и показать структуру проекта.</li><li>Telegram. Этот формат удобен тем, что интерфейс мессенджера изначально ориентирован на чтение текстов. Поскольку это популярное приложение, обратная связь по твоему портфолио придет быстро. Работодателю проще написать тебе в личные сообщения, чем составлять  письмо на электронную почту.</li><li>Tilda. Подойдет тем, кто хочет выделиться среди кандидатов. В этом конструкторе можно бесплатно создать сайт на неограниченный срок без платных подписок. Такой формат позволяет гибко оформить портфолио и удобно сгруппировать работы.</li><li>PDF-файл. Иногда проще всего отправить проект напрямую при отклике на вакансию. Главное помнить про удобство того, кто будет смотреть твои работы.</li></ul><p>Теперь ты знаешь, что делать со всеми проектами, которые накопились за время учебы. Хорошие вузовские наработки могут стать твоим главным аргументом при устройстве на первую работу. Помни, что стесняться отправной точки не нужно. Портфолио будет постоянно видоизменяться вместе с твоим опытом. Со временем ты будешь не только добавлять новые работы, но и удалять неактуальные. Главное, с чего-то начать.</p><p>Если в процессе не хватает примеров или сложно собрать кейс в цельную историю, можно дополнительно разобраться с помощью консультаций от <a href="https://avtor24.ru/?ref=8650dd52b7d2eaf1" rel="nofollow">Автор24.</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Нас всех заменит ИИ. Но бизнес ошибся, что произошло с рынком после ИИ БУМА?!</title>
      <link>https://tproger.ru/articles/avtomatizaciya--perezagruzka---pochemu-ii-poka-ne-smog-zamenit-lyudej-v-it</link>
      <comments>https://tproger.ru/articles/avtomatizaciya--perezagruzka---pochemu-ii-poka-ne-smog-zamenit-lyudej-v-it?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/avtomatizaciya--perezagruzka---pochemu-ii-poka-ne-smog-zamenit-lyudej-v-it</guid>
      <description><![CDATA[<p>Кого не смог заменить ИИ в IT: реальные кейсы возврата сотрудников в российских и зарубежных компаниях</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/avtomatizaciya--perezagruzka---pochemu-ii-poka-ne-smog-zamenit-lyudej-v-it">Нас всех заменит ИИ. Но бизнес ошибся, что произошло с рынком после ИИ БУМА?!</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 30 Mar 2026 05:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>В 2024-2025 годах корпорации отправились в крестовый поход против собственных сотрудников под знаменами искусственного интеллекта. Руководство ожидало значительного сокращения операционных расходов за счет оптимизации штата. На практике оказалось, что заменить человека алгоритмами сложнее, чем предполагали корпоративные стратегии.</p><p>ИИ показал хорошие результаты в решении типичных задач, но столкнулся с ограничениями в сложных и нестандартных ситуациях. Это привело к пересмотру первоначальных планов — вместо полного замещения сотрудников компании стали искать компромисс между автоматизацией и человеческим участием.</p><p>Началась тихая, но вполне масштабная операция по возврату уволенных специалистов.. Этот процесс не означает отказ от технологий, но демонстрирует более взвешенный подход к их внедрению. Компании осознали, что эффективность работы зависит от грамотного распределения задач между людьми и машинами.</p><h2>Хроники бумеранга</h2><p>Статистика показывает, что первоначальные ожидания бизнеса от автоматизации были завышены. Вместо безвозвратного замещения людей алгоритмами рынок труда столкнулся с феноменом «бумерангового найма» — возврата ранее уволенных сотрудников. Тренд подтверждается глобальными исследованиями и указывает на более сложный характер интеграции искусственного интеллекта.</p><h2>Статистическое подтверждение тренда</h2><p>Аналитики компании Visier, изучив данные о трудоустройстве 2,4 млн сотрудников из 142 международных компаний, <a href="https://lenta.ru/articles/2025/11/16/ai/">пришли</a> к выводу: часть уволенных работников впоследствии возвращаются к прежнему работодателю.</p><p>В исследовании отмечают, что этот показатель стабильно рос в течение 2025 года, особенно в подразделениях, активно внедрявших ИИ. Аналитики связывают это с тем, что многие руководители начинали сокращениям, толком не разобравшись, в решении каких конкретно задач новые технологии смогут помочь.</p><h2>Экономическая неэффективность массовых сокращений</h2><p>Глубинной причиной этого тренда стала низкая отдача от инвестиций в ИИ. Исследование Массачусетского технологического института (MIT) «The GenAI Divide: State of AI in Business 2025» <a href="https://fortune.com/2025/08/18/mit-report-95-percent-generative-ai-pilots-at-companies-failing-cfo/">демонстрирует</a> фундаментальную проблему: 95% компаний не получили ощутимой прибыли от своих вложений в генеративный ИИ. Многие проекты зависали на стадии пилотов, так и не выходя в промышленную эксплуатацию.</p><h2>Смена приоритетов бизнеса</h2><p>Осознание этих реалий заставляет компании пересматривать кадровую стратегию. Аналитики Forrester в отчете «Прогнозы 2026: будущее труда» <a href="https://www.osp.ru/articles/2025/1110/13060146">приводят</a> красноречивые цифры: 55% работодателей уже сожалеют о решениях об увольнениях, принятых под предлогом внедрения ИИ.</p><p>В связи с этим 57% специалистов, отвечающих за инвестиции в ИИ, ожидают увеличения численности персонала в ближайшие годы. Примечательно, что лишь 10% компаний упорно отказываются менять курс и возвращать сотрудников.</p><h2>Влияние на рынок труда</h2><p>Воздействие ИИ-решений на занятость неоднородно. Исследование профессора НИУ ВШЭ Ларисы Смирных, охватившее почти 1800 российских предприятий, <a href="https://www.hse.ru/news/science/1097132913.html">показало</a>, что в среднем внедрение ИИ приводило к сокращению занятости на 0,79 процентного пункта.</p><p>Однако на малых предприятиях сокращение составило 1,26 п.п., на крупных — 2,08 п.п., а предприятия среднего размера, напротив, увеличили численность работников на 2,96 п.п.. Это доказывает, что эффект зависит от сочетания структурных и финансовых факторов конкретного бизнеса.</p><h2>Косвенные эффекты и кризис воспроизводства кадров</h2><p>Параллельно с возвратным наймом развивается и другой тренд — сокращение входных позиций для новичков. Исследование Stanford Digital Economy Lab выявило, что с момента запуска ChatGPT занятость молодых специалистов в профессиях, подверженных автоматизации, <a href="https://habr.com/ru/articles/943280/">снизилась</a> на 13%.</p><p>Опросы показывают, что 42% организаций заморозили найм на позиции начального уровня в IT-сфере. Это создает «профессиональную пропасть» — разрыв между академическим образованием и реальной практикой, что может привести к кризису воспроизводства кадров в будущем.</p><h2>Реальные кейсы: кто и почему возвращает сотрудников</h2><p>Истории замены и возврата оказались сложнее примитивной схемы «робот занял место человека». Компании столкнулись с тем, что эффективное использование ИИ требует не устранения человеческого фактора, а его интеграции с технологиями.</p><h2>Amazon и цена ошибки</h2><p><a href="https://habr.com/ru/articles/961160/">История</a> Amazon показательна. Осенью 2024 года ИИ-система, заменившая часть DevOps-инженеров, стала причиной катастрофического сбоя в AWS (многофункциональный облачный сервис). Длительный простой десятков крупных интернет-платформ наглядно продемонстрировал — алгоритмы не справляются с нештатными ситуациями.</p><p>После инцидента компания начала тихий возврат ключевых специалистов — для создания систем контроля и аварийного реагирования.</p><figure><img src="https://media.tproger.ru/user-uploads/133848/2025-12-30/43955cf0-8e67-45dc-a25a-70c76c82ac87.png" alt="" /></figure><h2>McDonald's: 260 наггетсов вместо бургера</h2><p>Голосовой ИИ от IBM в drive-in сетей McDonald's должен был ускорить прием заказов. Система анализировала историю покупок и предлагала клиентам персональные варианты. Но что-то пошло не так. В 2024 году соцсети наполнились роликами с ошибками алгоритма. ИИ добавлял бекон к мороженому, предлагал девять порций чая вместо булочки и выставлял счета на 260 наггетсов.</p><p>После публичного провала сеть отключила систему в сотнях закусочных. Технология не справилась с шумным окружением и человеческой речью. Провал стоил компании сотни миллионов долларов.</p><h2>Российский подход: адаптация через переобучение</h2><p>В России компании демонстрируют стратегию осторожной интеграции, делая ставку на трансформацию должностей вместо их ликвидации. Исследование TAdviser показывает, что доля крупных российских компаний, использующих AI-решения, <a href="https://productlab.ru/blog/ai-v-korporativnom-obuchenii">выросла</a> с 28% до 43% за 2024-2025 годы.</p><p>При этом массовых сокращений не последовало. Внутренние программы переподготовки, такие как «Академия ИИ» в «Сбере», через которую прошли тысячи работников, стали показательным ответом на вызовы автоматизации. Стратегия компаний сместилась с замены людей на усиление их возможностей с помощью алгоритмов.</p><p>Изначально банк запланировал три волны увольнений на 2025 год с целью сокращения издержек и увеличения прибыли. Вторая волна, по заявлению компании, напрямую связана с внедрением AI-ассистентов. Алгоритмы брали на себя рутинные задачи тестировщиков, разработчиков и руководителей команд.</p><p>Но катастрофических сокращений не последовало. Банк начал создавать новые подразделения поддержки AI-продуктов. Часть уволенных сотрудников получила предложения вернуться на измененных условиях. Не как исполнители, а как наставники алгоритмов.</p><h2>Где ИИ действительно преуспел, а где провалился</h2><p>За два года активного внедрения искусственного интеллекта в бизнес-процессы сформировалась четкая картина его реальных возможностей и ограничений. Вопреки первоначальным ожиданиям, ИИ оказался эффективным инструментом для решения конкретных классов задач, но не смог стать универсальной заменой человека.</p><h2>Сферы эффективного применения ИИ</h2><p>Наибольшую результативность алгоритмы демонстрируют в областях с четко определенными правилами и большими объемами структурированных данных:</p><ul><li>обработка типовых тикетов технической поддержки <a href="https://happydesk.ru/blog/tpost/ou4068by51-avtomatizatsiya-podderzhki-klientov-5-sp">увеличивает</a> скорость ответа на 30-50%;</li><li>генерация шаблонного кода стала рутинной практикой, особенно в мобильной разработке где преобладают типовые архитектурные паттерны;</li><li>первичный анализ данных и построение базовых отчетов перешли в зону ответственности ИИ;</li><li>автоматическое тестирование стандартных сценариев освободило QA-инженеров от рутины.</li></ul><p>Инструменты типа GitHub Copilot успешно справляются с созданием стандартных функций. Время на написание повторяющегося кода сокращается в среднем на 35-40%. Алгоритмы эффективно обрабатывают большие массивы информации, выявляя очевидные зависимости и аномалии.</p><h2>Области, требующие человеческого участия</h2><p>Наиболее значительные провалы ИИ связаны с задачами, требующими понимания контекста и работы с неструктурированной информацией:</p><ul><li>работа с legacy-системами остается сложнейшей проблемой — алгоритмы не способны понять контекст десятилетних накоплений;</li><li>сложная техническая поддержка, где необходимо выявить неочевидную причину сбоя, требует человеческого опыта и интуиции;</li><li>принятие решений в условиях неопределенности остается прерогативой человека;</li><li>управление командами и проектами требует эмоционального интеллекта и учета межличностной динамики;</li><li>задачи, требующие творческого подхода, также остаются за человеком.</li></ul><p>Специалисты способны сопоставить разрозненные факты, используя фоновые знания и понимание системных взаимосвязей. ИИ эффективно обрабатывает данные в рамках заданных параметров, но неспособен к стратегическому мышлению при недостатке информации.</p><p>Опыт компаний показывает, что наиболее эффективной моделью становится симбиоз человеческого интеллекта и искусственного, где каждый фокусируется на своих сильных сторонах.</p><figure><img src="https://media.tproger.ru/user-uploads/133848/2025-12-30/2e75fd94-c730-412c-9df7-b54b1876e24a.png" alt="" /></figure><h2>Почему сокращения оказались убыточными — экономический аспект</h2><p>Платформа Orgvue провела <a href="https://news.inbox.lv/14zgdb8-kompanii-vozvrasaut-uvolennyh-sotrudnikov-iskusstvennyj-intellekt-ne-spravilsa?language=ru">расчет</a> полной стоимости увольнений. Результат озадачил финансовых директоров. На каждый сэкономленный доллар на зарплатах компании несли $1.27 скрытых расходов.</p><p>В анализ вошли:</p><ul><li>выходные пособия и страховые выплаты;</li><li>потеря продуктивности в переходный период;</li><li>затраты на рекрутинг новых сотрудников;</li><li>удар по бренду работодателя;</li><li>расходы на дообучение оставшегося персонала.</li></ul><p>Для российских компаний добавилась специфическая проблема — многим из них требуется сохранять численность штата для соответствия регуляторным требованиям. Это приводит к ситуациям, когда формально сотрудники остаются, но их реальные обязанности сводятся к контролю ИИ.</p><h2>Новые профессии на стыке человека и алгоритма</h2><p>Рынок труда демонстрирует адаптивность в ответ на распространение ИИ. Вместо массового сокращения штатов формируется сегмент гибридных специальностей, требующих сочетания предметной экспертизы и технологической грамотности. Согласно исследованию hh.ru, зарплаты в этих направлениях <a href="https://companies.rbc.ru/news/CDJUbymZew/it-ryinok-truda-v-rossii-vyisokij-konkurs-i-sistemnyij-defitsit-kadrov/">выросли</a> на 20-45% за 2024-2025 годы, отражая дефицит квалифицированных кадров.</p><p><b>Промпт-инженеры</b> стали одной из самых востребованных профессий. Эти специалисты формулируют запросы к ИИ таким образом, чтобы алгоритм понимал контекст и выдавал релевантные результаты. В их обязанности входит не только составление текстовых команд, но и тестирование различных подходов к взаимодействию с нейросетями, оптимизация промптов под конкретные бизнес-задачи.</p><p><b>AI-тренеры</b> обучают нейросети на внутренних данных компаний. Профессионалы в этой области должны глубоко понимать специфику производства и уметь передавать эту экспертизу алгоритмам. Они работают с разметкой данных, валидацией результатов обучения и постоянной донастройкой моделей под изменяющиеся требования.</p><figure><img src="https://media.tproger.ru/user-uploads/133848/2025-12-30/75ecef56-b572-44db-957c-3b7b274a01b7.png" alt="" /></figure><p><b>Интеграторы моделей</b> занимаются внедрением готовых ИИ-решений в существующие бизнес-процессы. Специалисты обладают уникальной комбинацией навыков — понимают и технологические аспекты работы алгоритмов, и операционную деятельность компаний. Они адаптируют решения под конкретные рабочии процессы и отвечают за бесперебойную работу систем</p><p><b>Этики ИИ </b>обеспечивают корректное и безопасное использование искусственного интеллекта. Профессия возникла после нескольких <a href="https://www.theverge.com/2024/2/21/24079371/google-ai-gemini-generative-inaccurate-historical">громких скандалов</a>, связанных с дискриминацией алгоритмов. Специалисты разрабатывают этические стандарты, проводят аудит систем на предмет предвзятости и следят за соблюдением нормативных требований.</p><p>Формирование этих профессий свидетельствует о переходе от противостояния человека и алгоритма к их продуктивному сотрудничеству. Компании все чаще рассматривают ИИ не как инструмент замены сотрудников, а как возможность перераспределить человеческие ресурсы на более сложные и творческие задачи.</p><h2>Фундаментальные ограничения: почему ИИ не заменит человека в ближайшем будущем</h2><p>Алгоритмы работают с паттернами, но не понимают смысла. Они анализируют данные, но не обладают сознанием, эмпатией, моральными суждениями и творческим мышлением.</p><p>Когнитивные барьеры:</p><ul><li>отсутствие здравого смысла — ИИ не понимает очевидных для человека вещей;</li><li>хрупкость моделей — при столкновении с нестандартными данными выдают абсурдные результаты;</li><li>неспособность к настоящему творчеству — только комбинация существующих паттернов;</li><li>отсутствие эмоционального интеллекта — не могут сопереживать и понимать чувства.</li></ul><p>ИИ может симулировать эмпатию, анализируя тон голоса или выбор слов. Но он не способен по-настоящему сопереживать, чувствовать боль, радость или любовь. Это делает его бесполезным в ситуациях, требующих человеческого участия.</p><h2>Российский рынок труда: трансформация, а не замена</h2><p>В 2025 году российский рынок труда демонстрирует осторожный подход: несмотря на активное внедрение технологий, он развивается по пути трансформации и сотрудничества, а не массового замещения сотрудников.</p><h2>Экономический контекст и кадровый дисбаланс</h2><p>Ситуация на рынке труда в целом неоднозначна. Исследование «Актион Кадры и HR» <a href="https://lenta.ru/news/2025/03/21/v-rossii-otsenili-riski-massovyh-uvolneniy-v-2025-godu/">показывает</a>, что более 40% российских компаний не исключают сокращений штата в 2025-2026 годах. Основными причинами <a href="https://refinanc.ru/journal/massovye-uvolneniya-v-2025-godu-kak-menyaetsya-rossiyskiy-rynok-truda/">называют</a> высокую ключевую ставку, удорожание кредитов и общую экономическая неопределенность.</p><p>При этом <a href="https://www.profguide.io/article/samye-vostrebovannye-professii-v-rossii-v-2025-godu.html">существует</a> острый дефицит квалифицированных кадров в промышленности, строительстве и IT — здесь работодатели готовы повышать зарплаты для привлечения специалистов. Это противоречие объясняется нехваткой сотрудников с конкретными, востребованными навыками.</p><figure><img src="https://media.tproger.ru/user-uploads/133848/2025-12-30/4f9cff96-8bdc-485f-b4cd-776e04df6e85.png" alt="" /></figure><h2>Внедрение ИИ: осторожность и прагматизм</h2><p>В сравнении с западными компаниями российские действуют более сдержанно. Они фокусируются на точечной автоматизации в ключевых секторах, где можно быстро получить измеримый результат:</p><ul><li>Упор на эффективность. Генеративные модели стали базовым инструментом в финтехе, промышленности и медицине. При грамотном использовании они увеличивают производительность труда до 20%, а снижение издержек достигает 15%.</li><li>Ограниченное использование в HR. Только 38% компаний применяют генеративный ИИ для скрининга резюме, что говорит о предпочтении человеческого контроля в ключевых процессах управления талантами.</li><li>Сдвиг в IT-найме. В IT-сфере <a href="https://www.it-world.ru/it-news/2jc1h4y0c56oc8g8c08swckook80ogg.html">наблюдается</a> профицит кандидатов начального уровня (джунов), в то время как дефицит высококвалифицированных senior-специалистов сохраняется. Индекс конкуренции на одну вакансию достигает 12.5 резюме, но для позиций senior-уровня он составляет всего 2.5.</li></ul><h2>Барьеры на пути автоматизации</h2><p>Несколько ключевых проблем <a href="https://hirehi.ru/blog/it-rynok-rossii-v-2025-godu-8-kliuchevykh-trendov-kotorye-izmeniat-vashu-kareru-v-it">мешают</a> российскому бизнесу провести тотальную автоматизацию:</p><ul><li>Недоверие и дефицит компетенций. 43% компаний отмечают недоверие к ИИ как к технологии, а в 40% организаций просто не хватает специалистов, способных с ним работать.</li><li>Сопротивление изменениям. Сотрудники на всех уровнях — от рядовых специалистов до топ-менеджеров — часто сопротивляются внедрению новых технологий, опасаясь неопределенности.</li><li>Технологическое отставание и гибридные решения. Необходимость адаптации западных ИИ-решений к местным реалиям и отставание российских аналогов вынуждают компании искать сложные гибридные подходы, что замедляет процесс.</li></ul><p>Вместо тотальных увольнений в России происходит постепенное изменение должностных обязанностей. Бизнес перестраивает процессы — рутинные задачи делегируются алгоритмам, а за человеком сохраняются функции, требующие критического мышления, управления и творческого подхода. Это приводит к изменению профессиональных профилей и необходимости постоянного обучения сотрудников.</p><h2>Государство и регуляция: запаздывающая реакция</h2><p>Правительство усиливает меры поддержки компаний, заинтересованных в переподготовке кадров и интеграции ИИ во все ключевые процессы.Звучат слова о важности технологического суверенитета и этических стандартах внедрения.</p><p>Власти в первую очередь заинтересованы в социальной стабильности и сохранении занятости населения на стандартном уровне. Рост безработицы на фоне развития моделей — момент политически невыгодный.</p><h2>Что делать специалисту: практические выводы</h2><p>Стратегия «возьми готового, используй, замени» оказалась нежизнеспособной. 71% сотрудников <a href="https://new-retail.ru/novosti/retail/rabotodateli_osnovnoy_prichinoy_ukhoda_sotrudnikov_ostaetsya_nizkaya_zarplata/">уходят</a> из компаний из-за низкой зарплаты, 57% — из-за стресса и перегрузок. В новых условиях компании стали больше ценить персонал, но и специалистам стоит позаботиться о своем будущем.</p><p>Как сохранить ценность на рынке:</p><ul><li>развивать мягкие навыки — эмпатию, адаптивность, гибкость управления;</li><li>осваивать ИИ как инструмент, а не конкурировать с ним;</li><li>фокусироваться на задачах, требующих человеческого понимания контекста;</li><li>инвестировать в непрерывное обучение, особенно в смежных областях.</li></ul><p>Успешные компании создают экосистему долгосрочной лояльности. Развитие сотрудников и забота об их благополучии становятся главными конкурентными преимуществами в борьбе за таланты.</p><h2>Трансформация рабочих мест: реалии и перспективы симбиоза человека и ИИ</h2><p>Сценарий массовых увольнений из-за искусственного интеллекта не оправдался. Вместо этого рынок труда переживает сложную трансформацию, где технологии не столько заменяют людей, сколько перекраивают саму структуру профессий и требуют новых навыков.</p><h2>Масштабы воздействия: от апокалиптических прогнозов к реальным цифрам</h2><p>Исследования показывают значительный, но не катастрофический потенциал автоматизации. Ученые из Массачусетского технологического института (MIT) с помощью инструмента «Индекс айсберга» смоделировали влияние ИИ на почти 1000 профессий.</p><p>Результаты <a href="https://fortune.com/2025/11/27/mit-report-ai-can-already-replace-nearly-12-of-the-us-workforce/">показывают</a>, что современные системы теоретически могут заменить задачи, эквивалентные 11,7% всей рабочей силы США. Однако авторы подчеркивают, что экономические препятствия, затраты на внедрение и необходимость человеческого контроля сдержат тотальную автоматизацию в обозримом будущем .</p><p>Этот вывод перекликается с настроениями бизнес-лидеров. Опрос Forbes Research 2025 AI Survey <a href="https://www.forbes.ru/svoi-biznes/548036-prognozy-vedusih-kompanij-kak-aktivnoe-vnedrenie-ii-povliaet-na-rynok-truda">демонстрирует</a>, что 94% руководителей по всему миру ожидают сокращения менее 5% рабочих мест в течение следующих двух лет. Более того, 59% полагают, что ИИ в конечном итоге создаст новые профессии, а не ликвидирует существующие.</p><p>В России потенциал автоматизации оценивается примерно в 11 миллионов эквивалентов занятости. Речь идет в первую очередь о перераспределении задач, а не об исчезновении профессий как таковых .</p><h2>Два пути развития: почему будущее за усилением, а не за автоматизацией</h2><p>Аналитики и историки технологий выделяют два принципиально разных сценария развития ИИ в экономике:</p><ul><li>Путь автоматизации. Фокус на полном замещении человеческого труда. Эта концепция, популярная венчурными инвесторами и частью техногигантов, ведет к росту неравенства и потенциальной социальной нестабильности, что подтверждается предыдущими волнами цифровизации и роботизации .</li><li>Путь усиления. Ставка на создание новых задач и инструментов, расширяющих человеческие возможности. ИИ может предоставлять специалистам — от айтишников и учителей до сантехников и электриков — больше возможностей, позволяя браться за более сложные и ценные задачи.</li></ul><p>Текущая практика показывает движение по второму пути. Внедрение ИИ становится корпоративным трендом, но не приводит к массовым чисткам.</p><h2>Новый ландшафт профессий: что происходит на рынке труда</h2><p>Профессии не исчезают массово, но интенсивно трансформируются. Этот процесс имеет несколько четких проявлений:</p><ol><li>Рождение гибридных специализаций. Рынок создает спрос на интеграторов моделей, специалистов по безопасности ИИ, AI-тренеров и промпт-инженеров. Эти профессионалы, обладающие навыками работы с алгоритмами, могут получать на 20% больше, чем их коллеги без такого опыта .</li><li>Перераспределение задач внутри профессий. ИИ берет на себя рутинные операции, освобождая время людей для более сложных задач. В результате меняются должностные инструкции, а не состав персонала. Исследование Microsoft <a href="https://www.pravda.ru/news/science/2292264-ai-impact-on-jobs/">показывает</a>, что ИИ может выполнять до 98% задач переводчика, 91% задач математика и 81% задач журналиста, но это не делает сами профессии ненужными — оно меняет их суть.</li><li>Устойчивость «человеческого» в работе. Даже самые продвинутые алгоритмы сталкиваются с фундаментальными ограничениями. Группа ученых из США и Австрии <a href="https://skillbox.ru/media/management/nas-vseh-zamenit-ii-chto-proishodit-na-rynke-truda-na-samom-dele-i-stoit-li-perezhivat/">объясняет</a> это «вложенностью навыков». Продвинутые профессиональные умения опираются на широкий спектр базовых — логику, математику, эмпатию, анализ рисков, работу в условиях неопределенности. Создать такую многослойную систему в цифровой среде пока невозможно. ИИ не обладает интуицией, ценностями и эмоциональной вовлеченностью.</li></ol><h2>Итоги</h2><p>Самые успешные компании 2025 года — не те, кто массово уволил сотрудников, а те, кто нашел компромисс между эффективностью алгоритмов и живой экспертизой. Машины не забирают работу — они меняют её содержание. Успех в новой реальности зависит от готовности к непрерывному обучению и способности выстраивать эффективное сотрудничество с ИИ, в котором за человеком остаются стратегия, творчество, этическая оценка и конечная ответственность.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как вести себя на собеседовании на системного аналитика и каких вопросов ожидать</title>
      <link>https://tproger.ru/articles/kak-vesti-sebya-na-sobesedovanii-na-sistemnogo-analitika-i-kakih-</link>
      <comments>https://tproger.ru/articles/kak-vesti-sebya-na-sobesedovanii-na-sistemnogo-analitika-i-kakih-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Ольга Пономарева]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-vesti-sebya-na-sobesedovanii-na-sistemnogo-analitika-i-kakih-</guid>
      <description><![CDATA[<p>Как подготовиться к собеседованию на системного аналитика: блоки вопросов (технический, кейсовый, поведенческий) и несколько советов от школы системного анализа.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-vesti-sebya-na-sobesedovanii-na-sistemnogo-analitika-i-kakih-">Как вести себя на собеседовании на системного аналитика и каких вопросов ожидать</a>»</p>]]></description>
      <category><![CDATA[Системный анализ]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Собеседование]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 28 Mar 2026 08:50:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Вы прошли первый фильтр – резюме сработало.</p><p>Теперь предстоит самое важное – показать себя в живом разговоре. Здесь не помогут аккуратные таблицы навыков и выученные формулировки: проверяют не только знания, но и то, как вы мыслите и общаетесь.</p><p>Только не бойтесь!</p><p>Я и моя команда экспертов школы системного анализа провели десятки собеседований с кандидатами. Мы видели, какие ошибки совершают даже сильные специалисты, и какие детали решают исход встречи. В этой статье я расскажу, как представить себя HR-у и будущему руководителю с лучшей стороны – чтобы выбрали именно вас.</p><h2>Перед собеседованием: системная подготовка</h2><p>Подготовка к собеседованию – это уже проявление системного мышления. Вы должны не просто выучить «что отвечать», а понять, как устроен сам процесс интервью. У него, как у любой системы, есть цели, роли и связи.</p><p>Интервьюер хочет снизить риск ошибки найма: понять, подойдете ли вы под задачи и культуру компании. Вы – показать, что умеете анализировать, уточнять и принимать решения.</p><p>Перед встречей я рекомендую сделать короткий анализ контекста:</p><figure><img src="https://media.tproger.ru/user-uploads/135898/2026-02-19/c06a17de-d122-4ce6-86c1-1fed44a7526e.webp" alt="" /></figure><p>Важно! Интервьюер мгновенно чувствует, когда кандидат не изучал компанию. Даже два предложения про продукт показывают, что вы умеете готовиться. Для аналитика это обязательный навык.</p><h2>Во время интервью: как говорить и как слушать</h2><p>Хорошее собеседование системного аналитика похоже одновременно и на прием у психолога, и на экзамен. Вас не просят пересказать теорию – вас испытывают как человека и профессионала в своей специальности.</p><p>Говорите спокойно, без спешки. Если вопрос сложный, сделайте паузу и структурируйте ответ:</p><ol><li>Контекст – «На прошлом проекте мы…»</li><li>Действие – «Я проанализировала процесс и нарисовала схему…»</li><li>Результат – «Это помогло бизнесу сократить время согласования».</li></ol><p>Такой ответ читается как мини-кейс и сразу показывает, что вы мыслите системно. Если вопрос звучит неясно, уточняйте. Например:</p><p>«Правильно ли я понимаю, речь о функциональных требованиях или о взаимодействии с пользователем?»</p><p>Это не слабость – это профессиональное поведение. Интервьюер видит, что вы не боитесь уточнять, а значит, не будете строить систему на догадках. Более того, такие уточнения помогают задать тон разговору и показывают ваше умение управлять коммуникацией. Они формируют доверие: собеседник видит, что вы не просто отвечаете на вопросы, а действительно слушаете и анализируете суть задачи.</p><h2>О чем чаще всего спрашивают</h2><p>На интервью аналитика почти всегда затрагивают эти три блока. Они не существуют отдельно – именно по этим аспектам интервьюер оценивает вашу зрелость как специалиста. Ни один из них не решает исход собеседования в одиночку – важно показать целостное мышление и умение соединять практику, анализ и коммуникацию.</p><h3>Технический</h3><p>На этом этапе интервьюер оценивает, насколько уверенно вы работаете с инструментами системного анализа: UML, BPMN, REST, SQL и другими. Вас могут попросить объяснить, как описать интеграцию CRM с ERP или спроектировать API.</p><h3>Кейсовый</h3><p>Здесь проверяют ваше умение анализировать и структурировать задачи. Интервьюер предложит практическую ситуацию: например, бизнес внезапно меняет требования или заказчик просит добавить новую функцию. HR и ваш будущий руководитель захотят узнать, как вы отреагируете, как сориентируетесь в ситуации, какое решение предложите — и чем это будет аргументировано.</p><p>В данном кейсе, например, следует помнить, что покорное согласие с запросом заказчика — не всегда верное решение. Если есть наилучший вариант — аргументируйте и продвигайте его: так вы покажете, что заинтересованы в конечном результате проекта.</p><p>Кроме того, важно не спешить с решением, а задать уточняющие вопросы, определить проблему и предложить шаги, как ее исследовать и согласовать.</p><h3>Поведенческий</h3><p>Этот блок показывает, как вы реагируете на неопределенность и стресс. Вас спросят о конфликтах, ошибках или сложных коммуникациях в команде. Например: «Как вы действуете, если разработчик не согласен с вашим решением?» Здесь важно показать спокойствие, способность слушать, аргументировать и искать решение, а не победу в споре.</p><p>Вот краткий ориентир:</p><figure><img src="https://media.tproger.ru/user-uploads/135898/2026-02-19/b9ff4102-f2de-4892-a6b3-ec369db2b1c6.webp" alt="" /></figure><h2>Как производить впечатление зрелого аналитика</h2><p>На собеседовании оценивают не только содержание, но и форму вашей речи. Даже простые фразы можно сказать по-разному:</p><p><b>Неверно: </b>«Я всегда правлю требования, если считаю их некорректными.»</p><p><b>Верно:</b> «Если вижу противоречие, я сначала обсуждаю его с заказчиком и фиксирую решение.»</p><p>Во втором случае вы показываете не самоуверенность, а зрелый процесс мышления. Помните, вас слушают не как студента, а как будущего коллегу. Поэтому лучше говорить на языке партнера, а не ученика.</p><p>Важно! Хороший аналитик – это человек, который умеет оставаться логичным даже в неловких ситуациях. На собеседовании это проявляется сильнее, чем в любом тестовом задании.</p><h2>После собеседования: что сделать обязательно</h2><p>Если встреча прошла успешно – поблагодарите интервьюеров. Если нет – все равно поблагодарите и проанализируйте опыт. Это не просто вежливость, а профессиональный подход: вы фиксируете результат итерации и формируете обратную связь, как после ретроспективы проекта. Даже краткое письмо вроде «Спасибо за уделенное время, разговор был полезен» оставит о вас впечатление зрелого специалиста.</p><p>Советую вам сразу после интервью записывать три пункта:</p><ul><li>Какие вопросы вызвали затруднение;</li><li>Что удалось особенно хорошо;</li><li>Что стоит пересмотреть в следующем ответе.</li></ul><p>Такой разбор занимает не больше десяти минут, но дает эффект накопления опыта. Через несколько собеседований вы начнете видеть закономерности: какие темы повторяются, где теряете уверенность, на какие типы вопросов реагируете спокойнее.</p><p>Это позволит не только лучше готовиться, но и понять собственные сильные стороны. Со временем интервью перестают казаться стрессом – превращаются в тренировку аналитического мышления и навык ведения профессионального диалога.</p><h2>Вместо заключения</h2><p>Собеседование – это мини-модель будущей работы. Здесь, как и в проекте, есть цель, участники, артефакты и неопределенность. Если вы умеете уточнять, структурировать и держать разговор логично – вы уже действуете как системный аналитик.</p><p>Я часто повторяю своим студентам: «Не нужно казаться идеальным кандидатом. Достаточно быть тем, кто умеет думать.»</p><p>В следующей, третьей части серии мы разберем, как распознать плохую компанию и не попасть туда, где системный анализ подменяют хаотичными задачами и бесконечными совещаниями.</p>]]></content:encoded>
    </item>
    <item>
      <title>В мой первый рабочий день мне сказали: «Забудь своё имя». Вот как на самом деле устроено IT в Китае</title>
      <link>https://tproger.ru/articles/v-moj-pervyj-rabochij-den-mne-skazali---zabud-svoyo-imya---vot-ka</link>
      <comments>https://tproger.ru/articles/v-moj-pervyj-rabochij-den-mne-skazali---zabud-svoyo-imya---vot-ka?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Artyom Lebedev]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/v-moj-pervyj-rabochij-den-mne-skazali---zabud-svoyo-imya---vot-ka</guid>
      <description><![CDATA[<p>Зарплаты, собеседования, 996, forced ranking и AI-увольнения в китайских техгигантах. Инсайдерский рассказ разработчика, который работал в «дачан» и стартапах.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/v-moj-pervyj-rabochij-den-mne-skazali---zabud-svoyo-imya---vot-ka">В мой первый рабочий день мне сказали: «Забудь своё имя». Вот как на самом деле устроено IT в Китае</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 27 Mar 2026 06:45:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Вчера в Китае умер человек по имени Чжан Сюэфэн (张雪峰). Вы о нём наверняка не слышали, но для китайского интернета это примерно как если бы у вас одновременно ушли популярный блогер и ещё один популярный блогер  — по уровню реакции, не по содержанию. Ему был 41 год. Сердце остановилось после пробежки в офисе — в обеденный перерыв, между утренним стримом и вечерним созвоном.</p><p>Чжан был не айтишник. Он консультировал школьников и их родителей по поступлению в вузы, построил на этом империю с оборотом в сотни миллионов юаней и стал, наверное, самым узнаваемым «учителем» в Китае. Типичный 奋斗逼 (фэньдоу би) — «задрот по жизненному успеху», если переводить мягко, «раб собственных амбиций», если честно. Парень из нищего уезда в Маньчжурии, который вкалывал по 16 часов в сутки, в 2023-м уже попадал в больницу с сердцем, но продолжал. Три дня назад выложил пробежку на 7 км. Вчера — всё.</p><p>Я не из образования. Я из IT. И когда я прочитал эту новость, первая мысль была не «какой ужас», а «ну да, кто следующий». Потому что в китайском IT люди живут точно так же. Так вот — давайте я расскажу, как именно.</p><p>Это был один из китайских IT-гигантов — какой именно, говорить не буду, но вы точно о нём слышали. В первый рабочий день мне сказали: «Выбери себе 花名 (хуамин)». «Цветочное имя», прозвище, которое заменит твоё настоящее имя во всех корпоративных системах. Навсегда. Мой тимлид был «Западный Ветер» (西风). Архитектор — «Одинокий Меч» (孤剑). HR — «Маленькая Фея» (小仙女). Я выбрал что-то из комиксов, потому что мне было 23 и казалось, что это круто.</p><p>Через полгода я понял, что когда архитектор «Одинокий Меч» пишет в DingTalk «[мой ник], твой PR — мусор», это звучит как плохой фанфик. Но система хуамин не причуда. Ты не знаешь, мидл перед тобой или VP, пока не загуглишь его ник во внутренней вики. Ты споришь с «Западным Ветром», а не с «начальником отдела Чжаном». В этом весь смысл.</p><p>Привет, Tproger. Я фулстек из восточного Китая, поработавший в паре «дачан» (大厂, так у нас называют техгигантов) и нескольких стартапах. В России учился 4 года, Mass Effect прошёл на русском раньше, чем на мандарине, а баги комментирую матом — спасибо общаге ИТМО. Работаю на стыке двух IT-миров и хочу рассказать о вещах, которых вы не найдёте ни в одной подборке «Top 10 facts about Chinese tech».</p><h2>Хуамин: когда твой CEO — «Ветер со Свободных Холмов»</h2><p>Система прозвищ распространена повсюду. В ByteDance используют английские имена (один мой бывший коллега, серьёзный бэкенд-архитектор, ходил как «Banana»). В Xiaomi предпочитают номера: основатель Лэй Цзюнь — просто «1 号» (Номер Один). В Huawei в ходу воинские звания и кодовые обозначения проектов.</p><p>Зачем? Три причины, и все не те, что вы подумали:</p><ol><li>Анти-иерархия. Видишь ник «Облачный Журавль» — и не понимаешь, джун это или директор. Порог для того, чтобы написать вопрос или возразить, становится ниже. Теоретически. На практике все всё равно знают, кто есть кто, но ритуал «мы тут все равны» работает как смазка.</li><li>Безопасность. В компании на 250 000 человек утечка реального имени = утечка данных. Хуамин — ещё один слой изоляции.</li><li>Принадлежность. Твой хуамин — это посвящение. Как гильдейский тег в MMORPG. После увольнения хуамин «уходит на пенсию», и никто другой его уже не возьмёт. У Джека Ма хуамин «风清扬» (Фэн Цинъян) — мастер меча из романа Цзинь Юна. Этот ник навечно закреплён.</li></ol><p>Когда я рассказываю это русским коллегам, они смеются. Но подумайте: у вас в компании вы обращаетесь к тимлиду «Дмитрий Сергеевич» или «Дима»? А если бы он был «Тёмный Феникс» — стали бы вы стесняться сказать ему, что его код — отстой?</p><h2>«996» умер. Да здравствует «大小周»</h2><p>О режиме «996» (9 утра — 9 вечера, 6 дней) слышали все. В 2021 году Верховный суд КНР признал его незаконным. Победа? Ну, так себе.</p><p>На смену пришёл «大小周» (да сяо чжоу), «большая-маленькая неделя»: одну неделю работаешь 6 дней, следующую — 5. По бумагам компромисс, а в жизни «маленькая неделя» часто означает «ты работаешь из дома в субботу, просто без камеры».</p><p>Мой обычный день в стартапе в Шэньчжэне (не придумано):</p><ul><li>9:30 — приходишь в офис. Раньше можно, но на тебя посмотрят странно: «зачем пришёл так рано, хочешь выслужиться?»</li><li>10:00 — дейли-стендап. Стоя. Буквально. Многие команды собираются у доски стоя, чтобы никто не затягивал</li><li>12:00-14:00 — обед и «午休» (ушюй, послеобеденный сон). Не шутка. В китайских офисах реально спят после обеда. У кучи разработчиков под столом лежит раскладушка или спальный мешок. В некоторых «дачан» есть отдельные комнаты для сна. Это не лень, а культурная норма тысячелетней давности</li><li>14:00-18:00 — собственно работа. Самое продуктивное окно</li><li>18:00-19:00 — бесплатный ужин в офисе. И вот тут ловушка: еда начинается в 18:00, и если ты уходишь до неё — значит, «ушёл рано». Бесплатная еда — якорь, который держит тебя на месте</li><li>19:00-21:00 — «добровольная» переработка. Кавычки, потому что уходить в 19:00 формально можно, но когда весь опенспейс полон — ты будешь «тем, кто уходит первым». Есть термин «摸鱼» (мо юй, «гладить рыбу») — имитация работы, когда на самом деле сидишь в Douyin</li><li>21:30 — вызываешь DiDi (китайский Uber) домой. Компания оплачивает такси после 21:00. Ещё один «золотой наручник»</li></ul><p>Молодые разработчики всё чаще говорят «躺平» (тан пин, «лежать плашмя»), китайский quiet quitting. Самые радикальные практикуют «摆烂» (бай лань, «гнить на месте») — делать абсолютный минимум. Работодатели в ответ вводят больше метрик. Гонка вооружений, из которой никто не выходит победителем.</p><h2>Собеседования: вход через ад</h2><p>В России, насколько я понимаю, на собесе дают задачку на алгоритмы, говорят о проектах и обсуждают паттерны. В Китае всё масштабнее.</p><p>Фильтр номер ноль — твой вуз. Китайские университеты делятся на категории «985» (топ-39) и «211» (топ-112). Не из «985» — в ByteDance, Tencent, и подобные «大厂» тебя не позовут даже на скрининг. Как если бы в России без диплома МФТИ тебя не рассматривали вообще, без вариантов. Есть жаргон: «学历查三代» — «проверяем образование на три поколения назад». Смотрят вуз, школу и даже результат гаокао (единый экзамен).</p><p>Само интервью:</p><ol><li>3-5 раундов по 60-90 минут каждый. Задачи на уровне LeetCode medium-hard, от руки, на доске или в shared editor без автодополнения</li><li>«Красно-чёрное дерево» как религия. На собесах реально просят реализовать его от руки. Не потому что это нужно на проекте. Потому что «если знаешь — значит, готовился серьёзно». Культурный маркер, а не техническая необходимость</li><li>Системный дизайн для мидлов и выше. «Спроектируй WeChat» — реальный вопрос, который задают с серьёзным лицом</li><li>«八股文» (багувэнь, «восьмичленное сочинение») — шуточное название стандартного набора вопросов: HashMap internals, JVM garbage collection, TCP three-way handshake, Redis persistence. Отсылка к экзамену на чиновника в древнем Китае: формализованный ритуал, где важна не глубина понимания, а каноническая форма ответа</li></ol><p>Одна деталь, которая шокирует: в Китае на собесе часто спрашивают возраст. После 35 лет найти работу в «дачан» практически нереально. Называется «35岁危机» (кризис 35 лет). Не городская легенда — из-за этого 34-летние сеньоры массово уходят в менеджмент, фриланс или открывают кофейню. Я не шучу про кофейню, это буквально мем и реальность одновременно.</p><h2>Стек: знакомый, но в параллельной вселенной</h2><p>Китайские разработчики пишут на тех же языках, но живут в другой экосистеме.</p><p>Фронтенд. Vue значительно популярнее React. Создатель Vue Эван Ю — китаец, документация была на мандарине с первого дня, и этого хватило, чтобы Vue стал стандартом. Ant Design и Element Plus — UI-библиотеки по умолчанию. Ещё есть мини-программы (小程序), приложения внутри WeChat, Alipay, Douyin — отдельная платформа с 400+ млн DAU. Для них нужно учить фреймворки вроде Taro или uni-app. Целый мир, о котором за пределами Китая почти не слышали.</p><p>Бэкенд. Java — абсолютный король, Spring Boot — стандарт. Но есть нюанс: одна из крупных компаний выпустила свой набор Java-библиотек (Guidelines, Druid, Nacos, Sentinel), который фактически стал стандартом для всей индустрии. Go стремительно растёт, особенно в инфраструктурных командах.</p><p>Мобилка — зоопарк. Google Play в Китае не работает. Вместо одного стора — десяток: Huawei AppGallery, Xiaomi Store, Oppo Store, Vivo Store, Tencent MyApp... У каждого свой процесс ревью, свои SDK для пушей, свои специфические баги. Android-разработка в Китае — это тестирование на 20+ устройствах с кастомными прошивками. Если вы думали, что фрагментация Android — это проблема, вы просто не работали на китайском рынке.</p><p>ИИ — свой космос. ChatGPT заблокирован. Вместо него — Tongyi Qianwen, ERNIE, GLM, Doubao. Для кодинга — CodeGeeX, Tongyi Lingma. А в марте 2026 весь Китай сошёл с ума от OpenClaw, open-source ИИ-агента, ради настройки которого тысячи людей стояли в очереди у офиса Tencent. Бабушки. Стояли в очереди. Чтобы настроить ИИ-агента. Не технологический прорыв, а культурный тектонический сдвиг.</p><p>Вместо GitHub — Gitee. 12+ миллионов разработчиков. Куча хороших open-source проектов живёт только там и никогда не попадёт на Hacker News.</p><h2>Зарплаты: большие числа, но контекст решает</h2><p>Примерные зарплаты для Пекина / Шанхая / Шэньчжэня (юаней в месяц, до налогов, 2025-2026):</p><p>Джун (1-2 года опыта): 15 000 — 25 000 ¥, это примерно 190 000 — 315 000 ₽. Скорее всего, стартап с «996» в комплекте.</p><p>Мидл (3-5 лет): 30 000 — 50 000 ¥ (380 000 — 630 000 ₽). Плюс бонусы, итого 14-16 зарплат в год.</p><p>Сеньор (5+ лет): 50 000 — 80 000 ¥ (630 000 — 1 010 000 ₽). Но на горизонте маячит кризис 35 лет, о котором выше.</p><p>Архитект / тимлид: 80 000 — 150 000 ¥ (1 010 000 — 1 900 000 ₽). В «дачан» к этому добавляются RSU, которые могут удвоить общий доход.</p><p>Звучит жирно, но контекст всё портит. Аренда однушки в приличном районе Шанхая — 7 000-12 000 ¥. Ипотека в Пекине — отдельный жанр ужасов.</p><p>Бонусы. В крупных компаниях «базовая» зарплата — только часть дохода. В хороший год могут заплатить 15-18 зарплат, в плохой — 13. Разница для одного разработчика — 100 000+ юаней. И зависит это не только от тебя, а ещё от рейтинга...</p><h2>Forced Ranking: голодные игры в офисе</h2><p>Во многих «дачан» используют принудительное ранжирование. Каждый квартал всю команду раскидывают по категориям:</p><ul><li>3.75+ — «звезда». Повышение, бонус, RSU. Процентов 10 команды</li><li>3.5 — «хороший солдат». Норма. Большинство</li><li>3.25 и ниже — «красная зона». Два таких квартала подряд — увольнение</li></ul><p>Фишка в том, что если в команде 10 человек и все работали нормально — кто-то всё равно получит 3.25. По квоте. Коллеги превращаются в конкурентов. Для этого есть слово: «内卷» (нэйцзюань, involution) — бессмысленная гиперконкуренция, где все бегут быстрее, но финишная черта отъезжает вместе с тобой.</p><p>Нэйцзюань — наверное, главное слово китайского IT в 2020-х. Все перерабатывают не потому, что работы много, а потому что все вокруг перерабатывают. Замкнутый круг.</p><h2>AI взорвался — и «дачан» сошли с ума</h2><p>Всё, что выше — это фундамент. Дальше про то, что творится прямо сейчас, потому что ИИ-бум в Китае — это уже не тренд, а землетрясение.</p><p>Фронтенд режут. Не сокращают — режут. В начале 2026-го одна крупная e-commerce платформа объявила: фронтенд-отдел упраздняется, все вливаются в «AI-фулстек-команду». Отдельной фронтенд-структуры больше нет. И это не единичная история. По моим знакомым в нескольких «дачан» — чистых фронтенд-вакансий стало процентов на 40 меньше за год. Хотят «фулстека с AI-навыками». Кто не вписался — добро пожаловать на рынок, где таких уже сотни.</p><p>Увольнения под соусом «оптимизация через ИИ». Формулировка у всех одинаковая: «AI позволяет маленьким командам делать то, что раньше делали большие». Красиво, пока ты не тот, кого «оптимизировали». Волна прошла по всем крупным конторам на стыке 2025-2026. Причём летят не только джуны. Мидлы, отдельные сеньоры — тоже. В одной компании, где у меня есть знакомые, за квартал вырезали целые направления. На бумаге — «реструктуризация». В курилке все всё понимают.</p><p>OPC — новое модное слово. В каждом втором китайском IT-чате сейчас обсуждают «OPC» — One Person Company, «компания из одного человека». Один разработчик + набор ИИ-агентов = полноценная команда. Местные власти уже раздают гранты: в Шэньчжэне до 2 миллионов юаней субсидий, в Шанхае строят целые «OPC-парки». Для корпораций это читается однозначно: «Зачем нам десять человек, если один с Cursor и парой агентов закроет больше половины задач?»</p><p>А оставшимся — не легче. Вот что реально злит. Тех, кто пережил сокращения, не похлопали по плечу и не отпустили работать спокойно. На них повесили задачи уволенных коллег. Плюс новая обязанность: «внедряй AI в свой процесс и отчитывайся». В спринтах появились KPI по «AI-утилизации» — какой процент кода написан с помощью ИИ, сколько задач автоматизировано. Не дотянул — минус в рейтинг. В тот самый рейтинг, из-за которого тебя могут выкинуть через квартал.</p><p>Сидишь, тянешь работу за троих, параллельно разбираешься с промпт-инжинирингом, а над головой всё тот же forced ranking. Только острее. Потому что теперь рядом с тобой стоит штука, которая не болеет, не просит 16-ю зарплату и не уходит в декрет.</p><p>В общем чате один бывший коллега написал: «以前怕被年轻人替代，现在怕被一条prompt替代» — «Раньше боялись, что заменят молодые. Теперь боимся, что заменит промпт».</p><h2>Вещи, которые существуют только в китайском IT</h2><p>Раскладушка под столом — часть офисной мебели. В некоторых компаниях выдают стандартные спальные мешки с логотипом. Звучит дико, но после двухчасового 午休 к этому привыкаешь за неделю.</p><p>Красные конверты (红包, хунбао). Перед лунным Новым годом начальство раздаёт денежные подарки. Размер зависит от твоего рейтинга. Ещё один повод не попадать в «красную зону».</p><p>WeChat = всё. Рабочие чаты, код-ревью, согласование дизайнов, заказ обеда, вызов такси, перевод денег коллеге, оплата в магазине. Представьте, что Telegram, Сбер, Jira и Delivery Club слили в одно приложение. Вот это WeChat.</p><p>«Программист-крестьянин» (码农, манун). Так китайские разработчики называют сами себя. Буквально: «кодовый крестьянин». По духу похоже на «тыжпрограммист», только с привкусом горечи.</p><p>Внутренние объявления в формате TikTok. В одной из крупных компаний важные решения иногда оформляют как 60-секундные вертикальные видео в рабочем мессенджере. Серьёзные архитектурные решения. В вертикальном видео. Я до сих пор не уверен, как к этому относиться.</p><h2>Советы тем, кто смотрит на восток</h2><p>Учите мандарин. Хотя бы базу. Английский в китайском IT знают хуже, чем в русском — это я вам говорю как человек, который видел обе стороны. Даже 你好 и 谢谢 в переписке радикально меняют к вам отношение.</p><p>Разберитесь в китайских ИИ-инструментах. DeepSeek, Tongyi, ERNIE — не клоны ChatGPT. У них свои сильные стороны, особенно при работе с китайскоязычными данными.</p><p>Готовьтесь к скорости. Китайские заказчики ждут MVP за две недели. «Нам нужно подумать об архитектуре» — фразу, которую не любят слышать.</p><p>Не игнорируйте Gitee и китайский open-source. Там попадаются отличные проекты, которые никогда не доберутся до первой страницы Hacker News.</p><p>Помните про разницу в коммуникации. «Да» не всегда значит «да». Молчание — не согласие. «Посмотрим» — обычно значит «нет». Это не попытка обмануть, а другая модель общения. К ней нужно просто привыкнуть.</p><p><i>Мой хуамин давно «ушёл на пенсию». Но каждый раз, когда русские коллеги спрашивают «а как в Китае?», я понимаю, что двух миров, которые я знаю, не хватит на один ответ. Если хотите продолжения — пишите в комментариях: разберу найм в конкретных «дачан», расскажу, как OpenClaw меняет фриланс, или объясню, почему в Китае фронтендер после 30 — уже «старик».</i></p>]]></content:encoded>
    </item>
    <item>
      <title>Почему в IT хейтят эйчаров — и что сами эйчары об этом думают</title>
      <link>https://tproger.ru/articles/pochemu-v-it-hejtyat-ejcharov---i-chto-sami-ejchary-ob-etom-dumayut-2</link>
      <comments>https://tproger.ru/articles/pochemu-v-it-hejtyat-ejcharov---i-chto-sami-ejchary-ob-etom-dumayut-2?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дима Дмитриев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/pochemu-v-it-hejtyat-ejcharov---i-chto-sami-ejchary-ob-etom-dumayut-2</guid>
      <description><![CDATA[<p>Почему разработчики хейтят HR и что происходит в найме на самом деле. Разбираем рассинхрон требований, ошибки рекрутеров и скрытые проблемы IT-подбора.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/pochemu-v-it-hejtyat-ejcharov---i-chto-sami-ejchary-ob-etom-dumayut-2">Почему в IT хейтят эйчаров — и что сами эйчары об этом думают</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Собеседование]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 19 Mar 2026 05:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Рассказываем, как устроен наём изнутри и почему рассинхрон убивает процесс ещё до того, как вы попали на собеседование.</p><h2>Откуда берётся хейт</h2><p>Ещё год назад в IT набирали всех подряд — рынок рос, люди были нужны срочно, сейчас компании оптимизируют штат и выбирают лучших, но нанимать лучших по-прежнему не получается. И дело здесь не в рекрутерах.</p><p>Главная проблема — рассинхрон. Техлид ищет специалиста под конкретную задачу, HR цепляется за стандартный набор навыков из заявки и приводит формально подходящих кандидатов, заказчик всех бракует. Через несколько месяцев берут наименее неподходящего — он не справляется, его увольняют, а цикл повторяется.</p><p>Именно из этого и вырастают странные фильтры, отчётность по числу встреч вместо результата и репутация эйчаров как людей, которые ничего не понимают.</p><h2>Что происходит на стороне нанимателя</h2><p>Чаще всего рассинхрон возникает из-за недосказанности — привычки работать в своём контуре.</p><p><b>Несоответствие опыту </b></p><p>Нанимающий менеджер пять–семь лет работает в одном отделе, где Python-разработчик по умолчанию сам пишет тесты — для менеджера это базовое требование, очевидное настолько, что он не вносит его в заявку. HR приводит сильных специалистов — менеджер отказывает всем и искренне не понимает, в чём проблема.</p><p><b>Похожая история с зарплатами </b></p><p>Команда работает пять лет, индексации были минимальные. Менеджер ищет сеньора с семилетним опытом на 200 тысяч — потому что столько получает его текущий отдел. На рынке такие специалисты стоят 300–500 тысяч. Менеджер не верит аналитике и предлагает поискать через агентство.</p><p><b>Непонятные критерии</b></p><p>Ещё сложнее ситуации, когда менеджер не может назвать реальные критерии отбора. Он заворачивает кандидатов с идеальными резюме, а HR не понимает что не так. Иногда всё проще: заказчик хочет закрыть позицию конкретным человеком, но сказать об этом открыто не может — и бракует остальных, пока не проведёт нужного. Отдельная история — кривые заявки: менеджер копирует чужую вакансию, название должности и функционал не соответствуют ни рынку, ни реальной задаче. Все ищут одно, а нужно другое.</p><p>По опыту рекрутеров, такое происходит примерно в каждом пятом найме. У некоторых заказчиков — в каждом первом.</p><h2>Почему рекрутер стал детективом</h2><p>Параллельно с проблемами нанимателей вырос отдельный рынок кандидатов, которые рисуют опыт. В индустрии их называют “волчарами” — по названию движения, где такие практики продают как курсы.</p><p>Одни делают это грубо и палятся быстро. Другие готовятся основательно и вскрываются только через несколько месяцев после выхода на работу: первое время им помогает кто-то извне, потом схема разваливается. Для компании это потеря бюджета и времени, для самого кандидата — несколько шагов назад в карьере.</p><p>Опытный рекрутер проверяет это через конкретику: спрашивает, какой проект делал кандидат, на каком стеке, как строилась команда, кто был руководителем. Рынок не настолько большой — при желании можно связаться со знакомыми из упомянутой компании и уточнить детали. Ещё один маркер — закрытые чаты, где собираются те, кто покупает схемы накрутки опыта. Присутствие кандидата в таком чате уже становится основанием для отказа, особенно если чат платный.</p><p>Отдельная история — кандидаты, которые проходят собеседование с ИИ-суфлёром. Ставят микрофон, включают голосовой ввод и прописывают нейросети промт: “Отвечай за меня на вопросы”. Это видно: у любой модели есть задержка, ответы получаются формально правильными, но без подробностей, когда вопросы идут быстро один за другим в формате блиц-звонка по видео, суфлёр просто не успевает. В западных компаниях уже появился стандартный приём: попросить кандидата ответить на вопрос с закрытыми глазами. Пора наверное тоже попробовать.</p><h2>Где косячит сам рекрутер</h2><p>Рекрутеры тоже ошибаются, и чаще всего по банальным причинам.</p><p><b>Самое типичное — формализм.</b> Рекрутер видит резюме, которое закрывает требования по списку, и отправляет кандидата к заказчику без проверки главного: адекватен ли человек вообще. Или наоборот — пытается продать кандидата с пятью годами опыта, когда заказчик просил семь.</p><p><b>Иногда рекрутер слишком верит в кандидата</b> и в скрининге сглаживает острые углы — человек что-то сделал не так, но очень понравился, и в отчёте это замалчивается. Заказчик тратит время, а претензия всё равно прилетает рекрутменту.</p><p><b>Есть и системная проблема:</b> когда горят KPI, рекрутер закрывает глаза на красные флаги и отправляет кандидата дальше — вдруг получится. Не получается, а когда обман вскрывается на финальном этапе, отвечает за это рекрутмент.</p><p>Был конкретный случай: рекрутер долго общался с кандидатом. Вроде норм, но решил, что человек слабоват: не горят глаза, не умеет себя продать. Отказали. Через месяц этот же кандидат вышел на эту же должность, но через другое агентство. Оказалось, что наш рекрутер просто не задал уточняющих вопросов по стеку, а кандидат был интровертом и сам не похвастался. Мы потеряли деньги, заказчик потерял месяц времени. А всё потому, что рекрутер решил поиграть в психолога вместо того, чтобы проверить харды.</p><h2>Сколько стоит не договориться</h2><p>Банковская оценка стоимости найма одного сотрудника — 500–900 тысяч рублей, для проблемного найма это не отражает реальности.</p><p>Механика потерь выглядит так. Внутренние рекрутеры месяц ищут кандидатов — все получают отказ, причины непонятны. Подключают агентство — ещё месяц, результат тот же. Позицию начинают вести несколько рекрутеров параллельно, накапливаются часы на отчёты и перепроверки. Тем временем в команде не хватает рук: спринты растягиваются, копится технический долг. В крайних случаях деньги на автоматизацию уже выделены, людей под неё уже сократили, а разработчиков для внедрения так и не наняли — работу делать некому.</p><p>Наём с ошибкой в профиле или в коммуникации занимает в два-три раза больше времени и обходится в три-четыре раза дороже обычного. Если считать потери от простоя бизнеса — суммы становятся совсем другими.</p><h2>Как это чинится</h2><p>Самый быстрый способ выйти из тупика — поговорить с заказчиком 15 минут голосом. Переписка растягивается на недели и не передаёт нюансов, разговор вскрывает реальные требования за один звонок.</p><p>Для внутренних HR важнее всего выстроить доверие: заказчик не должен воспринимать рекрутера как внутреннего контролёра. Когда доверие есть, заказчик приходит и говорит открыто, что ему нужно — пусть даже это звучит странно. Это всегда лучше, чем молчаливые отказы и угадывание критериев.</p><p>Когда причина отказов понятна, проблему можно решать. Иногда за нежеланием рассматривать определённых кандидатов стоит конкретный негативный опыт в прошлом или дискомфорт менеджера, которому неловко руководить более старшим коллегой. Такие вещи разбираются в разговоре за 10 минут.</p><p>Бывают и совсем нестандартные ситуации. Был заказчик с иррациональными фильтрами по национальности — молча отклонял кандидатов без объяснений. При этом нужный стек на рынке был сконцентрирован именно среди тех, кого он отклонял. Вышли на разговор, заказчик признал, что это личные установки, не связанные с работой. Читать мораль не стали — перестроили коммуникацию так, чтобы часть отбора проходила через его подчинённых. Работа пошла.</p><p>Рекрутер, который разбирается в задаче бизнеса, а не просто показывает резюме — это другой уровень работы. Понять, зачем бизнесу этот человек, какую конкретную проблему он закрывает — и только потом искать.</p><p>Centicore Group специализируется на подборе IT-специалистов для продуктовых и аутсорс-команд. Компания работает с позициями любого уровня сложности — от джунов до архитекторов и CTO.</p>]]></content:encoded>
    </item>
    <item>
      <title>Selectel впервые проведет ежегодную конференцию «MLечный путь» в Москве</title>
      <link>https://tproger.ru/articles/selectel-vpervye-provedet-ezhegodnuyu-konferenciyu--mlechnyj-put--v</link>
      <comments>https://tproger.ru/articles/selectel-vpervye-provedet-ezhegodnuyu-konferenciyu--mlechnyj-put--v?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Вика Овсянникова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/selectel-vpervye-provedet-ezhegodnuyu-konferenciyu--mlechnyj-put--v</guid>
      <description><![CDATA[<p>22 апреля в Москве: бизнес- и технический треки по внедрению ИИ. Кейсы, архитектуры, экономика. Участие бесплатное, регистрация уже открыта!</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/selectel-vpervye-provedet-ezhegodnuyu-konferenciyu--mlechnyj-put--v">Selectel впервые проведет ежегодную конференцию «MLечный путь» в Москве</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Конференции]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Инфраструктура]]></category>
      <category><![CDATA[Hardware]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 18 Mar 2026 05:10:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>22 апреля в московском конгресс-центре Connect Space пройдет ежегодная конференция по искусственному интеллекту <a href="https://tprg.ru/aioz">«MLечный путь»</a> от облачного провайдера Selectel.</p><p>Конференция будет полезна всем, кто работает с ИИ. Владельцам бизнеса и топ-менеджерам — CEO, CIO, CTO, CDO, которые хотят получить измеримый результат от внедрения технологий, а также инженерам, архитекторам и DevOps-специалистам, которым предстоит интегрировать модели в существующую инфраструктуру.</p><h2>О чем расскажут на конференции</h2><p>Программа разделена на два параллельных потока, чтобы участники могли выбрать трек под свои интересы и задачи.</p><h3>Для бизнес-аудитории: окупаемость, риски и стратегия</h3><p>Спикеры расскажут, как компании принимают решения о внедрении ИИ и переводят проекты из разряда экспериментов в работающие инструменты. Ключевые темы:</p><ul><li>Финансы и риски: сколько реально стоит внедрение ИИ-агентов и с какими подводными камнями можно столкнуться.</li><li>Дорожная карта: как составить роадмап внедрения ИИ на базе платформенных решений, чтобы не потерять деньги и время.</li><li>Управление знаниями: как использовать большие языковые модели, чтобы перестать терять экспертизу внутри компании.</li><li>Масштабирование: как построить агентскую платформу и поставить внедрение ИИ-проектов на поток.</li><li>Хайп или реальность: способен ли вайбкодинг заменить классические инструменты разработки?</li></ul><h3>Для технических специалистов: железо, код и безопасность</h3><p>В техническом треке — инженерная реальность и особенности работы с вероятностными системами. Участников ждут доклады про:</p><ul><li>Инфраструктуру: как выбрать серверное железо под разные ИИ-нагрузки и почему инференс классических моделей и LLM — это два разных мира, которые приходится сочетать на одной платформе.</li><li>Разработку: чем SDLC для вероятностных систем отличается от классического и почему «просто написать код» больше недостаточно.</li><li>Безопасность: как обеспечить безопасное использование генеративных технологий в рабочих процессах.</li></ul><h2>Что еще будет</h2><p>На площадке конференции развернется технологическая выставка с интерактивными зонами, где можно будет познакомиться с продуктами Selectel и партнерами компании. Для тех, кто не сможет приехать, организуют онлайн-трансляцию.</p><p>Участие бесплатное, но нужна регистрация. С подробной программой можно ознакомиться <a href="https://tprg.ru/aioz" rel="nofollow">на сайте мероприятия</a>. Количество мест ограничено.</p><p>Реклама. Рекламодатель: АО «Селектел» ИНН 7810962785, erid: 2W5zFGwFjd3</p>]]></content:encoded>
    </item>
    <item>
      <title>Студент с искусственным интеллектом, как обезьяна с гранатой</title>
      <link>https://tproger.ru/articles/student-s-iskusstvennym-intellektom--kak-obezyana-s-granatoj</link>
      <comments>https://tproger.ru/articles/student-s-iskusstvennym-intellektom--kak-obezyana-s-granatoj?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Милена]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/student-s-iskusstvennym-intellektom--kak-obezyana-s-granatoj</guid>
      <description><![CDATA[<p>Феномен стремительного проникновения ИИ в образовательную среду и противоречивые последствия этого процесса. Как современные студенты, не обладая достаточной медиаграмотностью и критическим мышлением, используют искусственный интеллект вслепую — для написания курсовых, подготовки к экзаменам и даже для подмены собственного обучения?</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/student-s-iskusstvennym-intellektom--kak-obezyana-s-granatoj">Студент с искусственным интеллектом, как обезьяна с гранатой</a>»</p>]]></description>
      <category><![CDATA[Алгоритмы и структуры данных]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 17 Mar 2026 07:00:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Привет! Я отношусь именно к тому поколению, которое выросло без телефонов, мы ценим живое общение, но мы первыми освоили ВКонтакте и YouTube, мы смотрели видео на кассетах, но стали теми, кто захватил tiktok, мы достигаторы, как миллениалы, но как зуммеры умеем отстаивать личные границы, уже в подростковом возрасте стали активно использовать новые технологии, но мы помним мир без интернета. Мы застали 2 эпохи и забрали от каждой лучшее. В интернете нас зовут «Зилениалы». Технологии искусственного интеллекта появились в нашей жизни в достаточно осознанном возрасте, когда мы уже учились в ВУЗе.</p><p>Почему студент с искусственным интеллектом, как обезьяна с гранатой? Как обезьяна, случайно оказавшаяся с оружием в руках, студент без глубокого понимания принципов работы искусственного интеллекта может запустить процессы, последствия которых будут непредсказуемы и необратимы.</p><p>Главная мысль здесь не в том, что студент «глуп» или «опасен сам по себе», а в том, что мощный инструмент в руках человека без системного понимания превращает ошибку в масштабируемое событие. Если раньше незнание ограничивалось локальной неудачей — неверно решённой задачей, плохим кодом, неработающим проектом, — то с ИИ цена непонимания резко возрастает. Искусственный интеллект способен автоматизировать, ускорять, тиражировать и легитимизировать решения. Поэтому ошибка студента уже не остаётся частной: она может быть встроена в код, в продукт, в учебный процесс, в управленческое решение и потом многократно воспроизводиться, оставаясь внешне «умной» и убедительной.</p><p>Ещё глубже этот тезис можно раскрыть через проблему снятия когнитивной ответственности. ИИ удобен тем, что снимает с человека часть интеллектуальной нагрузки. Но вместе с нагрузкой он нередко снимает и привычку сомневаться. Студент начинает не исследовать, а принимать; не проверять, а компилировать; не строить понимание, а собирать правдоподобные ответы.</p><p>К сожалению не всем присущ осмысленный подход к применению технологий. Всему виной человеческая лень. Именно она толкает студентов на то, чтобы не разбираться в материале, а пытаться переложить всю работу на алгоритмы. Вместо того чтобы использовать нейросети как инструмент для анализа, проверки гипотез или поиска новых идей, многие начинают превращать его в «костыль», подменяющий собственное мышление.</p><p>Непредсказуемость последствий связана не только с техническими сбоями, но и с тем, что студент может не видеть социальных эффектов своих действий: утечки данных, дискриминационных выводов, фабрикации источников, ложных рекомендаций, академического мошенничества, автоматизации вредных практик. То есть речь не о том, что «ИИ плох», а о том, что без культуры ответственности любая умная система становится ускорителем хаоса.</p><figure><img src="https://media.tproger.ru/user-uploads/136344/2026-03-12/7d2c9ffb-1016-43a7-8d44-834d0eb8ced2.webp" alt="" /></figure><h3>Новый лучший друг каждого студента?</h3><p>С момента появления искусственного интеллекта в нашей жизни подход ко многим вопросам изменился. Я замечаю, что все реже пользуюсь поиском и все чаще задаю вопросы ChatGPT, все реже выбираю реальную фотосъемку и все чаще создаю новую аватарку в нейросети, все реже читаю длинные статьи от начала до конца и все чаще прошу нейросеть коротко пересказать их суть и выделить главное в формате саммари.Кажется, что я такая не одна, ведь по опросу коммуникационного агентства FAVES Communications, проведённому в октябре 2025 года, почти 52% россиян сегодня ориентируются на ответы искусственного интеллекта при поиске через «Яндекс» и Google, причем 43% признают, что доверяют полученной информации и советам (<a href="https://companies.rbc.ru/news/SKTSzmOrWi/42-rossiyan-doveryayut-otvetam-nejrosetej-v-poiskovikah/">РБК, Публикация компании FAVES Communications</a>)</p><p>Сложно переоценить влияние искусственного интеллекта на нашу жизнь и, конечно, это не могло не оказать воздействия на сферу образования. Сейчас школьники и студенты активно используют искусственный интеллект для своей учёбы. Теперь не нужны ни знания, ни ГДЗ, ни Google, ни Википедия. Чтобы написать доклад или сочинение нужно вбить запрос в нейросеть и сразу получить готовый документ с главами и оформлением по ГОСТ. Не нужно умеет решать примеры, можно сфоткать задачу на листке, вбить её в искусственный интеллект и за секунды получить верный ответ. Современные школьники студенты делают через искусственный интеллект практически всё задания, домашки, доклады, даже пишут курсовые и дипломы.</p><figure><img src="https://media.tproger.ru/user-uploads/136344/2026-03-12/29712b72-add3-4b0d-afcf-d1f9aa09c889.webp" alt="" /></figure><p>Конечно, в связи с ростом искусственного интеллекта меняются и появляются технологии и отслеживающие его. Сдать курсовую или диплом полностью сгенерированные нейросетью не так просто. Антиплагиат теперь не только отмечает текст который вы взяли из других источников, но и ставит красный значок на вашей работе, если находятся сгенерированные элементы. За это можно получить наказание в виде незачета или отчисления. Есть только один момент. Каким образом он это определяет пока не ясно и неоднократно были случаи того что этот «чудесный антиплагиат» ставил знак сгенерированного и подозрительного документа даже на полностью написанные человеком тексты.</p><p>Меры борьбы с искусственным интеллектом приняли и в Высшей Школы Экономики, где студент может использовать нейросети в своих работах, но ему необходимо оправдать это использование, то есть написать в каких моментах и с какой целью в данной работе был применен искусственный интеллект. А если комиссия или преподаватели посчитают текст за сгенерированным и не увидят объяснение причин, то работу аннулируют и не будут проверять.</p><p>Почему университеты вводят такие ограничения? Не потому, что боятся технологий, а потому, что защищают сам смысл образования. Для вуза важно не только то, какой текст сдал студент, но и то, кто именно произвёл мысль, аргументацию и вывод.</p><p>Генеративный ИИ разрушает эту прозрачность: работа может выглядеть сильной, хотя реальный вклад автора в неё минимален. Поэтому в ВШЭ запрещают не искусственный интеллект как таковой, а его скрытое использование. Формальное основание — академические нормы университета: ИИ можно применять, но только с обязательным раскрытием, где, как и зачем он использовался. Если же преподаватель видит признаки машинной генерации, а студент этого не указал, работа может быть аннулирована, потому что в глазах университета это уже не технологическая помощь, а нарушение принципа самостоятельности и академической честности.</p><h3>А есть ли плюсы?</h3><p>Эксперты подчеркивают, что синергия человека и искусственного интеллекта способна значительно повысить качество как принимаемых решений, так и творческой деятельности. Интеграция современных инструментов в повседневную работу человека может не только оптимизировать процессы принятия решений, но и открыть новые горизонты для решений сложных задач, тем самым увеличивая общую производительность (<a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC11515803/#:~:text=integration%20can%20enhance%20collaborative%20efforts%2C,problems%2C%20and%20enhanced%20overall%20productivity">Redefining Cognitive Domains in the Era of ChatGPT: A Comprehensive Analysis of Artificial Intelligence’s Influence and Future Implications - PMC</a>).</p><p>Есть свои плюсы и в сфере образования. При правильном подходе LLM могут стать незаменимыми персональными помощниками и наставниками. В сфере обучения и саморазвития ИИ способен адаптироваться к индивидуальному уровню каждого учащегося, оперативно предоставляя обратную связь и подбирая релевантные материалы, что способствует более эффективному усвоению знаний (<a href="https://www.mdpi.com/2075-4698/15/1/6#:~:text=nature%20of%20AI%20in%20cognitive,analyse%20and%20evaluate%20information%20effectively">AI Tools in Society: Impacts on Cognitive Offloading and the Future of Critical Thinking</a>)</p><h3>А что насчет преподавателей?</h3><p>Искусственный интеллект меняет сферу образования изнутри, меняются все процессы. Нейросети упрощают работу педагогов, избавляют их рутинных задач и бюрократии и оставляют время и ресурс на самое важное — живое взаимодействие с учениками, развитие критического мышления и творческого потенциала каждого ребёнка. Меняется и наполнение занятий, учителя и преподаватели меняют формат уроков и дополняют их интерактивными элементами при помощи нейросетей.</p><p>Нейросети действительно могут снимать часть рутины, но не в магическом режиме «нажал кнопку — и школа работает сама». По данным UNESCO, в вузах и образовании ИИ уже используют для подготовки занятий, поддержки оценивания и административных задач; Microsoft и OpenAI в своих материалах для педагогов тоже прямо называют типовые сценарии: черновики планов уроков, квизы, рубрики, варианты обратной связи, адаптацию материалов под разный уровень учеников.</p><p>Нейросети упрощают работу педагога не потому, что «учат вместо него», а потому, что берут на себя часть черновой подготовки. Учитель может за несколько минут получить не готовый идеальный продукт, а основу: план урока, варианты заданий для сильных и слабых учеников, тест с ответами, рубрикатор оценивания, шаблон письма родителям, конспект по новой теме или набор интерактивных упражнений. Меняется и само наполнение занятий: вместо одного стандартного объяснения для всех преподаватель может быстро собрать несколько версий материала — короткую, углублённую, игровую, дискуссионную или встроить в урок квиз, кейс, ролевой сценарий или симуляцию.</p><p>При этом, большинство образовательных организаций остаются консервативными в вопросах новых технологий и не готовы уступать свои рабочие задачи роботам и искусственному интеллекту.</p><figure><img src="https://media.tproger.ru/user-uploads/136344/2026-03-12/b302f0cf-92d2-4907-87d7-6bc1edcaf011.webp" alt="" /></figure><h3>Риски и опасности</h3><p>Мой младший брат освоил нейросети раньше, пока учился в школе и страшно представить какое поколение вырастет из них. Его ровесники и он сам вообще перестали делать домашнее задание и задачи на уроках сами. А зачем, если есть искусственный интеллект, который решит все за секунду?</p><p>Но вместе с удобством пришла и новая проблема — молодые люди всё меньше напрягают мозг, всё чаще доверяют машине и всё реже испытывают радость собственного открытия. Учителя жалуются, что детям трудно формулировать мысли, обосновывать ответы и рассуждать без цифровой подсказки. Замглавы администрации президента Максим Орешкин<a href="https://tass.ru/obschestvo/26295693"> отмечает</a>, что традиционные домашние задания для школьников практически утратили смысл из-за развития технологий искусственного интеллекта. Парадокс в том, что искусственный интеллект, созданный для расширения возможностей человека, постепенно лишает его практики мышления, если не научить пользоваться им осознанно и с умом.</p><p>У подрастающего поколения навыки самостоятельного решения задач не формируются: дети копируют ответы ИИ для домашних заданий, теряя практику логики и анализа. Без цифровой грамотности они слепо верят моделям, рискуя дезинформацией, а привязанность к виртуальным собеседникам тормозит эмпатию и живое общение.</p><p>10 лет назад ГДЗ были в основном складом готовых ответов. Ребёнок брал уже существующее решение, переписывал его и чаще всего оставлял следы: одинаковые формулировки, типовой ход решения, несоответствие своему обычному уровню, привязка к конкретному учебнику или номеру задания. Учитель хотя бы примерно понимал, с чем имеет дело: перед ним списанный ответ.</p><p>На уровне мотивации почти ничего не изменилось: и десять лет назад, и сейчас часть школьников хочет не понять материал, а как можно быстрее сдать работу. ИИ — это уже не склад, а машина по производству правдоподобия. Он не просто даёт готовое решение, а подстраивает его под запрос: может переписать другим стилем, упростить, усложнить, сделать «как будто писал восьмиклассник», добавить ошибки, изменить структуру, даже сымитировать рассуждение. То есть если ГДЗ помогали списать, то ИИ помогает скрыть сам факт списывания.</p><p>Вполне возможно, что массовое использование ИИ студентами и школьниками — это не столько бунт против учёбы, сколько адаптация к системе неадекватной нагрузки? Когда образование превращается в конвейер дедлайнов, отчётов, презентаций и формальных заданий, ученик начинает оптимизировать не мышление, а выживание. В этом смысле нейросеть становится не источником проблемы, а самым удобным ответом на неё. Она позволяет быстро производить тот объём учебного продукта, который система требует, но не успевает осмыслять. ИИ здесь выступает как зеркало: он показывает, сколько в современном образовании осталось настоящего понимания, а сколько — ритуальной занятости.</p><p>Пессимистический прогноз предупреждает, что в течение ближайших десяти лет неконтролируемое и чрезмерное использование LLM может привести к постепенному ослаблению некоторых когнитивных функций у людей. Основной риск – это «когнитивная лень» и утрата навыков вследствие постоянного облегчающего воздействия ИИ, когда человек привыкает получать готовые решения без усилий. Исследователи уже фиксируют тревожные тенденции: чрезмерное доверие результатам, выданным ИИ, способно притуплять критическое восприятие и аналитику,  высказывается обеспокоенность по поводу сужения кругозора и творческого мышления.</p><p>В начале 2025 года в <a href="https://time.com/7295195/ai-chatgpt-google-learning-school/">Media Lab Массачусетского технологического института было проведено исследование</a>, в рамках которого студенты были разделены на три группы и выполняли задание по написанию серии коротких эссе. Первая группа выполняла работу самостоятельно, вторая использовала поисковую систему Google, а третья – языковую модель ChatGPT. В процессе работы проводилась запись электроэнцефалограммы (ЭЭГ) каждого участника.</p><p>Анализ данных, полученных на ограниченной выборке, выявил, что участники, использовавшие ChatGPT, продемонстрировали минимальную мозговую активность, наихудшие результаты по лингвистическим и поведенческим показателям, а также выраженную тенденцию к снижению когнитивной нагрузки по мере написания каждого последующего эссе. При повторном выполнении задания без использования искусственного интеллекта, участники демонстрировали ухудшение памяти относительно ранее написанных текстов и снижение активности ритмов, что свидетельствует об ослаблении глубокой памяти.</p><p>В противоположность этому, студенты, работавшие без использования искусственного интеллекта, демонстрировали повышенную нейронную активность и удовлетворение от процесса. У них наблюдалась активация областей головного мозга, отвечающих за творческое мышление, процессы запоминания и семантическую обработку информации.</p><p>У третьей группы лиц было зафиксировано формирование так называемого когнитивного долга – накопившегося дефицита глубокого обучения, который негативно влияет на способность к критическому анализу и повышает восприимчивость к манипуляциям и поддающимся стереотипным убеждениям.</p><p>Получается, что большинство новых технологий направлены на, чтобы сделать нашу жизнь проще, но из-за этого мы становимся ленивее и страдает наш мозг, творческое мышление и когнитивные функции.</p><h3>Этические и правовые аспекты</h3><p>Технологии уже радикально меняют учебный процесс, а вот нормы, правила и культура обращения с ними заметно отстают. С одной стороны, искусственный интеллект  обещает персонализированное обучение, снижение нагрузки на преподавателей и расширение доступа к качественному контенту, с другой — обостряет старые проблемы академической честности, неравенства и защиты данных и параллельно рождает новые типы злоупотреблений, вроде «делегирования» всего процесса обучения машине.</p><p>Особое внимание следует уделить академической добросовестности и набирающей обороты тенденции «цифрового плагиата». Работы, созданные с использованием генеративных моделей, формально представляются уникальными, однако они не отражают ни трудозатрат, ни глубокого понимания автора, что обесценивает саму концепцию оценивания как способа проверки усвоения учебного материала. В ответ на это образовательные учреждения принимают различные меры: от прямых запретов и попыток обнаружения текстов, созданных искусственным интеллектом, до более продуманного подхода, при котором использование нейросетей интегрируется в учебные задания как допустимый инструмент, а критерием оценки становится не сам факт применения ИИ, а уровень критического осмысления и личный вклад обучающегося.</p><p>Правовое регулирование в данной сфере пока носит фрагментарный характер, особенно в Российской Федерации. Специального законодательства, которое бы целенаправленно регулировало использование ИИ именно в образовании, в настоящее время не существует. Поэтому применяются существующие правовые нормы: Федеральный закон «Об образовании», законодательство о персональных данных, нормы об авторском праве и отдельные нормативные акты, связанные с национальной стратегией развития искусственного интеллекта до 2030 года.</p><p>Это приводит к тому, что многие виды деятельности фактически подпадают под действие законодательства (например, сбор и анализ учебной статистики платформами ИИ или генерация учебных материалов), однако участники образовательного процесса не в полной мере осознают свои права и обязанности, особенно в случаях ошибок, допущенных алгоритмами, или утечек конфиденциальных данных.</p><p>На стыке этических и правовых аспектов постепенно формируется ключевая идея: нейросети не упраздняют роль преподавателя и обучающегося, а значительно повышают ответственность за использование технологий. Если рассматривать ИИ исключительно как инструмент для ускорения текущих процессов, система образования рискует усугубить существующие недостатки и несправедливости, просто в более автоматизированном и менее явном формате.</p><h3>Вывод</h3><p>В фокусе всей дискуссии об искусственном интеллекте в образовании — не технологии, а человек и качество обучения. Нейросети одновременно усиливают лучшие практики (персонализацию, доступность, автоматизацию рутины) и обостряют слабые места системы — неравенство, академическую нечестность, зависимость от готовых ответов и уязвимость персональных данных.</p><p>По моему мнению важно использовать искусственный интеллект с умом, не подменять им свое мышление, а использовать как новый ресурс, который помогает мыслить и обучаться быстрее. Было бы ошибкой впадать и в крайности и демонизировать инструмент. Калькулятор не убил математику, а поисковые системы не уничтожили исследовательское мышление. Искусственный интеллект — это ресурс, и, как любой ресурс, он усиливает то, что уже есть. Если есть мышление — он ускоряет его. Если мышления нет — он маскирует его отсутствие, причём временно. Настоящий вызов не в том, чтобы запретить студентам пользоваться ИИ или разрешить без ограничений. Вызов в том, чтобы научить работать с ним так, как работает хороший специалист: задавать правильные вопросы, проверять ответы, спорить с машиной, а не слепо ей доверять. Не отдавать мышление на аутсорс, а использовать новый инструмент для того, чтобы мыслить глубже и быстрее.</p><p>Главный вывод: искусственный интеллект в школе и вузе должен работать как инструмент развития мышления, а не как сервис по обходу усилий и ответственности. Главное, что надо понять — использовать новые технологии нужно осознанно, использовать искусственный интеллект, как помощник, а не замену собственным мозгам.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как программисту строить карьерный трек, если компании перестали нанимать в штат?</title>
      <link>https://tproger.ru/articles/kak-programmistu-stroit-karernyj-trek--esli-kompanii-perestali</link>
      <comments>https://tproger.ru/articles/kak-programmistu-stroit-karernyj-trek--esli-kompanii-perestali?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дима Дмитриев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-programmistu-stroit-karernyj-trek--esli-kompanii-perestali</guid>
      <description><![CDATA[<p>Почему компании отказываются от штатного найма разработчиков и как программисту выстроить карьеру через аутстаффинг, команды и консалтинг.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-programmistu-stroit-karernyj-trek--esli-kompanii-perestali">Как программисту строить карьерный трек, если компании перестали нанимать в штат?</a>»</p>]]></description>
      <category><![CDATA[Организация разработки]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 03 Mar 2026 09:30:53 GMT</pubDate>
      <content:encoded><![CDATA[<p>Программисты пострадали сильнее других: их вакансий стало <a href="https://www.cnews.ru/news/top/2025-07-18_rossii_bolshe_ne_nuzhny_programmisty">на 31% меньше</a>. Конкуренция за места выросла почти вдвое: с 7–8 резюме на вакансию до <a href="https://habr.com/ru/articles/941304/">почти 13 в начале 2025-го</a>. Казалось бы, рынок сдувается. Но одновременно 64% российских работодателей <a href="https://iz.ru/1841647/2025-02-20/bolee-50-oprosennyh-rabotodatelei-v-rossii-soobsili-o-deficite-it-specialistov">говорят о нехватке специалистов</a> middle и senior, и 16% ощущают её «очень остро». А сектор привлечения внешних специалистов тем временем <a href="https://proglib.io/p/itogi-it-rynka-2025-stagnaciya-zarplat-krizis-nayma-i-prognoz-na-2026-god-2025-12-29">генерирует уже около 40% всех IT-вакансий</a>.</p><h2>Почему штат стал дорогим</h2><p>Реальная <a href="https://www.klerk.ru/materials/2025-10-06/skolko-stoit-chas-raboty-programmista/">стоимость штатного разработчика</a> — это зарплата, увеличенная в 2–3 раза. Зависит от компании и включает в себя налоги, страховые взносы, ДМС, HR, офис и административную нагрузку. Backend-разработчик с зарплатой 220 000 ₽ обходится компании примерно в 565 000 ₽ в месяц. Заморозка проекта на два месяца — это 1,1 млн рублей на «пустых» зарплатах, ошибка найма — ещё 3–6 зарплатных циклов на повторный поиск.</p><p>В последние пару лет выросла <a href="https://elbrusboot.camp/blog/it-rynok-2026-siekriety-naima-i-5-stratieghii-chtoby-nie-ostatsia-biez-raboty/">фискальная нагрузка</a>: часть льготных тарифов страховых взносов для МСБ отменяется, ставка поднимается с 15% до 30% в части зарплат выше МРОТ. Каждый следующий разработчик в штате дорожает по регуляторным причинам.</p><p>Отдельный вопрос — скорость. Закрытие вакансии middle-разработчика занимает в среднем 58 дней, senior — 73 дня (с учетом отработки на предыдущем месте). При этом каждый третий кандидат <a href="https://codingteam.ru/blog/autsorsing-razrabotchikov-v-2025-kogda-vigodnee-na">отказывается от оффера</a> на этапе согласования: нашел предложение лучше, не сошлись по зарплате или формату работы. Через внешнего партнёра готовый специалист появляется за 24–72 часа, и если не подошёл, заменить его можно без процедур трудового кодекса.</p><h2>Какие модели пришли на замену</h2><p><b>Специалист в аренду.</b> Компания привлекает конкретного разработчика через партнёра. Формально он в штате партнёра, фактически работает под управлением заказчика. Скорость старта — 24–72 часа. Оптимально, когда нужно быстро закрыть нишевую специализацию: 1С, iOS, DevOps. Минус — нет командной синергии, вовлечённость ниже штатной.</p><p><b>Выделенная команда.</b> Партнёр формирует полноценную команду под проект, на нём административная нагрузка, команда работает как штатная. В среднем такое сотрудничество <a href="https://skillstaff.ru/blog/kak-zhivet-i-razvivaetsya-it-autstaffing-v-rossii/">длится около полутора лет</a>. Пример: e-commerce перед праздниками добавил команду на четыре месяца — мобилки, backend, QA, тимлид, — а после сезона сократил до поддержки.</p><p>Крупные финтех-компании идут дальше, в том числе передают целые направления мобильной разработки, от проектирования архитектуры до поддержки после релиза. Партнёр несёт ответственность за конечный продукт, а не за отдельные задачи по ТЗ.</p><p><b>Технологический консалтинг.</b> Партнёр анализирует потребности бизнеса, предлагает стек и методологию, строит процессы, интегрирует свою команду с внутренней и передаёт знания. Такие запросы актуальны для крупного бизнеса, где простая аренда ресурсов не покрывает масштаб задач.</p><p><b>Гибридная модель.</b> Ядро — штатные специалисты: архитекторы, тимлиды, ключевые разработчики; расширение под пики и проекты за счёт внешней команды. Опять же хорошо подходит для больших компаний, и уже активно реализуется на рынке.</p><h2>Как строить карьеру с учётом этих моделей</h2><figure><img src="https://media.tproger.ru/user-uploads/134134/2026-03-02/90de1b00-d325-4488-a7f8-349ac4358a9e.webp" alt="" /></figure><h2>Советы, которые помогут адаптироваться вне зависимости от выбора карьерного пути</h2><p><b>Считайте бизнес-ценность, а не технологии.</b> Не «Я знаю React», а «Я сократил время загрузки страниц, что дало +3% конверсии». В штате и в выделенной команде одинаково ценят тех, кто влияет на метрики.</p><p><b>Разберитесь в экономике моделей.</b> Если вы middle или senior — вы можете работать в штате, в выделенной команде, через технологический консалтинг или в гибридной схеме. У каждого формата своя экономика: разная ставка, разные условия, разные переговорные позиции. Изучите партнёров тех компаний, в которые вы хотели бы попасть.</p><p><b>Стройте публичный след между проектами.</b> В штатной работе вас знают коллеги. В проектной занятости каждый контракт начинается с нуля, поэтому GitHub-портфолио, статьи и выступления становятся способом отличиться и доказать свою экспертизу.</p><p><b>Осваивайте то, что пересекается с вашим стеком.</b> Рынок смещается к гибридным ролям: backend-разработчик с пониманием DevOps, аналитик с навыком автоматизации. Чистая специализация уступает пересечению компетенций.</p><h2>Чего ждать</h2><p>Объём штатного найма продолжит уменьшаться, этот год принесёт новые реструктуризации и сокращения в IT-отделах. Одновременно провайдеры выделенных команд и специалистов ожидают роста доходов на 19–24% в ближайшие три года.</p><p>Есть <a href="https://www.cnews.ru/news/top/2025-07-18_rossii_bolshe_ne_nuzhny_programmisty" rel="nofollow">мнение</a>, что ИИ ускоряет этот сдвиг, и нейросети позволяют на 30–50% сократить бюджет на типовых IT-позициях. Тот же объём задач закрывается меньшим количеством людей более высокого грейда. Спрос смещается туда, где автоматизация пока буксует: архитекторы, DevOps, ML-инженеры, специалисты по безопасности.</p><p>Рынок взрослеет и со стороны провайдеров: агентства начинают конкурировать не только зарплатой, но и условиями — соцпакет, обучение, менторинг становятся нормой, а не исключением.</p><p>Мы в Centicore Group выстраиваем выделенные центры компетенций, где специалисты работают как часть продуктовой команды заказчика. Если вы хотите работать над интересными проектами в среде, где ценят экспертизу, — посмотрите наши <a href="https://centicore.ru/career/">открытые позиции</a>.</p>]]></content:encoded>
    </item>
  </channel>
</rss>