<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>ItFox Web</title><generator>teletype.in</generator><description><![CDATA[ItFox Web]]></description><image><url>https://img1.teletype.in/files/84/15/84154eb6-4138-410e-be3a-933418f10812.png</url><title>ItFox Web</title><link>https://teletype.in/@itfox</link></image><link>https://teletype.in/@itfox?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/itfox?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/itfox?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Fri, 23 Oct 2026 19:59:26 GMT</pubDate><lastBuildDate>Fri, 23 Oct 2026 19:59:26 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@itfox/HtWKB4U4_e-</guid><link>https://teletype.in/@itfox/HtWKB4U4_e-?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox</link><comments>https://teletype.in/@itfox/HtWKB4U4_e-?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox#comments</comments><dc:creator>itfox</dc:creator><title>Смена подрядчика: как не потерять продукт</title><pubDate>Thu, 22 Oct 2026 07:04:26 GMT</pubDate><description><![CDATA[Или история о том, как бизнес получает работающую систему, которой не может управлять.]]></description><content:encoded><![CDATA[
  <p id="816K">Или история о том, как бизнес получает работающую систему, которой не может управлять.</p>
  <p id="J30k">Представьте: продукт годами делает одна команда. Всё работает, релизы выходят, бизнес растёт. А потом команда уходит — и выясняется, что никто не знает, какая версия кода сейчас у клиентов, как выпускается обновление, какие интеграции критичны и что сломается, если нажать не ту кнопку. Формально у компании есть код, репозиторий, серверы и договор. Фактически — система, которой она не управляет.</p>
  <p id="3NCh">Знакомая картина? Мы собрали опыт технического директора, менеджера проектов и специалиста по тестированию АЙТИФОКС — людей, которые принимали IT-продукты у предыдущих команд и видели, где обычно рвётся.</p>
  <p id="p0qF"><strong>Что разобрали в статье</strong></p>
  <p id="oZpO">Когда пора менять подрядчика, а когда ещё можно исправить ситуацию. Как понять, что продукт замедляется по мере роста, знания закреплены за людьми, а не за командой, а обновления выпускаются со страхом. И почему решение стоит принимать не по сумме уже потраченного, а по прогнозу.</p>
  <p id="BNkC">Что запросить при передаче проекта. Код, инфраструктуру, доступы, документацию, фоновые процессы, историю решений. Отдельно — про ADR: зачем нужен журнал архитектурных решений и почему это не документ для галочки.</p>
  <p id="fyIV">Как провести диагностику IT-продукта. С чего начинать, как проверять нагрузку, когда переписывать компонент, а когда сохранять существующее решение. И почему «красивый код» — не то же самое, что «код, который решает задачу бизнеса».</p>
  <p id="T4mb">Какие сценарии и интеграции проверить в первую очередь. Включая историю о том, как подтверждение отправки на экране не равно доставке данных во внешний сервис — и чем это обернулось на важном мероприятии.</p>
  <p id="zSta">Как выстроить приёмку, чтобы отчётность не съедала спринт. С примером из проекта, где на приведение документов к требованиям ГОСТ ушло около 4–5 дней, а после двух спринтов переделок стало меньше.</p>
  <p id="1JDc"><strong>Отдельный интересный момент</strong></p>
  <p id="uMME">В статье есть раздел «Что не стоит считать гарантией». Это не оговорка на всякий случай, а важная часть: часть выводов в таких историях — экспертные наблюдения и иллюстрации, а не измеренные факты. Мы отдельно проговорили, где заканчивается опыт и начинаются предположения, чтобы не выдать желаемое за доказанное. Внутри — десять ограничений, которые полезно держать в голове, когда читаешь любую историю про смену подрядчика.</p>
  <p id="Tik6"><strong>Что в итоге</strong></p>
  <p id="9zgQ">Смена подрядчика — это управляемый переход, а не лотерея. Чем раньше бизнес получает доступы, документацию, понимание критических сценариев и возможность безопасно выпускать изменения, тем меньше он зависит от конкретной команды.</p>
  <p id="mYk3">В статье — чек-лист заказчика и разбор реального кейса: как принимали продукт после двух предыдущих команд, что из этого вышло и почему иногда достаточно хирургического вмешательства, а не полной замены.</p>
  <p id="3qSG">Полный текст — на сайте: <a href="https://itfox-web.ru/ru/blog/kak-smenit-podriadchika-po-razrabotke-i-ne-poteriat-kontrol-nad-it-pro?utm_source=teletype&utm_medium=article&utm_campaign=change_contractor_2026" target="_blank">https://itfox-web.ru/ru/blog/kak-smenit-podriadchika-po-razrabotke-i-ne-poteriat-kontrol-nad-it-pro?utm_source=teletype&amp;utm_medium=article&amp;utm_campaign=change_contractor_2026</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@itfox/hVS08gIIBwN</guid><link>https://teletype.in/@itfox/hVS08gIIBwN?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox</link><comments>https://teletype.in/@itfox/hVS08gIIBwN?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox#comments</comments><dc:creator>itfox</dc:creator><title>Фальшивые билеты и VIP-зоны без контроля: как мы сделали СКУД для стадиона на 45 000 мест</title><pubDate>Wed, 07 Oct 2026 13:08:57 GMT</pubDate><description><![CDATA[Или история о том, как офлайн-режим и переход на SQLite + Drift превратили контроль доступа в управляемые потоки.]]></description><content:encoded><![CDATA[
  <p id="eYom"><em>Или история о том, как офлайн-режим и переход на SQLite + Drift превратили контроль доступа в управляемые потоки.</em></p>
  <p id="juJD">Представьте: стадион в день матча. Десятки тысяч болельщиков идут к входам. Контролёры вручную проверяют билеты — кто-то пытается пройти по копии, кто-то не на свой сектор. В VIP-зоны набиваются люди, которым там быть не положено. А если человек зашёл и вышел — никто не знает, вернулся он или нет. Старая система медленная, аналитики нет.</p>
  <p id="Hcgl">Заказчик хотел не просто «пускать по билетам», а управлять потоками: понимать, кто зашёл, куда, вышел ли, сколько людей в секторе. В реальном времени. И чтобы работало даже там, где нет стационарных турникетов и интернета.</p>
  <p id="d1iF"><strong>Что мы сделали</strong></p>
  <p id="qrso">За 4 месяца команда АЙТИФОКС сделала облачную СКУД. Сервер — на Python, приложение — на Flutter: одна кодовая база для телефона и браузера. Сначала MVP, потом тесты на реальной нагрузке. Когда билетов стало 45 000, на устройствах Xiaomi начали зависать клавиатуры, а сервер не справлялся с запросами. Перевели локальное хранилище на SQLite + Drift, ускорили бэкенд.</p>
  <p id="y3d6"><strong>Самое сложное</strong></p>
  <p id="NQOf">Не написать систему, а заставить её работать в реальных условиях стадиона.</p>
  <p id="sD56">Первое — объём данных. 45 000 билетов на клиенте, зависания интерфейса на Xiaomi. Перепробовали простые хранилища — не подошли: одни не работают в браузере, другие устарели. Поставили полноценную SQLite с Drift, добавили миграции и индексы.</p>
  <p id="MiHg">Второе — офлайн. Стадион — место, где интернет может упасть в самый неподходящий момент. Сделали офлайн-валидацию: билеты загружаются заранее, проходы фиксируются локально, синхронизация — когда появляется связь. Отдельно протестировали сценарий «большой стадион + полное отсутствие интернета».</p>
  <p id="IorX">Третье — бэкенд. SQLAlchemy создавал лишнюю нагрузку. Частично заменили на прямые запросы к базе, переработали индексы. Сервер перестал задыхаться.</p>
  <p id="VKI5"><strong>Что получилось</strong></p>
  <p id="mj6O">В нагрузочных тестах система обработала 50 000 билетов и 224 852 прохода за один прогон — это больше реальной вместимости стадиона (45 000) и в 2,5 раза больше, чем даёт один матч. Подтверждённый порог — 200 RPS на тяжёлых операциях, около 40 проходов/с. Ошибок — ноль.</p>
  <p id="qGK6"><strong>Было:</strong> копии билетов проходили, VIP-зоны без контроля, аналитики нет.<br /> <strong>Стало:</strong> система проверяет билет, зону и повторный проход; контролёр видит всё на экране; работает даже без интернета; данные о потоках — в реальном времени.</p>
  <p id="OjVx"><strong>Отдельный интересный момент</strong></p>
  <p id="gZ40">40 проходов/с для текущего конфига достаточно, но без запаса на пик. На стадионе с плотной пиковой нагрузкой и большим числом турникетов — как «Фишт» с его 108 турникетами на 43 000 мест — нужен другой потолок. Зафиксировали ориентир 140 проходов/с и продолжаем оптимизацию.</p>
  <p id="3Z5m"><strong>Что дальше</strong></p>
  <p id="dejJ">Опыт с офлайн-валидацией, локальной БД на клиенте и работой под реальную нагрузку пригодится везде, где контроль доступа нужно делать автономным: курорты, фестивали, транспорт, промышленные объекты.</p>
  <p id="6o46">Полный разбор кейса — с деталями архитектуры, нагрузочными тестами и таблицей результатов — читайте на сайте: <a href="https://itfox-web.ru/ru/cases/oblachnaia-skud-dlia-stadiona-krylia-sovetov-kak-my-sdelali-sistemu-ko?utm_source=teletype&utm_medium=article&utm_campaign=skud_case" target="_blank">https://itfox-web.ru/ru/cases/oblachnaia-skud-dlia-stadiona-krylia-sovetov-kak-my-sdelali-sistemu-ko?utm_source=teletype&amp;utm_medium=article&amp;utm_campaign=skud_case</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@itfox/lhc-9gxye9q</guid><link>https://teletype.in/@itfox/lhc-9gxye9q?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox</link><comments>https://teletype.in/@itfox/lhc-9gxye9q?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox#comments</comments><dc:creator>itfox</dc:creator><title>Концерты собрали 306 млрд — а зрителей больше не стало. Что не так с рынком event и при чём тут автоматизация</title><pubDate>Fri, 25 Sep 2026 06:46:16 GMT</pubDate><description><![CDATA[Вместо вступления: три вопроса, которые нам задают каждый день]]></description><content:encoded><![CDATA[
  <p id="qwqL">Вместо вступления: три вопроса, которые нам задают каждый день</p>
  <p id="QCk3">Последние месяцы я слышу одно и то же от организаторов, промоутеров и директоров площадок:</p>
  <p id="u4EX">«Рынок же растёт? Почему тогда маржа падает?»<br />«Мы что, уже обязаны внедрять CRM и аналитику? Или можно пока по старинке?»<br />«Как понять, где именно мы теряем деньги — и сколько стоит это починить?»</p>
  <p id="Pwys">Долгое время я отвечал каждому индивидуально, пока не понял: проблема не в уникальности запросов, а в том, что рынок перенасыщен мифами о концертном бизнесе. Одни думают, что рост оборота автоматически означает рост прибыли. Другие — что достаточно продавать больше билетов, и всё само заработает.</p>
  <p id="HVUF">Поэтому мы сели и разобрали публичные данные, отраслевые публикации и нормативку — без воды, только цифры и реальные примеры. Если вы сомневаетесь, пора ли вам считать экономику зрителя, а не только кассу концерта — этот текст для вас.</p>
  <p id="ZbuQ"><strong>Часть 1. Что происходит на рынке на самом деле</strong></p>
  <p id="WQ2l">В 2025 году рынок офлайн-развлечений достиг 306 млрд ₽ и вырос на 28% год к году. Звучит отлично. Но билетов продали 439 млн штук — всего на 2% больше, чем годом ранее, и на 13% меньше, чем в 2019-м.</p>
  <p id="84Ei">Деньги растут быстрее билетов. Значит, рост оборота сам по себе не говорит ни о росте спроса, ни о маржинальности отдельного события.</p>
  <p id="3679">Главный драйвер — не аудитория, а средняя цена билета. Можно поднять чек и показать красивый оборот, но одновременно убить экономику события гонорарами, арендой, продакшном и маркетингом.</p>
  <p id="2lzE"><strong>Главный вывод 2025 года: рост рынка ≠ рост эффективности каждого его участника.</strong></p>
  <p id="HBfU"><strong>Часть 2. 2026-й: единого сценария больше нет</strong></p>
  <p id="j0Xo">Первые данные 2026 года показывают странную картину. У Ticketland в январе–мае:</p>
  <p id="s7CP">— культурный сегмент: оборот на уровне прошлого года, билетов −6%;<br />— концерты: оборот +2%, билетов −4%;<br />— фестивали: оборот −4%, билетов −9%.</p>
  <p id="1WXS">При этом другие крупные операторы отчитываются о росте. То есть сильные артисты и бренды продолжают расти, а средний сегмент уходит в минус по загрузке и стоимости привлечения.</p>
  <p id="5V5E">Смотреть только на оборот уже бессмысленно. Нужно считать: билеты в штуках, средний чек, долю поздних продаж, стоимость проданного билета, возвраты, загрузку и повторные покупки.</p>
  <p id="YQuo"><strong>Часть 3. Билет — это не вся экономика</strong></p>
  <p id="lVWd">Билет — только первая транзакция со зрителем. Дальше вокруг него выстраивается совсем другая модель:</p>
  <p id="Sz5R">билет → VIP → F&amp;B → мерч → партнёрские интеграции → данные → повторная покупка.</p>
  <p id="TUPD">И вопрос уже не «сколько мы собрали на кассе?», а «какова полная ценность зрителя для события и следующих продаж?»</p>
  <p id="5xR5"><strong>Часть 4. 8 точек, где event-бизнес теряет маржу</strong></p>
  <p id="07Kf">Мы выделили основные зоны потерь:</p>
  <p id="4s2j">— пустые места;<br />— поздние продажи;<br />— неверный выбор города;<br />— слабая маркетинговая аналитика;<br />— отсутствие CRM;<br />— очереди;<br />— возвраты;<br />— мошенничество и серый resale.</p>
  <p id="I91o">Показательный пример — пустое место. В отчётности это просто «стоимость непроданного билета». В реальности:</p>
  <p id="HVqM">потеря = билет + F&amp;B + мерч + вероятность повторной покупки × маржа + ценность данных.</p>
  <p id="Bv4d">Это расчётная модель, а не статистика рынка. Но она показывает главное: недозагрузка обходится дороже, чем видно в кассовом отчёте.</p>
  <p id="tsrP"><strong>Часть 5. Миф: «нам рано думать об автоматизации»</strong></p>
  <p id="ZibP">Многие считают: автоматизация — это для гигантов. На самом деле всё наоборот.</p>
  <p id="lPpy">Базовый цифровой контур организатора выглядит так:</p>
  <p id="hAdY">P&amp;L события → CRM → UTM-разметка → post-event отчёт → BI продаж.</p>
  <p id="owuu">Это не «нейросети ради нейросетей». Это способ увидеть, где именно вы теряете деньги. Дальше — сегментация, автоматические коммуникации, NPS. И только потом — прогноз спроса, динамическое ценообразование и антифрод.</p>
  <p id="vDyY">Правильный вопрос к любому AI-проекту: не «какую нейросеть внедрить?», а «какую потерю в рублях мы хотим сократить и каким KPI докажем эффект?»</p>
  <p id="3EFm"><strong>Часть 6. Что будет до 2028 года</strong></p>
  <p id="z7tV">Мы смотрим на прогноз как на сценарий, а не как на обещание линейного роста. Пять тенденций:</p>
  <ol id="cVU7">
    <li id="EMbV">Рынок может расти в деньгах, но не все игроки — в прибыли.</li>
    <li id="Q1rM">Сильные артисты и фестивальные бренды концентрируют спрос.</li>
    <li id="l8wo">Средний сегмент — под наибольшим давлением.</li>
    <li id="yorc">Билетные операторы продолжат борьбу за данные о зрителях.</li>
    <li id="llxj">Организаторы без CRM и аналитики будут каждый раз заново покупать доступ к аудитории.</li>
  </ol>
  <p id="Ce2Z"><strong>Итог: главный принцип</strong></p>
  <p id="jDyF">High-load, CRM, аналитика, автоматизация — всё это нужно не тогда, когда вы достигли магического числа. А тогда, когда текущая система перестаёт давать бизнесу расти.</p>
  <p id="IJLe">Правильный порядок: измерить → найти узкие места → определить требования → выбрать решение → протестировать → масштабировать.</p>
  <p id="zOXN">И первый вопрос должен звучать не «пора ли нам внедрять AI?», а «где именно сейчас ограничение и какое решение поможет его убрать?»</p>
  <p id="AUWI">Мы собрали всё это в одном исследовании — с методологией, расчётными моделями и дорожной картой цифровизации на 12 месяцев.</p>
  <p id="iW6l">Читать исследование: <a href="https://itfox-web.ru/ru/blog/kontsertnaia-industriia-rossii-v-2025-2026-godakh?utm_source=teletype&utm_medium=article&utm_campaign=event_research" target="_blank">https://itfox-web.ru/ru/blog/kontsertnaia-industriia-rossii-v-2025-2026-godakh?utm_source=teletype&amp;utm_medium=article&amp;utm_campaign=event_research</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@itfox/14uoEKY-yKC</guid><link>https://teletype.in/@itfox/14uoEKY-yKC?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox</link><comments>https://teletype.in/@itfox/14uoEKY-yKC?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox#comments</comments><dc:creator>itfox</dc:creator><title>High‑load не для гигантов: когда пора задуматься и сколько это стоит — честный разбор на кейсах</title><pubDate>Fri, 11 Sep 2026 07:04:01 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/af/d7/afd7df9e-9347-421b-913f-ded93f8a78a8.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/c1/d3/c1d35fde-af42-4c46-9755-0e94bcf4dfd7.jpeg"></img>Мы не Яндекс, но сайт всё равно тормозит. Что делать?]]></description><content:encoded><![CDATA[
  <figure id="EWy8" class="m_original">
    <img src="https://img1.teletype.in/files/c1/d3/c1d35fde-af42-4c46-9755-0e94bcf4dfd7.jpeg" width="1536" />
  </figure>
  <p id="LB4T"><strong>Мы не Яндекс, но сайт всё равно тормозит. Что делать?</strong></p>
  <h2 id="VyLl"><strong>Вместо вступления: три вопроса, которые нам задают каждый день</strong></h2>
  <p id="vYS4">Последние полгода я слышу одно и то же от владельцев бизнеса, техдиректоров и продакт‑менеджеров:</p>
  <p id="bUHj"><em>«Нам точно нужна высоконагруженная архитектура? Мы же не маркетплейс с миллионами посетителей…» «А сколько это будет стоить? Хотя бы примерно, чтобы понять, потянем ли мы» «И как понять, что мы уже “high‑load”, а не просто “чуть‑чуть тормозим”?»</em></p>
  <p id="aBh3">Долгое время я отвечал каждому индивидуально, пока не понял: проблема не в уникальности запросов, а в том, что рынок перенасыщен мифами о high‑load. Одни думают, что это удел гигантов, другие — что достаточно нанять пару разработчиков и всё само заработает.</p>
  <p id="Cbbb">Поэтому я сел и написал этот текст — без воды, только факты, цифры и реальные примеры из нашей практики в АЙТИФОКС. Если вы сомневаетесь, нужна ли вам сложная архитектура, — эта статья для вас.</p>
  <h2 id="XWpY"><strong>Часть 1. Что такое high‑load на самом деле (спойлер: это не про RPS)</strong></h2>
  <p id="l3iX">Сразу расставим точки над i: <strong>универсального значения RPS (запросов в секунду), после которого система автоматически становится высоконагруженной, не существует.</strong></p>
  <p id="PmHl">В одном проекте проблемы начинаются при 500 RPS из‑за тяжёлых операций с базой данных, а в другом — при 10 000 RPS всё летает. Поэтому мы в АЙТИФОКС смотрим на совокупность параметров:</p>
  <ul id="NpmV">
    <li id="huaF">количество и характер запросов;</li>
    <li id="zwvv">объём обрабатываемых данных;</li>
    <li id="rUUF">время ответа системы;</li>
    <li id="gmFq">нагрузка на базу данных;</li>
    <li id="WRel">количество внешних интеграций;</li>
    <li id="Ta7M">пиковые нагрузки;</li>
    <li id="4lBL">требования к доступности;</li>
    <li id="WIt9">возможность масштабирования;</li>
    <li id="HLBG">влияние отказа одного компонента на остальные.</li>
  </ul>
  <p id="JnEL"><strong>Простой критерий:</strong> high‑load — это состояние, когда один из этих параметров становится узким местом и требует специальных архитектурных решений, чтобы бизнес не страдал.</p>
  <h2 id="v9c7"><strong>Часть 2. 5 явных признаков, что ваша архитектура уже «на пределе»</strong></h2>
  <p id="RNL3">Если вы узнаёте хотя бы один пункт из этого списка — пора действовать.</p>
  <h3 id="2V2y"><strong>1. Самые важные операции начинают тормозить</strong></h3>
  <p id="RazY">Не обязательно вся система. Может тормозить оформление заказа, поиск, формирование отчёта, загрузка большого массива данных или синхронизация с внешней системой.</p>
  <p id="WJiT"><strong>Пример из практики:</strong> Инвестиционная платформа, где страницы грузились по 20–60 секунд. После переработки критичных запросов к БД и API время сократилось до 200–500 мс — ускорение в 50+ раз.</p>
  <h3 id="s1XL"><strong>2. Пиковая нагрузка регулярно превращается в ЧП</strong></h3>
  <p id="aZeP">Распродажи, массовые рассылки, старт продаж билетов — вы знаете о них за месяц, но всё равно готовитесь к коллапсу. Если рост нагрузки воспринимается как чрезвычайная ситуация, а не как рядовое событие — архитектура не готова.</p>
  <h3 id="sIF1"><strong>3. Одна тяжёлая операция влияет на всю систему</strong></h3>
  <p id="HwsO">Пример: формирование большого отчёта нагружает базу так, что обычные действия пользователей начинают тормозить. Это значит, что процессы недостаточно изолированы.</p>
  <p id="4Qfy">Решения:</p>
  <ul id="Kxym">
    <li id="ZHfz">разделить операции;</li>
    <li id="pbe5">поставить тяжёлые задачи в очередь;</li>
    <li id="C8aQ">использовать кэширование;</li>
    <li id="YLsP">вынести ресурсоёмкие задачи в отдельные сервисы.</li>
  </ul>
  <h3 id="uN9O"><strong>4. Объём данных становится проблемой сам по себе</strong></h3>
  <p id="gnzt">RPS — не единственный показатель. В нашем проекте Proxy API один запрос содержал 200–300 МБ данных и сотни тысяч сущностей. Обрабатывать это через legacy‑ядро было рискованно, поэтому мы сделали отдельный high‑load слой на gRPC.</p>
  <h3 id="PRIS"><strong>5. Рост бизнеса требует всё больше ручного вмешательства</strong></h3>
  <p id="4J9P">Если при росте каталога, числа клиентов или интеграций вы постоянно вручную добавляете ресурсы и правите конфиги — система плохо масштабируется. Правильная архитектура должна позволять наращивать мощность отдельных частей без переделки всего продукта.</p>
  <h2 id="siyF"><strong>Часть 3. Мифы о high‑load: почему микросервисы — не панацея</strong></h2>
  <p id="XIKW">Многие думают: «У нас проблемы с нагрузкой — надо переходить на микросервисы». Это заблуждение.</p>
  <p id="5hnL">Микросервисы — это всего лишь инструмент, и он подходит не всем. Они полезны, когда:</p>
  <ul id="CVO3">
    <li id="b4Mo">нужно масштабировать разные части независимо;</li>
    <li id="TVoY">требуется изолировать критичные процессы;</li>
    <li id="E9CY">вы работаете с большим количеством внешних интеграций;</li>
    <li id="PSTJ">сбой одного компонента не должен обрушить всё.</li>
  </ul>
  <p id="BzRH">Но у них есть обратная сторона: инфраструктура, мониторинг, тестирование и поддержка становятся заметно сложнее.</p>
  <p id="gY2U">В большинстве проектов мы начинали с <strong>оптимизации базы данных, добавления индексов и кэширования</strong> — это давало 80% прироста без сложной архитектуры.</p>
  <p id="x6gu"><strong>Реальный пример:</strong> интернет‑магазин «УютСтрой» с каталогом на 180 000 товаров и синхронизацией с 1С. Мы не переписывали монолит, а вынесли обмен с 1С в отдельный сервис с очередью RabbitMQ. Время обновления каталога сократилось с <strong>суток до 15 минут</strong> — ускорение в 96 раз.</p>
  <h2 id="ouVy"><strong>Часть 4. Сколько это стоит? Реальные ориентиры</strong></h2>
  <p id="E3Kn">Самый частый вопрос — цена. И здесь я буду честен: <strong>каждый случай уникален</strong>, но мы подготовили ориентиры, чтобы вы понимали порядок цифр.</p>
  <figure id="9dbH" class="m_original">
    <img src="https://img2.teletype.in/files/d1/9c/d19cd0c0-8df5-4ab9-8697-4aac1291dcb3.png" width="1536" />
  </figure>
  <p id="XExy">Важно: два проекта с одинаковым количеством пользователей могут отличаться в разы из‑за характера операций, объёма данных и требований к инфраструктуре.</p>
  <figure id="1aQQ" class="m_original">
    <img src="https://img4.teletype.in/files/f6/d9/f6d9b771-5923-4535-af21-11560ba9c228.png" width="1536" />
  </figure>
  <p id="D7hH">Но запомните главное: <strong>иногда дешевле заплатить за оптимизацию кода, чем покупать новые серверы.</strong> Мы не раз убеждались, что правильно написанный запрос даёт больше, чем дополнительные мощности.</p>
  <h2 id="ld6W"><strong>Часть 5. Как работает разработка high‑load системы</strong></h2>
  <p id="OGAp">Мы придерживаемся чёткой последовательности, чтобы не потратить бюджет впустую.</p>
  <h3 id="Vf2p"><strong>Этап 1. Анализ нагрузки</strong></h3>
  <p id="Tgp9">Измеряем:</p>
  <ul id="MRRp">
    <li id="o6EQ">самые тяжёлые операции;</li>
    <li id="eRmV">точки задержек;</li>
    <li id="NTou">объём данных;</li>
    <li id="vNMS">обычную и пиковую нагрузку;</li>
    <li id="HH9W">узкие места;</li>
    <li id="PaYC">влияние внешних сервисов;</li>
    <li id="RXHx">требования к доступности.</li>
  </ul>
  <p id="Dt3C">Без этого невозможно выбрать правильную архитектуру.</p>
  <h3 id="iTNZ"><strong>Этап 2. Проектирование</strong></h3>
  <p id="sKW8">На основе данных решаем:</p>
  <ul id="phXR">
    <li id="Svyk">нужны ли микросервисы или достаточно оптимизации;</li>
    <li id="S0hv">где применить очереди (RabbitMQ, Kafka);</li>
    <li id="mngv">что кэшировать (Redis);</li>
    <li id="Z0e2">как масштабировать БД (репликация, шардирование);</li>
    <li id="deRH">как изолировать компоненты для отказоустойчивости.</li>
  </ul>
  <h3 id="cPFF"><strong>Этап 3. Разработка критических компонентов</strong></h3>
  <p id="a1N3">В первую очередь делаем то, что влияет на скорость и надёжность: API, очереди, кэш, новый слой работы с БД.</p>
  <h3 id="Cge2"><strong>Этап 4. Нагрузочное тестирование</strong></h3>
  <p id="jdcv">Проверяем:</p>
  <ul id="mgTe">
    <li id="v0IA">RPS;</li>
    <li id="E9X2">время ответа (p50, p95, p99);</li>
    <li id="fw1a">процент ошибок;</li>
    <li id="xkjd">загрузку CPU и памяти;</li>
    <li id="ssPI">поведение при резких пиках;</li>
    <li id="AUrU">восстановление после сбоев.</li>
  </ul>
  <p id="qaxD">Целевые показатели — свои для каждого проекта.</p>
  <h3 id="KHWZ"><strong>Этап 5. Мониторинг после запуска</strong></h3>
  <p id="Kw4C">Постоянно следим за временем ответа, ошибками, нагрузкой, состоянием БД, очередями и доступностью. High‑load — это не архитектура «спроектировал и забыл». Нагрузка и продукт меняются, поэтому система требует постоянного внимания.</p>
  <h2 id="8aYn"><strong>Часть 6. Как выбрать подрядчика (чтобы не выбросить деньги на ветер)</strong></h2>
  <p id="NEoV">Не верьте компаниям, которые обещают «выдержать миллионы пользователей». Это просто маркетинг. Вот на что реально обратить внимание:</p>
  <h3 id="GD5q"><strong>1. Просите конкретные кейсы</strong></h3>
  <p id="xSLH">Не список технологий, а цифры: какая была нагрузка, где узкое место, что сделали, какой результат.</p>
  <h3 id="2Eww"><strong>2. Спрашивайте про опыт с legacy</strong></h3>
  <p id="zDsq">Часто high‑load делается не с нуля, а на базе работающего бизнеса. Подрядчик должен уметь масштабировать без остановки системы.</p>
  <h3 id="fROS"><strong>3. Пусть объяснят архитектурное решение</strong></h3>
  <p id="IpTK">Если единственный аргумент — «так современнее» — это красный флаг. Решение должно быть обосновано характером нагрузки.</p>
  <h3 id="0WA5"><strong>4. Уточните про нагрузочное тестирование и мониторинг</strong></h3>
  <p id="oa7q">Производительность должна измеряться, а не оцениваться на глаз.</p>
  <h3 id="8cqC"><strong>5. Обратите внимание: работа начинается с анализа</strong></h3>
  <p id="yXmK">Если подрядчик предлагает архитектуру до изучения вашей нагрузки — задумайтесь.</p>
  <h2 id="TNYQ"><strong>Итог: главный принцип</strong></h2>
  <p id="5pLd">High‑load архитектура нужна не тогда, когда вы достигли какого‑то магического числа RPS. Она нужна, когда текущая система перестаёт справляться: тормозит, работает нестабильно или не даёт бизнесу расти.</p>
  <p id="efbL"><strong>Правильный порядок: </strong>измерить → найти узкие места → определить требования → выбрать решение → протестировать → масштабировать.</p>
  <p id="np5G">И помните: первый вопрос должен звучать не «а не пора ли перейти на микросервисы?», а <strong>«где именно сейчас ограничение и какое решение поможет его убрать?»</strong>.</p>
  <h2 id="s0cK"><strong>Наши реальные кейсы — цифры и факты</strong></h2>
  <figure id="1joi" class="m_original">
    <img src="https://img2.teletype.in/files/10/c2/10c20246-6eb4-43dc-a154-b706f0e31e9f.png" width="1536" />
  </figure>
  <h2 id="HYy1"><strong>Вам осталось только решить, готовы ли вы к росту</strong></h2>
  <p id="6LBb">Если вы узнали свои симптомы в этой статье, но всё ещё сомневаетесь — начните с аудита. Это самый безболезненный способ понять, где реальные ограничения.</p>
  <p id="xwYr">А если остались вопросы — мы всегда на связи. В АЙТИФОКС мы специализируемся на высоконагруженных системах и помогаем бизнесу расти без боли.</p>
  <p id="y0Jz"><strong>Подписывайтесь на наш блог, чтобы не пропустить новые материалы по архитектуре, масштабированию и оптимизации.</strong></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@itfox/03OvGk4gGj8</guid><link>https://teletype.in/@itfox/03OvGk4gGj8?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox</link><comments>https://teletype.in/@itfox/03OvGk4gGj8?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox#comments</comments><dc:creator>itfox</dc:creator><title>Очереди по 30 минут: как мы научили курорт предупреждать гостей</title><pubDate>Fri, 04 Sep 2026 11:11:38 GMT</pubDate><description><![CDATA[Или история о том, как 30 сценариев и одна Django-админка перераспределили потоки лыжников.]]></description><content:encoded><![CDATA[
  <p id="FdZ9"><em>Или история о том, как 30 сценариев и одна Django-админка перераспределили потоки лыжников.</em></p>
  <p id="2xhm"><strong>Представьте:</strong> горнолыжный курорт в разгар сезона. Утром популярные канатки забиты — очереди по 30 минут, люди мёрзнут, нервничают. А соседние подъёмники в это же время пустуют. Персонал пытается регулировать потоки вручную, но это невозможно — одновременно следить за всеми зонами и быстро сообщать гостям, куда лучше ехать.</p>
  <p id="PdnD">Заказчик хотел автоматизировать оповещения: чтобы гости сами получали сообщения в Telegram/SMS: <em>«На этом подъёмнике сейчас большая очередь, советуем переместиться на соседний»</em>. На основе прогнозов загрузки система должна была предупреждать заранее, перераспределяя потоки без расширения инфраструктуры.</p>
  <p id="Aq7u">Прогностическую модель разрабатывал другой подрядчик. Нам поручили <strong>админку, которая будет получать прогнозы и запускать оповещения</strong>. Дедлайн — 3 месяца.</p>
  <h3 id="xIt8"><strong>Что мы сделали</strong></h3>
  <p id="HTbM">Команда из двух человек разработала <strong>Django-админку с гибкими сценариями оповещений</strong>. В ней можно создавать и настраивать сценарии без изменения кода — достаточно пары кликов.</p>
  <p id="BZ7d">Система интегрирована с внешним API прогнозов, проверяет несколько последовательных значений и отправляет сообщение только при подтверждении триггера. Это защита от спама и ложных срабатываний.</p>
  <p id="oyru">Параллельно мы провели бизнес-анализ двухлетних данных по загрузке канаток и на их основе подготовили <strong>30 сценариев</strong> для разных пиковых ситуаций.</p>
  <h3 id="DyvK"><strong>Самое сложное началось, когда мы подключились к внешним прогнозам</strong></h3>
  <p id="pWQS">Данные «скакали»: канатка то на 200 человек, то на 500, то на 1000 в течение нескольких минут. Если бы мы реагировали на каждое изменение — гости получили бы шквал противоречивых сообщений, а персонал — груду ложных срабатываний.</p>
  <p id="cGt4">Пришлось придумать защиту: система проверяет несколько прогнозов подряд и отправляет оповещение только когда значения подтверждаются.</p>
  <p id="FKjt">Второй момент — не было правил, по которым это должно работать. При каком пороге считать канатку перегруженной? Как часто отправлять? Учитывать ли время суток и сложность трасс?</p>
  <p id="HL9N">Всё это собирали по кусочкам: предлагали гипотезы, обсуждали с заказчиком, проверяли на тестовых данных. Провели 4–5 волн настроек — часть параметров добавляли, часть убирали. Это была не доработка «по наитию», а практическая проверка гипотез вместе с заказчиком.</p>
  <p id="3jmE">Стали связующим звеном между внешним API и логикой оповещений: знали, как должны работать сценарии, и помогали довести триггеры до ума. Без бюрократии, без долгих согласований.</p>
  <h3 id="tg29"><strong>Что получилось</strong></h3>
  <p id="b31Z">Система запущена, прошла интеграционные тесты, 30 сценариев приняты заказчиком и подтверждены его аналитикой.</p>
  <p id="vTai"><strong>Было:</strong> В пиковые часы популярные канатки перегружены, очереди до 30 минут, персонал не успевает регулировать потоки.</p>
  <p id="6Oya"><strong>Стало:</strong> Система автоматически отправляет гостям оповещения, перераспределяя потоки. Ложных срабатываний нет, гости не получают спам, персонал не отвлекается на ложные тревоги.</p>
  <h3 id="GpTh"><strong>Отдельный интересный момент</strong></h3>
  <p id="m1kD">Внешний API иногда работал некорректно. Мы постоянно мониторили, фиксировали проблемы и оперативно передавали заказчику. Они правили свою часть, мы параллельно дорабатывали логику. Так, итерациями, за месяц превратили «сырую» идею в готовую систему с 30 сценариями.</p>
  <p id="BiPJ"><strong>Что дальше</strong></p>
  <p id="rdk2">Мы показали, что Django-админка отлично подходит не только для управления контентом, но и для гибких сценариев оповещений с защитой от спама. Опыт работы с нестабильными данными и жёсткими дедлайнами пригодится в любом проекте, где есть внешние прогнозы и задача автоматически реагировать на них.</p>
  <p id="uqeK">Полный разбор кейса — с деталями логики, настройкой порогов и результатами — читайте на сайте: <a href="https://itfox-web.ru/ru/cases/razrabotali-adminku-s-gibkimi-stsenariiami-dlia-gornolyzhnogo-kurorta-?utm_source=teletype&utm_medium=article&utm_campaign=alert_case" target="_blank">https://itfox-web.ru/ru/cases/razrabotali-adminku-s-gibkimi-stsenariiami-dlia-gornolyzhnogo-kurorta-?utm_source=teletype&amp;utm_medium=article&amp;utm_campaign=alert_case</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@itfox/IoAqe62C_t4</guid><link>https://teletype.in/@itfox/IoAqe62C_t4?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox</link><comments>https://teletype.in/@itfox/IoAqe62C_t4?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox#comments</comments><dc:creator>itfox</dc:creator><title>Как мы добавили продажу услуг в интернет-магазин: опыт «УютСтроя»</title><pubDate>Thu, 20 Aug 2026 14:18:35 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/14/34/14347a7a-5e27-43d7-a1f8-a6641e542229.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/4f/44/4f447a12-0a91-4f07-8e6a-2d1b765b730d.png"></img>Задача, которая оказалась сложнее, чем казалась]]></description><content:encoded><![CDATA[
  <figure id="QiRU" class="m_original">
    <img src="https://img1.teletype.in/files/4f/44/4f447a12-0a91-4f07-8e6a-2d1b765b730d.png" width="1536" />
  </figure>
  <p id="Wtvd"><strong>Задача, которая оказалась сложнее, чем казалась</strong></p>
  <p id="GOdz">Крупная крымская сеть гипермаркетов «УютСтрой» (180 000 товаров, 4 магазина, более 800 заказов в день) обратилась к нам с запросом: добавить на сайт продажу услуг — монтаж, установку, покраску, порезку материалов.</p>
  <p id="O4gR">На первый взгляд — логичное расширение бизнеса. Но когда мы начали разбираться, стало понятно: это не просто «ещё один тип товара». Продажа услуг затрагивает практически все элементы интернет-магазина: карточку товара, корзину, оформление заказа, интеграцию с 1С, кассовое оборудование и даже юридические аспекты.</p>
  <p id="A7vV">У нас было полтора месяца, жёсткий бюджет и требование — минимум изменений на фронтенде. А за месяц до нас в проекте уже внедрили продажу товаров комплектами, и наши услуги должны были ужиться с этим функционалом в одной карточке.</p>
  <p id="9eHJ">Рассказываем, как мы выпутывались.</p>
  <h2 id="8KWM"><strong>Что не так с конкурентами</strong></h2>
  <p id="UGwu">Мы изучили рынок — и быстро поняли, что готовых решений нет. У всех игроков примерно одни и те же проблемы: цены на услуги не показывают, пользовательский путь разорван, а сами услуги спрятаны так, что их сложно найти. В одном магазине услуга улетала в отдельную корзину — отдельно от товаров. В другом — при клике на услугу пользователя перекидывало на страницу с простынёй текста, и он терял нить покупки.</p>
  <p id="WoMI">Мы решили делать наоборот: цена должна быть видна, услуга должна покупаться в один клик, и никаких отдельных корзин.</p>
  <h2 id="VKJc"><strong>Услуга — не товар</strong></h2>
  <p id="u89D">Первое, что мы сделали, — перестали думать об услуге как о товаре. У неё нет склада, нет остатков, нет доставки в классическом смысле. Зато есть тип оказания: либо на дому у покупателя, либо в гипермаркете. От этого зависит, как оформлять заказ.</p>
  <p id="lfRv">Кроме того, услуги покупают только физические лица — юрлицам мы их не продаём. А если услугу оказывает субподрядчик, в чеке должны быть его реквизиты: этого требует новый закон.</p>
  <p id="178v">Все эти нюансы нужно было зашить в логику так, чтобы пользователь ничего не заметил. Он просто выбирает услугу, добавляет в корзину и оформляет заказ. А под капотом система сама решает, показывать ему адрес доставки или выбор магазина, разрешать оплату или блокировать.</p>
  <h2 id="eLD8"><strong>Как мы разместили услуги в карточке товара</strong></h2>
  <p id="6IZ4">Первая идея родилась быстро: галерея услуг прямо в карточке товара. Вы смотрите на дверь, а рядом — карточки с услугами: «Монтаж», «Демонтаж», «Покраска». У каждой — название, иконка, цена и кнопка «Добавить». Можно сразу поставить количество. Никаких «цену уточняйте». Человек видит, сколько заплатит, и покупает не отвлекаясь.</p>
  <p id="ZE4R">Но заказчик предупредил: к одному товару может быть привязано до 30 услуг. Галерея не резиновая.</p>
  <p id="V8KR">Тогда мы придумали фишку: если услуг больше пяти, последним элементом галереи появляется кнопка «Все услуги». Нажимаешь — открывается модальное окно со списком. Там можно прочитать полное название, перейти на детальную страницу или сразу добавить в корзину. И закрыть окно — вы остаётесь на той же карточке товара. Никаких переходов, никаких потерь пользователя.</p>
  <h2 id="opMA"><strong>Страница услуги: зачем изобретать велосипед</strong></h2>
  <p id="69cb">Детальную страницу услуги мы решили не делать с нуля. Взяли шаблон карточки товара и подставили данные услуги. Те же кнопки, тот же макет. Пользователь не переучивается, а мы экономим время на дизайне и вёрстке. Единственное, что добавили — блок «Товары, с которыми можно купить эту услугу».</p>
  <p id="XgiR">Кроме того, мы превратили старую информационную страницу, которая три с половиной года просто рассказывала об услугах, в точку продаж. Теперь на ней — такой же блок с кнопками «В корзину». Человек, который пришёл просто почитать, может купить в один клик.</p>
  <h2 id="AUv1"><strong>Одна корзина для всего</strong></h2>
  <p id="TiHc">Мы твёрдо решили: одна корзина для товаров и услуг. Услуги — в приоритетном блоке сверху. Если услуга куплена вместе с товаром (например, дверь и её монтаж), они группируются. Можно прямо в корзине изменить количество или удалить услугу.</p>
  <p id="Ze3p">Звучит просто, но потребовало пересмотра всей модели корзины. Раньше там были только товары с количеством. Теперь появился новый тип позиций — без склада, но с признаками: тип оказания, привязка к товару, субподрядчик. Пришлось переписать методы добавления, удаления, расчёта суммы и отображения.</p>
  <h2 id="Ugj0"><strong>Оформление заказа: сценарии, о которых мы не знали</strong></h2>
  <p id="wObJ">Мы не знали, что услуги бывают двух типов, пока не углубились в детали. Одни оказываются по адресу покупателя — мастер приезжает на дом. Другие — только в гипермаркете, потому что там нужно спецоборудование: порезка металла, распил древесины.</p>
  <p id="40hn">И теперь, когда пользователь идёт оформлять заказ, мы должны понять, что у него в корзине. Сценарии получились такие:</p>
  <ul id="dBwe">
    <li id="ELke"><strong>Только услуги гипермаркета</strong> — доставка не нужна. Блокируем адрес, показываем выбор магазина.</li>
    <li id="43YQ"><strong>Только услуги по адресу</strong> — появляется поле для адреса доставки.</li>
    <li id="6tPu"><strong>И то, и другое</strong> — показываем и выбор магазина, и адрес.</li>
    <li id="oBpR"><strong>Пользователь — юридическое лицо</strong> — услуги недоступны. Только для физиков.</li>
  </ul>
  <p id="VnX8">Мы реализовали целый набор проверок под капотом. Пользователь их не видит — он просто заполняет нужные поля. Если бы мы не продумали всё заранее, интерфейс бы сломался в первый же день.</p>
  <h2 id="PrNO"><strong>Когда два функционала не поделили карточку</strong></h2>
  <p id="QLR2">За месяц до нашего проекта команда заказчика уже внедрила «комплекты товаров» — когда к основному товару предлагаются сопутствующие: к люстре — патрон, к двери — ручка. У каждого комплекта своя кнопка «Добавить в корзину».</p>
  <p id="U63r">И вот теперь в одной карточке товара появились и наши услуги со своей кнопкой. На тестировании они начали конфликтовать: нажимаешь «Добавить услугу» — сбрасывается выбранный комплект. Нажимаешь «Добавить комплект» — услуги исчезают.</p>
  <p id="B8eM">Три дня мы переписывали взаимодействие двух логик. Сделали кнопки независимыми, добавили проверки при добавлении в корзину, перестроили часть интерфейса. Это было сложно, потому что кодовую базу мы не трогали — вносили изменения точечно, чтобы не сломать уже работающий функционал.</p>
  <h2 id="V4S5"><strong>Новый закон и субподрядчики</strong></h2>
  <p id="Lf36">В процессе разработки выяснилось: в начале 2026 года вышел новый закон — если услуги оказывает субподрядчик, в чеке обязательно должны быть его реквизиты: название, ИНН, телефон.</p>
  <p id="Teyy">Пришлось добавлять в модель услуги поле «субподрядчик» и передавать эти данные в кассу, чтобы она корректно пробивала чеки. И всё это — в те же полтора месяца, без права на ошибку.</p>
  <h2 id="veLJ"><strong>Как мы работали без идеального ТЗ</strong></h2>
  <p id="yIDv">Мы сознательно пошли на риск: вместо того чтобы тратить месяцы на вылизывание документации, проанализировали базовые требования за пару дней и начали разработку. Остальное дорабатывали по ходу.</p>
  <p id="1YKK">Вот что помогало не сорвать сроки:</p>
  <ul id="tMxN">
    <li id="TDWX"><strong>Старт с ядра.</strong> Выделили самые важные сценарии — те, без которых функционал не имеет смысла. Всё остальное — второстепенно.</li>
    <li id="eMT3"><strong>Договорённости о приоритетах.</strong> Открыто сказали заказчику: «Вот что мы успеем сделать точно, а вот что будем дорабатывать по ходу».</li>
    <li id="zI6Q"><strong>Прозрачность процесса.</strong> Показывали промежуточные результаты каждую неделю. Заказчик видел прогресс и мог скорректировать требования.</li>
    <li id="ivNL"><strong>Фиксация решений.</strong> Даже без формального ТЗ вели лог всех договорённостей — в чате, в таск-трекере.</li>
    <li id="A4m4"><strong>Готовность к переделкам.</strong> Понимали, что не все решения будут идеальными с первого раза, и закладывали время на доработки.</li>
  </ul>
  <p id="2iVW">Главное — мы не гнались за идеальной аналитикой, а создавали рабочий продукт. И когда через полтора месяца всё заработало, даже самый требовательный заказчик оценил скорость и качество.</p>
  <h2 id="3Ghh"><strong>Что мы поняли</strong></h2>
  <p id="PI1t">Продажа услуг — это не просто «добавить кнопку». Это перестройка всей цепочки: от того, как вы показываете услугу в карточке товара, до того, как покупатель получает чек на почту. Это десятки сценариев, которые нужно предусмотреть. Это интеграция с существующими системами, которые уже живут своей жизнью.</p>
  <p id="ByTq">Как сказала наш менеджер Наталья Жосан: «Мы смогли это всё не лепя Франкенштейна, а привести к общему знаменателю и интегрировать без больших проблем в существующий мощнейший функционал. Вот это я считаю классной работой».</p>
  <p id="aAjY">Теперь сайт «УютСтроя» продаёт услуги по-человечески: с видимой ценой, в одной корзине с товарами и без лишних телодвижений.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@itfox/VC-inIkwYT6</guid><link>https://teletype.in/@itfox/VC-inIkwYT6?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox</link><comments>https://teletype.in/@itfox/VC-inIkwYT6?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox#comments</comments><dc:creator>itfox</dc:creator><title>Разработка мобильного приложения на Flutter: один код для трёх продуктов</title><pubDate>Fri, 07 Aug 2026 12:42:04 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/b9/84/b984ff87-0b63-405e-8ee8-24942d32a4f2.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/94/ad/94ad319e-9912-458b-902c-06da8d79cac6.png"></img>Клиент — B2B-платформа корпоративных скидок для сотрудников крупных компаний. Задача — мобильное приложение для iOS и Android. Всё выглядело стандартно, но в ходе работ выяснились три нюанса, которые потребовали гибких решений.]]></description><content:encoded><![CDATA[
  <figure id="GFnm" class="m_original">
    <img src="https://img2.teletype.in/files/94/ad/94ad319e-9912-458b-902c-06da8d79cac6.png" width="1536" />
  </figure>
  <p id="stBv">Клиент — B2B-платформа корпоративных скидок для сотрудников крупных компаний. Задача — мобильное приложение для iOS и Android. Всё выглядело стандартно, но в ходе работ выяснились три нюанса, которые потребовали гибких решений.</p>
  <p id="Ps0b">Первый. Вместо одного приложения заказчику понадобилось три — с разными брендами, дизайном и серверными адресами. Запрос поступил в середине проекта.</p>
  <p id="bWLq">Второй. Бэкенд задерживался. Если бы мы стали ждать, фронт-команда простаивала бы неделями, а сроки и бюджет поползли бы вверх.</p>
  <p id="CeYG">Третий. В приложении нужен был чат поддержки. Внешний сервис LifeText использовался на стороне клиента, но SDK для Flutter у него отсутствовал.</p>
  <p id="Kwc0"><strong>Что сделали:</strong></p>
  <p id="nLZX">— Выбрали Flutter как основу — пишем код один раз, получаем iOS и Android.<br /> — Настроили Flavors: из одного кода собираются три приложения — со своими иконками, цветами и адресами серверов.<br /> — Использовали мок-данные на время разработки бэкенда. Когда API доделали, переключились за один день.<br /> — Чат интегрировали через WebSocket напрямую, без готового SDK.</p>
  <p id="oa3Y"><strong>Итоги:</strong></p>
  <p id="Aj0I">— три приложения одновременно вышли в Google Play и App Store;<br /> — аудитория — более 100 000 активных пользователей;<br /> — краш-рейтинг &lt; 1%, нареканий по скорости не было;<br /> — экономия на поддержке — до 70% благодаря общей кодовой базе;<br /> — проект занял 6 месяцев.</p>
  <p id="teSu">Подробности, архитектурные схемы и скриншоты — в полной версии кейса по ссылке <a href="https://itfox-web.ru/ru/cases/mobilnoe-prilozhenie-dlia-100-000-polzovatelei-razrabotka-na-flatter-k?utm_source=teletype&utm_medium=blog&utm_campaign=keystriprilozheniya" target="_blank">https://itfox-web.ru/ru/cases/mobilnoe-prilozhenie-dlia-100-000-polzovatelei-razrabotka-na-flatter-k?utm_source=teletype&amp;utm_medium=blog&amp;utm_campaign=keystriprilozheniya</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@itfox/LCo5qH1lYox</guid><link>https://teletype.in/@itfox/LCo5qH1lYox?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox</link><comments>https://teletype.in/@itfox/LCo5qH1lYox?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox#comments</comments><dc:creator>itfox</dc:creator><title>Казнить нельзя помиловать: где ставить запятую в работе с ИИ?</title><pubDate>Tue, 04 Aug 2026 11:56:25 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/32/48/3248f9ae-0785-456f-9e13-a800520a4d1c.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/5b/c5/5bc5ff1f-c692-41ce-aced-ce92fd181e08.png"></img>Искусственный интеллект перестал быть хайпом и стал рабочим инструментом. По данным McKinsey, в 2024 году 65% компаний мира уже интегрировали ИИ в процессы — это в два раза больше, чем в 2023-м. Рынок разделился на два лагеря, и у каждого своя правда.]]></description><content:encoded><![CDATA[
  <figure id="PXIM" class="m_original">
    <img src="https://img2.teletype.in/files/5b/c5/5bc5ff1f-c692-41ce-aced-ce92fd181e08.png" width="1536" />
  </figure>
  <p id="MpS1">Искусственный интеллект перестал быть хайпом и стал рабочим инструментом. По данным McKinsey, в 2024 году 65% компаний мира уже интегрировали ИИ в процессы — это в два раза больше, чем в 2023-м. Рынок разделился на два лагеря, и у каждого своя правда.</p>
  <p id="QFTz"><strong>Лагерь 1: «ИИ — угроза человечности» </strong>Многие топ-менеджеры и собственники бизнеса сознательно блокируют нейросети. Их мотив понятен: сохранить уникальную экспертизу, авторский стиль и живое общение с клиентом. Доходит до крайностей: некоторые компании вводят негласный запрет на ChatGPT, а за его использование следуют взыскания.</p>
  <p id="nPUk">Но вот парадокс: согласно Slack Workforce Index (2024), 48% офисных сотрудников скрывают факт использования ИИ. Они боятся показаться некомпетентными, хотя на самом деле просто делегируют рутину. Запрещая ИИ под флагом «человечности», мы крадем у экспертов время на стратегию, креатив и переговоры, заставляя их механически переносить данные из таблицы в таблицу.</p>
  <p id="eJig">Цифры PwC неумолимы: к 2030 году вклад ИИ в мировой ВВП составит $15,7 трлн. Компании, внедрившие AI осмысленно, уже фиксируют рост выручки (59% опрошенных McKinsey) и снижение издержек (42%).</p>
  <p id="u66L"><strong>Лагерь 2: «ИИ везде и вместо всех» </strong>Противоположная крайность — тотальная автоматизация. Показателен кейс шведского финтеха Klarna. В 2024 году они заменили нейросетью 700 операторов колл-центра. Расчет был на эффективность. Реальность оказалась жестче: к маю 2025-го боты начали галлюцинировать на сложных запросах, сервис провалился. Собрать команду живых специалистов обратно оказалось почти невозможно, пришлось ставить на телефоны даже программистов.</p>
  <p id="OUJj">Нужно признать: нейросеть — это мощный, но вероятностный инструмент, а не мыслящий субъект. Он умеет убедительно ошибаться, поэтому полное доверие ему в стратегических или эмпатичных задачах равно провалу.</p>
  <p id="HTOC"><strong>Золотая середина: Человек + Машина </strong>Мы в АЙТИФОКС придерживаемся гибридного подхода. Исследование Гарварда и BCG подтверждает его правоту: консультанты, использующие GPT-4, выполняют на 12,2% больше задач, на 25,1% быстрее и с качеством на 40% выше. Секрет прост: рутину забирает алгоритм, смыслы остаются за человеком.</p>
  <p id="5a3c"><strong>Наши правила, выведенные практикой:</strong></p>
  <ol id="N0K0">
    <li id="joUJ"><strong>ИИ — черновик.</strong> Всегда проверяйте факты. Нейросеть — помощник аналитика, а не истина в последней инстанции.</li>
    <li id="Ddrw"><strong>Четкое ТЗ.</strong> Качество ответа прямо пропорционально качеству промпта и структуре данных.</li>
    <li id="LlQu"><strong>Данные решают.</strong> Неструктурированный вход — галлюцинации на выходе.</li>
    <li id="Cuw7"><strong>Автоматизируйте буквы, оставляйте смыслы.</strong> Тактика — машине, стратегия и эмпатия — человеку.</li>
  </ol>
  <p id="kVEQ"><strong>Что мы уже сделали для бизнеса:</strong></p>
  <ul id="Fn9t">
    <li id="TZKm">Настроили автоматический перенос данных из хаотичных сканов и смет: ИИ делает черновую оцифровку, человек финально выверяет.</li>
    <li id="wmci">Создали ИИ-аналитика для сети корпоративного питания, исключив доступ нейросети к сырым данным (AI пишет выводы на базе расчетов кода). Отчетность сократилась с часов до минут.</li>
  </ul>
  <p id="OtDu">Тренд необратим, и умение работать с ИИ становится базовым софт-скиллом. Мы готовы помочь вашему бизнесу найти этот баланс без перегибов — будь вы в первом лагере или во втором.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@itfox/m72XaXkUVUG</guid><link>https://teletype.in/@itfox/m72XaXkUVUG?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox</link><comments>https://teletype.in/@itfox/m72XaXkUVUG?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox#comments</comments><dc:creator>itfox</dc:creator><title>ИИ для бизнеса без риска: как получить результат за три недели, а не за полгода</title><pubDate>Mon, 03 Aug 2026 13:48:19 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/15/d2/15d2ef4b-7218-4084-b500-4c84fc8657b5.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/46/33/463317bf-bfac-4ea3-813a-91be3bd7213b.png"></img>Разговоры об искусственном интеллекте часто упираются в три страха: дорого, долго, непонятно. И они оправданны: рынок перегрет, многие уже получили вместо работающего инструмента красивую презентацию и прототип, не выдерживающий реальных данных.]]></description><content:encoded><![CDATA[
  <figure id="e6Hg" class="m_original">
    <img src="https://img1.teletype.in/files/46/33/463317bf-bfac-4ea3-813a-91be3bd7213b.png" width="1536" />
  </figure>
  <p id="cCZG">Разговоры об искусственном интеллекте часто упираются в три страха: дорого, долго, непонятно. И они оправданны: рынок перегрет, многие уже получили вместо работающего инструмента красивую презентацию и прототип, не выдерживающий реальных данных.</p>
  <p id="RHvy">Между тем бизнес — и крупный, и средний — уже использует ИИ под конкретные задачи без революций и бюджета на дата-сайентистов. Вот четыре сценария, где это реально работает.</p>
  <p id="zDtd"><strong>Где ИИ уже приносит результат</strong></p>
  <ol id="2r4m">
    <li id="1Fqw"><strong>Документооборот и отчётность.</strong> Распознавание счетов, накладных, актов — не «интеллектуальный анализ», а извлечение цифр, раскладка по статьям, поиск расхождений. Ручная обработка сотни документов — часы бухгалтера с риском ошибки. ИИ делает это за минуты, а бухгалтер переходит к проверке и выводам.</li>
    <li id="Cb4d"><strong>Поддержка клиентов.</strong> Страховые, банки, телеком уже не первый год автоматизируют типовые обращения. Теперь ИИ сам определяет, какой вопрос сложный и требует оператора, а какой закрывается мгновенно.</li>
    <li id="Nutj"><strong>Управление ассортиментом и закупками.</strong> Розница и общепит передают ИИ данные о продажах и остатках и получают подсказки, основанные на всей совокупности данных, а не на выборочном отчёте.</li>
    <li id="vq3T"><strong>Аналитика для руководителя.</strong> Самый быстрорастущий сценарий: руководитель задаёт вопрос на естественном языке и получает не просто цифры, а связный ответ. «Какие пять точек показали худшую маржинальность и почему?» — и ответ готов.</li>
  </ol>
  <p id="kNUx">На четвёртом сценарии остановимся подробнее. Именно здесь чаще всего совершают ошибку, превращающую инструмент в источник недостоверных данных.</p>
  <p id="BKMn"><strong>Где ошибаются на старте </strong>Самый короткий на первый взгляд путь: загрузить все данные в нейросеть и попросить ответить на вопросы. Демо на малом фрагменте работает идеально. Но на тысячах позиций, сотнях контрагентов и десятках точек модель начинает путать столбцы, терять данные и — критично — уверенно выдумывать цифры. Одно такое искажение — и решение о снятии позиции с меню или смене поставщика принято на основе фантазии.<br /> Причина не в дефекте модели, а в системном ограничении: языковая модель — не калькулятор и не СУБД. Она не гарантирует точность вычислений, и чем больше данных, тем выше риск.</p>
  <p id="c26g"><strong>Три правила быстрой и безопасной разработки </strong>Мы в АЙТИФОКС строим проекты на трёх принципах.</p>
  <p id="ghbA"><strong>Правило 1. Нейросеть не считает. </strong>Все расчёты выполняет серверный код. Нейросеть получает готовый проверенный результат и превращает его в человеческий ответ. Это подход «нейросеть как интерфейс, а не калькулятор». Галлюцинациям в цифрах неоткуда взяться. Разработка становится инженерной задачей: нужен сильный backend-разработчик, а не дата-сайентист. Бизнес получает предсказуемый инструмент без эффекта «чёрного ящика».</p>
  <p id="WUG3"><strong>Правило 2. Скорость без потери качества. </strong>Подготовительная рутина — написание инструкций, генерация тестовых данных, проверка краевых случаев — делегирована второй нейросети. Она делает это быстрее и чище человека. Результат:</p>
  <ul id="Ams6">
    <li id="6DDV">Старт проекта за часы, а не дни.</li>
    <li id="znHB">Модель с выверенными инструкциями с первого дня отвечает корректно.</li>
    <li id="9uyF">Бюджет не раздувается за счёт ручной подготовки.</li>
  </ul>
  <p id="Whdk"><strong>Правило 3. Меньше команда — больше скорость. </strong>В классической схеме нужны аналитик, бэкенд, фронтенд, дата-сайентист, PM. Большая часть времени уходит на синхронизацию. При модульной архитектуре проект ведёт один сильный разработчик. Итог:</p>
  <ul id="Ai3f">
    <li id="jzWY">Оплата за результат, а не за процесс и коммуникацию.</li>
    <li id="AR1H">Сроки сокращаются кратно: три недели до прототипа вместо полугода.</li>
    <li id="XBuY">Высокая гибкость на старте.</li>
  </ul>
  <p id="eR3J"><strong>Кейс «РЕСТФОТОАНАЛИТИКА» </strong>Применили все три правила для сети корпоративного питания. Задача: руководитель задаёт вопросы о списаниях, маржинальности, аномалиях и получает точные ответы.<br /> Результат:</p>
  <ul id="zA5L">
    <li id="VPOu">Работающий прототип — за три недели.</li>
    <li id="lwx3">Стоимость запроса к ИИ снижена в 20 раз.</li>
    <li id="Z3vK">Ноль ошибок в цифрах (модель не считает).</li>
    <li id="rMH5">Руководитель перешёл от анализа постфактум к управлению по факту — видит аномалию сегодня и сегодня же реагирует.</li>
  </ul>
  <p id="ck3i"><strong>Универсальность подхода </strong>Принцип «код считает — нейросеть объясняет» работает в рознице, логистике, финансах, производстве. Мы называем это «технологическим кубиком»: меняется отрасль, логика остаётся. Начать можно не с масштабного «внедрения ИИ», а с одного конкретного процесса, где боль измерима. И получить результат за недели.<br />Обсудить ваш процесс → <a href="https://itfox-web.ru/ru/cases#consultation" target="_blank">https://itfox-web.ru/ru/cases#consultation</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@itfox/YF3bBZRsGWy</guid><link>https://teletype.in/@itfox/YF3bBZRsGWy?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox</link><comments>https://teletype.in/@itfox/YF3bBZRsGWy?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=itfox#comments</comments><dc:creator>itfox</dc:creator><title>Галлюцинации нейросетей в цифрах — не баг, а архитектурная ошибка. Как мы её исправили</title><pubDate>Mon, 03 Aug 2026 13:16:56 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/e0/1a/e01add2f-f32f-4b1a-b079-2ffc0826baa3.png"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/e6/ea/e6ea9913-08e2-457c-a50c-8630373d00b6.png"></img>Практически каждая компания, пытавшаяся скормить ИИ отчёт в Excel и задать вопрос «какие продажи в регионе?», однажды обнаружила: ответ красив, но цифры вымышлены. Это не сбой конкретной модели, а закономерность, заложенная в самой природе языковых моделей.]]></description><content:encoded><![CDATA[
  <figure id="CsO2" class="m_original">
    <img src="https://img3.teletype.in/files/e6/ea/e6ea9913-08e2-457c-a50c-8630373d00b6.png" width="1536" />
  </figure>
  <p id="KlCx">Практически каждая компания, пытавшаяся скормить ИИ отчёт в Excel и задать вопрос «какие продажи в регионе?», однажды обнаружила: ответ красив, но цифры вымышлены. Это не сбой конкретной модели, а закономерность, заложенная в самой природе языковых моделей.</p>
  <p id="RwLD">LLM — не калькулятор и не база данных. Она не выполняет арифметические операции над ячейками, а предсказывает наиболее вероятную последовательность токенов. Когда вы отправляете таблицу на десятки тысяч строк, середина документа «проваливается» — внимание модели распределено неравномерно. Модель не может сказать «я не знаю» и заполняет пробелы правдоподобной, но фиктивной информацией. Производители заявляют контекстное окно в 200 тысяч токенов, но деградация начинается уже на первой трети. Ответ остаётся таким же уверенным, и без построчной сверки отличить правду от вымысла невозможно. А если сверять каждую цифру вручную, то зачем ИИ?</p>
  <h3 id="9IfQ"><strong>Почему инжиниринг промптов не спасает </strong></h3>
  <p id="gfTM">Первое, что делают команды, — улучшают инструкции: «перепроверь расчёты», «опирайся только на таблицу». Это даёт косметический эффект, но природа ошибок не меняется: модель всё ещё пытается «считать». Более того, улучшенные промпты повышают опасность — ложные цифры упаковываются в ещё более убедительный текст, и бизнес начинает принимать решения на основе данных, которые выглядят корректными, но таковыми не являются. Лечить галлюцинации промптами — всё равно что красить стены в доме с треснувшим фундаментом.</p>
  <h3 id="ur9Y"><strong>Архитектурное решение: модель не видит сырые данные </strong></h3>
  <p id="lw6J">Единственный работающий принцип: цифры считает строгий серверный код, а нейросеть лишь оформляет готовые результаты.<br />Мы переопределяем роль ИИ: из «аналитика» он превращается в интерфейс. Система работает так:</p>
  <ol id="4LfF">
    <li id="WHDI">Таблица загружается в оперативную память сервера и не покидает контур заказчика.</li>
    <li id="eQET">Под каждую аналитическую задачу создаётся жёсткий детерминированный алгоритм с чёткими входными параметрами.</li>
    <li id="QOb4">Нейросеть получает не данные, а описание доступных инструментов — какие функции можно вызывать и с какими параметрами.</li>
    <li id="rkVF">Получив запрос, модель выбирает нужную функцию, вызывает её и получает точный результат. Её задача — сформулировать ответ на естественном языке.</li>
  </ol>
  <p id="haSH">Галлюцинациям в цифрах в такой архитектуре неоткуда взяться: модель не выполняет расчёты, значит, не может в них ошибиться.</p>
  <h3 id="3xNo"><strong>Кейс: Рестофотоаналитика</strong></h3>
  <p id="OOLY">Команда АЙТИФОКС применила подход для сети корпоративного питания, управляющей десятками точек в отелях. Заказчик хотел заменить ручного аналитика, часами сводившего отчёты по списаниям и остаткам.<br />Первая гипотеза — загрузить таблицу напрямую в нейросеть — провалилась: модель врала в цифрах, придумывала несуществующие блюда, путала столбцы. Цена ошибки, помноженная на масштаб сети, — прямые убытки.<br />После перехода к архитектуре «сервер считает — модель формулирует»:</p>
  <ul id="PbLA">
    <li id="INFJ">Ошибки в цифрах исключены полностью.</li>
    <li id="k5gn">Стоимость запроса снижена в 3–20 раз (с 30–100 тыс. токенов до 1,5–3 тыс.).</li>
    <li id="K1Et">Прототип создан за три недели силами двух разработчиков.</li>
    <li id="j5Ql">Анализ ускорился на 95%: минуты вместо часов.</li>
  </ul>
  <p id="LCKs">Дополнительный инсайт: для табличной аналитики разницы между старшей и облегчённой версиями нейросети нет. Протестировали — не переплатили за избыточную мощность.</p>
  <h3 id="NEW5"><strong>Выводы для бизнеса</strong></h3>
  <ol id="kfkc">
    <li id="zcYY">Откажитесь от схемы «загрузил и спросил». Это архитектурный тупик.</li>
    <li id="Rce0">Разделите расчёты и оформление: код считает, нейросеть формулирует.</li>
    <li id="LFCZ">Не переплачивайте за флагманские модели без тестов — берите минимально достаточную версию.</li>
    <li id="qsFZ">Оставьте человека на финальной проверке: это зрелый риск-менеджмент, а не слабость системы.</li>
  </ol>
  <p id="Bpyo">Принцип универсален для розницы, логистики, финансов, производства — везде, где решения принимаются на основе табличных данных. Если ваши нейросети всё ещё врут в отчётах — проблема в архитектуре, а не в ИИ.<br />Обсудить применение подхода к вашим задачам → <a href="https://itfox-web.ru/ru/cases#consultation" target="_blank">https://itfox-web.ru/ru/cases#consultation</a></p>

]]></content:encoded></item></channel></rss>