<?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>Дизайн интерфейсов и UX</title>
    <description>Рекомендации и пособия для начинающих UX-дизайнеров, а также теоретическая информация обо всем, что нужно знать для создания интерфейсов.</description>
    <link>https://tproger.ru/tag/interface-design-ux</link>
    <atom:link href="https://tproger.ru/tag/interface-design-ux/feed" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Sat, 03 Oct 2026 14:53:55 GMT</lastBuildDate>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>12</sy:updateFrequency>
    <image>
      <title>Дизайн интерфейсов и UX</title>
      <link>https://tproger.ru</link>
      <url>https://tproger.ru/apple-touch-icon.png</url>
    </image>
    <item>
      <title>Zero на Three.js: инженерный разбор интерактивного сайта</title>
      <link>https://tproger.ru/articles/zero-na-three-js-inzhenernyj-razbor-interaktivnogo-sajta</link>
      <comments>https://tproger.ru/articles/zero-na-three-js-inzhenernyj-razbor-interaktivnogo-sajta?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/zero-na-three-js-inzhenernyj-razbor-interaktivnogo-sajta</guid>
      <description><![CDATA[<p>Разбираем, как BUNQ LABS сделала zero.university: виртуальный скролл, шейдеры, KTX2/DRACO, адаптивное качество и загрузка текстур без фризов. Проверьте техники.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/zero-na-three-js-inzhenernyj-razbor-interaktivnogo-sajta">Zero на Three.js: инженерный разбор интерактивного сайта</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Лучшая практика]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Фреймворки и библиотеки]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 28 Jul 2026 04:19:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>Представьте, что вы заходите на сайт, а он не пускает. Нет кнопки «войти» — только поле, где нужно нарисовать ноль. Как только круг замыкается, из линии расходится инеевый узор, и сайт начинает рассказывать историю. Это не декоративная заглушка: так работает <a href="https://zero.university/">zero.university</a> — кейс, где первый жест пользователя сразу задаёт тон всему повествованию.</p><p><b>Zero</b> — иммерсивный лендинг индийского стартапа Zero University, который предлагает альтернативу классическому университетскому пути. Сайт превращает скролл в шестиактную историю: традиционное образование, разбитое стекло, горящие деньги, уничтоженные сертификаты, тоннель из логотипа ZERO и, наконец, интерактивная карта города с офисами реальных компаний. Цель — не просто показать красивую картинку, а провести пользователя через аргумент: диплом перестаёт быть гарантией, а навыки открывают дорогу в индустрию.</p><p>Проект разрабатывала студия <b>BUNQ LABS</b> четыре месяца. Исходные ассеты занимали больше гигабайта: несжатые Blender-сцены, 8K-текстуры и запечённые анимации. Финальная сборка уместилась в 10 МБ и держит 60 FPS даже на бюджетном Android. Команда опубликовала технический разбор на Codrops, а мы выделили решения, которые можно перенести в свои WebGL-проекты.</p><ul><li>Первый жест как ворота: распознавание нуля — это простая проверка угла, округлости и замкнутости, а не нейросеть.</li><li>Виртуальный скролл заменяет нативный: одно число управляет загрузкой, анимацией, шейдерами и текстом.</li><li>Ассеты важнее рендера: DRACO, KTX2/ETC1S, атласы и собственный превьювер сжали гигабайты до мегабайтов.</li><li>Текстурные загрузки — главный источник фризов; декодинг в воркере и очередь по requestIdleCallback решают проблему.</li><li>Адаптивное качество по frame time позволяет не гадать о мощности устройства.</li><li>Мобильная точность шейдеров: mediump на Adreno и Mali — это реальный 16-битный float, и его недостаточно для сложных эффектов.</li></ul><p>Разбираем, как это устроено изнутри, и что из этого можно взять в свою работу.</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-07-28/00e5f2ad-8fc7-49b9-88da-322a34a6bef1.webp" alt="Шесть этапов интерактивного повествования zero.university: от традиционного образования до интерактивной карты города." /><figcaption>Схема повествования: шесть этапов и пять «ворот», через которые проходит пользователь. Источник: Codrops / BUNQ LABS</figcaption></figure><h2>Сюжет из шести этапов и пяти ворот</h2><p>Интерактивный нарратив строится вокруг пяти «ворот» — точек, где скролл останавливается и ждёт действия пользователя. Сначала нужно нарисовать ноль, затем удерживать касание, чтобы разбить стекло, потом — чтобы запуститься сквозь тоннель. Каждый жест связан с сюжетным поворотом: обещание университетского пути буквально трескается, за ним появляется статистика безработицы, диплом превращается в горящую бумагу, сертификаты рвутся на полосы.</p><h3>От обещания к свободе</h3><p>Шесть этапов идут от иллюзии контролируемого пути к интерактивной карте, где пользователь сам выбирает, куда смотреть. Финальный экран — город с башней Zero University в центре. Можно приближать, панорамировать и открывать карточки ролей, сценариев и инструментов. Это не просто финал: после того как сайт вёл пользователя за руку, он отдаёт управление обратно.</p><h2>Архитектура: один скролл управляет всем</h2><p>Одно из главных архитектурных решений — отказ от нативного скролла браузера. Нет ScrollTrigger, нет огромного прокручиваемого DOM. Вместо этого события колёсика и тача обновляют виртуальное значение скролла, которое плавно догоняет цель. Всё остальное — загрузка ассетов, анимации, тайминги шейдеров, текст и оверлеи — читают это единственное число.</p><p>Проект разбит на девять таких сегментов; загрузчик одновременно выполняет роль первых ворот. Каждый сегмент самодостаточен: у него свой жизненный цикл, свои объекты и своя утилизация. Это упростило поддержку и отладку. Переход к любому этапу воспроизводит жизненные циклы всех предыдущих сегментов, поэтому состояние всегда консистентно — как будто пользователь дошёл до этого места естественным скроллом.</p><h2>Конвейер 3D-ассетов: как уместить 1 ГБ в 10 МБ</h2><p>Большую часть четырёх месяцев ушла не на код, а на подготовку ассетов. Исходники пришли из Blender: несжатая геометрия, 8K-текстуры, запечённые анимации — всё вместе больше гигабайта. Первый месяц команда тратила на то, чтобы выбрать формат для каждого типа ресурсов.</p><h3>DRACO и KTX2</h3><p>Вся геометрия отправляется со сжатием DRACO, декодеры для которого хостятся локально в public/vendor/. Урок команда усвоила на собственном опыте: замедление на gstatic и unpkg привело к тому, что все сжатые ассеты перестали декодироваться, хотя сами файлы лежали на ихних серверах. Если декодер зависит от чужого CDN, весь пайплайн зависит от него.</p><p>Самый большой выигрыш дали текстуры. PNG может быть маленьким на диске, но в видеопамять он загружается распакованным. Текстура 2048² занимает около 16 МБ VRAM независимо от размера файла. Формат KTX2 со сжатием ETC1S остаётся сжатым на GPU, занимает меньше памяти и загружается быстрее.</p><h3>Собственный превьювер компрессии</h3><p>С KTX2 есть проблема: ETC1S — lossy, и локально его не посмотреть обычным просмотрщиком. Чтобы не гадать с настройками, команда сделала внутренний дашборд: сжатая и несжатая версия каждой картинки и видео рядом. Так можно было подобрать степень сжатия индивидуально — усилить там, где артефакты не заметны, сохранить качество для ключевых объектов и отключить мипмапы, где они не нужны. Инструмент простой, но редко встречается в WebGL-пайплайнах, хотя экономит огромное количество времени и памяти.</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-07-28/3a57d9e3-14e7-4f55-8aad-78cee34f1da3.webp" alt="Внутренний дашборд команды для сравнения сжатой и несжатой версии каждого ассета." /><figcaption>Превьювер компрессии: сжатая и несжатая версии текстур и видео рядом. Источник: Codrops / BUNQ LABS</figcaption></figure><h3>Атласы вместо дюжин картинок</h3><p>Похожие текстуры собрали в общие атласы. Например, все текстуры рук уместили в один атлас 4×4, а каждая mesh сдвигала UV-координаты, чтобы взять свой кусок. Спрайты текста, сертификаты, бумажные обрывки, облака, монеты и осколки стекла тоже ушли в атласы. Больше 50 отдельных изображений превратились примерно в дюжину атласов, а большинство градиентных фонов заменили несколькими строками GLSL. Ранние сборки весили 35–40 МБ, финальная — меньше 10 МБ. При этом интерактивная карта мира вынесена в отдельную группу загрузки, чтобы не блокировать открытие сайта.</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-07-28/e1686dcf-b13a-494e-94b3-0e32f0eb880a.webp" alt="Атлас текстур рук 4×4: каждая mesh сдвигает UV-координаты, чтобы взять свой кусок." /><figcaption>Атлас рук: все текстуры рук упакованы в одну текстуру 4×4. Источник: Codrops / BUNQ LABS</figcaption></figure><h2>Текстурные загрузки: главный источник фризов</h2><p>Уменьшить скачивание — только половина дела. Сжатые текстуры всё равно нужно загрузить в GPU на главном потоке, и крупная текстура легко блокирует рендер на 50 мс — достаточно, чтобы потерять несколько кадров. Если эта загрузка случается впервые во время скролла, подёргивание заметно сразу. Сайт может хорошо показывать себя в бенчмарках и при этом чувствоваться вязким.</p><ul><li>Декодировать вне главного потока — через createImageBitmap(). Тогда во время рендера остаётся только загрузка в GPU.</li><li>Загружать в GPU в простое — декодированные текстуры ставят в очередь и выгружаются по requestIdleCallback, пока есть запас времени.</li><li>Разбивать большие атласы на плитки 256² и загружать по одной на кадр, чтобы не выбиваться из бюджета кадра.</li></ul><p>Когда известно, что следующий этап вот-вот появится — после загрузчика или во время перехода между воротами — очередь сбрасывается синхронно. Все нужные текстуры уже в видеопамяти, прежде чем они появятся на экране.</p><h2>Адаптивное качество по реальному frame time</h2><p>Невозможно заранее знать, на каком устройстве откроется сайт. Рендерер поэтому постоянно измеряет время кадра по скользящему окну и динамически меняет уровень качества. Если рендеринг замедляется — понижается tier. Если производительность стабильно высокая — tier снова растёт. Задержка между переключениями не даёт постоянно метаться у границы.</p><p>Уровни качества влияют только на визуальную полировку: devicePixelRatio, количество сэмплов размытия, геометрию монет, разрешение текста. Сама история остаётся неизменной и на флагмане, и на бюджетном телефоне. Для особо тяжёлых моментов — например, разбитие стекла — рендерер временно понижает пиксельное соотношение и отключает размытие и иней, прячет затраты внутри самого жеста.</p><h2>Шейдеры под каждый эффект</h2><p>Каждый ключевой момент использует собственный шейдер. ИИ помогал сгенерировать первые версии, но все финальные шейдеры переписывались и дорабатывались вручную. Вот несколько приёмов, которые стоит запомнить.</p><h3>Постпроцессинг из нескольких проходов</h3><p>Кадр собирается из цепочки проходов: основная 3D-сцена, процедурный фон, преломление стекла, иней и след от жеста, глубина резкости, foreground с зернистостью и тональной картой, отложенный текст, и в конце — разбитое стекло. Стеклянный, текстовый и шейдер разбития инициализируются лениво и прогреваются в простое, чтобы не попадать на критический путь загрузчика.</p><h3>Иней из нарисованного нуля</h3><p>Эффект инея строится на ping-pong-буфере из четырёх проходов: горизонталь, вертикаль и две диагонали. Каждый проход распространяет нарисованный штрих, захватывая самые яркие соседние пиксели и создавая восьмиугольный паттерн роста. Яркость текстуры льда модулирует шаг распространения, край получается кристаллическим. После замыкания контура центр масс штриха становится точкой отсчёта для радиального таяния.</p><h3>Освещение без источников света</h3><p>Реалтаймовое освещение скинненной меши рук было бы слишком дорогим, а свет должен был точно совпадать с оригинальным артом. Поэтому освещение запекли в текстуры и смешивают между ними. Используются два слота: один содержит текущий ключевой кадр, другой — следующий. По мере проигрывания анимации новый слот плавно вытесняет старый.</p><p>Перед смешиванием альфа предумножается, чтобы вокруг прозрачных краёв рук не появлялись тёмные ореолы. Обе текстуры освещения лежат в одном атласе, поэтому переключение между ключами требует только обновления двух UV-смещений и коэффициента смешивания.</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-07-28/cb760b51-b0f4-4804-aff6-58ce015d2fda.webp" alt="Две запечённые текстуры освещения рук внутри одного атласа для плавного переключения." /><figcaption>Запечённое освещение рук: два ключевых кадра в одном атласе смешиваются по прогрессу анимации. Источник: Codrops / BUNQ LABS</figcaption></figure><h3>Горящие деньги</h3><p>Эффект сгорания использует noise-driven distance field. Фронт горения проходит по купюре, слегка опережая точку дискарда. Перед ним появляется тонкий HDR-ободок углей, затем обугленная поверхность. FBM — самая дорогая часть шейдера, поэтому фрагменты отсекаются как можно раньше, если они ещё не достигли порога горения.</p><h3>Рвущиеся сертификаты</h3><p>Каждая вершина хранит индекс полосы, к которой принадлежит фрагмент диплома. Фронт разрыва движется слева направо, и каждая полоса отделяется и падает независимо со своим вращением. Нормали для освещения строятся аналитически из той же волновой функции, которая анимирует меш, поэтому normal map не нужен.</p><h3>Тоннель ZERO</h3><p>Тоннель получается выдавливанием поперечного сечения из логотипа ZERO. Импульс яркости распространяется по мировой координате Z, поэтому эффект остаётся бесшовным, даже когда секции тоннеля повторяются.</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-07-28/bfbebb17-dc15-4bbb-b00c-a1fb7f98c13f.webp" alt="Тоннель ZERO, полученный выдавливанием сечения логотипа." /><figcaption>Тоннель ZERO: импульс яркости распространяется по мировой координате Z, сохраняя бесшовность. Источник: Codrops / BUNQ LABS</figcaption></figure><h3>Текст, который приходит в фокус</h3><p>Нарративный текст появляется не мгновенно, а проявляется через семиотводное гексагональное размытие. Радиус размытия зависит от прогресса появления, поэтому буквы будто фокусируются. Проход выполняется в отложенном текстовом проходе и полностью пропускается, когда текст не виден.</p><h3>Точность на мобильных</h3><p>Одна из самых неприятных находок возникла на реальных мобильных GPU. Несколько шейдеров пришлось явно перевести на highp float, потому что на Adreno и Mali mediump — это настоящий 16-битный float. На десктопе ошибок не было, а на телефоне полосы диплома двигались одинаково, а эффект горения покрывался бэндами. Вывод: тестировать на реальных мобильных устройствах нужно с первых дней, а не перед релизом.</p><h2>Дизайн взаимодействий</h2><p>Исходный материал от заказчика состоял из картинок и видео, поэтому поведение каждых ворот проектировали с нуля. Большинство используют общую систему «нажми и удерживай». Общий конфиг задаёт момент появления подсказки и длительность удержания, а каждые ворота реализуют визуал через собственные хуки.</p><p>Пока пользователь удерживает касание, кадр постепенно смещается в тёмно-красный. Когда стекло разбивается, цвет возвращается примерно за 200 мс — это создаёт ощущение, что осколки выбивают темноту. Проверили вариант в 400 мс: он ощущался заметно слабее. Звук разбития привязан к первому отрисованному кадру, а не к таймеру: на медленных устройствах таймер может сыграть раньше анимации, и эффект рассинхронится.</p><h2>Финальная награда — интерактивный мир</h2><p>Последняя последовательность запуска выносит пользователя в открытое небо. Облака расступаются, открывая город с башней Zero University в центре, над которой появляется ореол — финальные ворота. Камера приземляется в интерактивную карту, где можно панорамировать, зумить и открывать карточки с ролями, сценариями и инструментами. Плашка Join Beta превращается в форму waitlist. После того как сайт вёл пользователя через историю, он отдаёт ему контроль — и просит остаться.</p><h2>FAQ</h2><h2>Выводы</h2><p>Самый важный урок проекта — подготовка ассетов и загрузка в GPU заслуживают не меньше внимания, чем сам рендеринг. Инструменты вроде превьювера компрессии, локальных декодеров, очереди загрузки и адаптивного менеджера качества редко выглядят героически, но именно они превратили гигабайт исходников в 10-мегабайтный сайт, который не тормозит на дешёвом телефоне.</p><blockquote>ИИ генерировала первые версии кода и прототип, который выиграл нам проект, за 48 часов. Но полировка — сотни мелких решений, тестирование на реальных устройствах и инженерная интуиция — осталась за людьми.</blockquote><p><b>Источник:</b> технический разбор команды BUNQ LABS на <a href="https://tympanus.net/codrops/2026/07/17/zero-the-engineering-behind-a-defiant-interactive-narrative/">Codrops</a>.<br />Попробуйте открыть <a href="https://zero.university/">zero.university</a> на десктопе и на бюджетном смартфоне — и сравните, где заметнее компромиссы качества.</p>]]></content:encoded>
    </item>
    <item>
      <title>Геймификация как бизнес-инструмент: почему 80% проектов проваливаются и что с этим делать</title>
      <link>https://tproger.ru/articles/gejmifikaciya-kak-biznes-instrument-pochemu-80-proektov-provaliv</link>
      <comments>https://tproger.ru/articles/gejmifikaciya-kak-biznes-instrument-pochemu-80-proektov-provaliv?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/gejmifikaciya-kak-biznes-instrument-pochemu-80-proektov-provaliv</guid>
      <description><![CDATA[<p>Разбираем, почему большинство геймификаций не работает, как Duolingo и Wordle строят вовлечение и какие механики можно копировать без суда.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/gejmifikaciya-kak-biznes-instrument-pochemu-80-proektov-provaliv">Геймификация как бизнес-инструмент: почему 80% проектов проваливаются и что с этим делать</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Теория игр]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 10 Jul 2026 07:49:39 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если коротко: геймификация работает, но не так, как рассказывают вендоры. По данным <a href="https://www.amplifai.com/blog/gamification-statistics">AmplifAI</a>, игровые кампании дают в среднем вовлечённость на 100–150% выше, чем классические подходы, а геймифицированный контент шерится в 12 раз чаще. При этом примерно 80% корпоративных программ геймификации не достигают целей. Спрос огромный, качество — низкое, а причина проста: делать это берутся не те люди.</p><p>Для геймдева механика — самоценность. Для бизнеса она должна быть средством под KPI, а не целью самой по себе. Когда игровая обёртка оторвана от задачи, получается не игра, а цифровой пендель. Разбираем, где геймификация реально помогает, почему падает большинство проектов и какие механики можно спокойно копировать.</p><p><b>Геймификация</b> — не превращение ежеквартального отчёта в Mario. Это применение игровых механик к неигровым задачам: внимание, лиды, удержание, обучение, лояльность, сбор данных. Разница с игрой в одном: в хорошей игре процесс самоценен, в бизнесе — измеряется результатом.</p><p>Геймификация решает бизнес-задачи: внимание, лиды, удержание, обучение, лояльность и данные.</p><p>Работающие механики — прогрессия, стрики, лидерборды и дефицит — но только если они усиливают основную петлю, а не заменяют её.</p><p>Duolingo вырос в DAU в 4,5 раза за счёт CURR и loss aversion, но копирование механик Candy Crush провалилось.</p><p>Wordle показал, что простая механика + шеринг дают органический рост на 1100% и десятки миллионов пользователей.</p><p>Механики копировать можно, но реализацию, название и ассеты — нет: примеры 2048, клоны Wordle и дело Tetris v. Xio.</p><p>Поинтсификация и тёмные паттерны вредят бренду: механика без цели убивает мотивацию.</p><h2>Карта бизнес-задач: зачем бизнесу игровые механики</h2><p>Прежде чем добавлять бейджи и очки, нужно понять, какую конкретно проблему решает продукт. У каждой бизнес-цели — своя механика, и подмена цели ведёт к провалу.</p><h3>Внимание</h3><p>Брендовые мини-игры и интерактивные квизы нужны, чтобы человек остановил скролл. По данным <a href="https://www.beeliked.com/blog/gamification-market-trends-2025">BeeLiked</a>, потребитель уже не откликается на баннеры так же, как раньше, а игровой формат даёт время контакта и эмоциональную привязку. Примеры: колесо фортуны, scratch-карты, аркадные мини-игры от <a href="https://adact.me/campaign-types/branded-minigames/">Adact</a> и <a href="https://drimify.com/en/resources/7-examples-marketing-games-inspire-campaign/">Drimify</a>. Главный KPI — не время в игре, а стоимость привлечения внимания и переход к следующему шагу.</p><h3>Лиды</h3><p>Квиз, подборка продукта или конкурс — это обмен ценности на контакт. Человек тратит две минуты на игру и оставляет email или номер, потому что ему интересен результат. Работает, когда игра связана с продуктом напрямую: подбор кофе, расчёт страховки, тест знаний.</p><h3>Удержание</h3><p>Стрики, ежедневные награды и лиги нужны, чтобы вернуть пользователя завтра. Механика заимствована из мобильных игр: привычка формируется на повторяющемся триггере, действии и награде. Но если продукт сам по себе не полезен, стрик превращается в тревожное обязательство.</p><h3>Обучение</h3><p>Gamified learning повышает завершаемость курсов. По данным AmplifAI, курсы с геймифицированными элементами доходят до завершения в 90% случаев против 25% у обычных. Прогресс-бары, достижения и микроуроки помогают преодолевать порог входа. Главное — чтобы награда шла за понимание, а не за просмотр видео.</p><h3>Лояльность</h3><p>Программы лояльности с уровнями, бейджами и эксклюзивом увеличивают повторные покупки. По данным AmplifAI, геймифицированные программы лояльности дают рост удержания клиентов на 22%. Механика дефицита и статуса работает сильнее скидок, потому что создаёт ощущение принадлежности к закрытой группе.</p><h3>Данные</h3><p>Игры — один из самых ненавязчивых способов собрать zero-party data. В ходе квиза или рекомендательной игры пользователь сам рассказывает о предпочтениях, и это данные высокого качества. Но сбор данных не должен быть единственной целью: если игра создана только ради формы, конверсия будет низкой.</p><h2>Механики под KPI: что реально влияет на поведение</h2><p>Не все игровые механики одинаково полезны для бизнеса. Есть четыре рабочих столпа, которые можно встретить почти в каждом успешном проекте.</p><h3>Прогрессия</h3><p>Полоска опыта, уровни, круги мастерства. Человеку важно видеть, что он продвинулся. Эффект одарённого прогресса показывает: если пользователь видит, что уже часть пути пройдена, он скорее дойдёт до конца. Бизнес-вывод: показывайте прогресс к конкретной выгоде, а не абстрактный счётчик.</p><h3>Стрики</h3><p>Последовательные дни действий — самая мощная и самая опасная механика. Она опирается на loss aversion: потеря 100-дневного стрика болезненнее, чем удовольствие от нового уровня. Работает, когда действие полезно само по себе. Превращается в манипуляцию, когда пользователь держится ради счётчика.</p><h3>Лидерборды</h3><p>Соревнование работает, если участники чувствуют, что победа достижима. Открытый глобальный рейтинг демотивирует новичков, а сегментированные группы из 20–30 человек повышают вовлечённость. Duolingo использует именно когортные лиги, а не единую таблицу всех пользователей.</p><h3>Дефицит</h3><p>Ограниченное время, лимитированные награды, эксклюзивные бейджи. Дефицит повышает воспринимаемую ценность, но искусственная нехватка без реальной ценности быстро обесценивает весь проект.</p><p><b>Правило одной петли:</b> каждая механика должна усиливать основное действие продукта. Если стрик не ведёт к реальному навыку, а лидерборд не ведёт к результату — это поинтсификация, а не геймификация.</p><h3>Кейс Duolingo: как DAU вырос в 4,5 раза</h3><p>Duolingo — лучший учебник по тому, как геймификация строит привычку. По данным <a href="https://www.ludaxis.io/blog/gamification-in-apps-duolingo-case-study-2026">Ludaxis</a>, приложение достигло 50 млн ежедневных активных пользователей в 2025 году, а DAU вырос в 4,5 раза за четыре года. Ключевой метрикой стал CURR — Current User Retention Rate, вероятность того, что активный пользователь останется активным завтра.</p><p>В основе — стрики, лиги, двойная валюта, ежедневные квесты и персонализированные пуши. Но главное не количество механик, а то, как они связаны с целью: «пройти один короткий урок каждый день». Каждая система — от страховки стрика до соревнования в лиге — подталкивает к этому единственному действию.</p><p>По данным <a href="https://siddhartha-arora102.medium.com/product-stories-how-duolingo-reignited-growth-by-mastering-retention-gamification-15b6d190b840">Siddhartha Arora</a>, внедрение лидербордов дало прирост общего времени обучения на 17% и утроило число высокововлечённых пользователей. Пользователи с семидневным стриком в 3,6 раза чаще остаются в продукте надолго. Это не волшебство — это loss aversion и повторяющийся цикл действие-награда.</p><h4>Почему механика из Candy Crush провалилась</h4><p>Интересный контрпример: Duolingo пробовал перенести ограничение ходов из match-3 — «счётчик ошибок» в уроке. Идея казалась логичной: ограниченные попытки создают напряжение. Результат — провал: retention не вырос, пользователи не отреагировали, идею отменили. Вывод, который стоит выгравировать на рабочем столе продакт-менеджера: механика работает только в контексте.</p><h2>Ре-скин механик: вечнозелёные форматы и короткое окно хайпа</h2><p>Большая часть брендовых игр — не новые механики, а ре-скин проверенных форматов. Это нормально: простые правила снижают порог входа, а короткая сессия соответствует мобильному поведению.</p><h3>Вечнозелёные конвейеры</h3><p>Match-3, 2048, слова, колесо фортуны, Memory, quiz — эти механики давно стали SaaS. Платформы вроде <a href="https://adact.me/campaign-types/branded-minigames/">Adact</a>, <a href="https://drimify.com/en/resources/7-examples-marketing-games-inspire-campaign/">Drimify</a> и <a href="https://www.beeliked.com/blog/gamification-market-trends-2025">BeeLiked</a> предлагают белый лейбл: маркетолог меняет скины, призы и вопросы, не трогая код. Такие игры не дают вирусного взрыва, но стабильно собирают лиды и удерживают аудиторию.</p><h3>Хайповые моменты</h3><p>Wordle, Connections, Strands — это не вечнозелёные механики, а кратковременные культурные явления. Они растут на простоте, ежедневном ритуале и шеринге. Окно для копирования короткое: через несколько месяцев аудитория устает, и новый клон не взлетает. Бренду важно не повторить Wordle, а поймать, почему он взлетел, и быстро адаптировать механику под свой контекст.</p><h3>Что делает механику ре-скинуемой</h3><ul><li>Простые правила. Объяснение за 10 секунд или одной картинкой.</li><li>Короткая сессия. Одна попытка занимает меньше минуты.</li><li>Слабый нарратив. Не нужно знать сюжет, чтобы играть.</li><li>Встроенная причина вернуться. Ежедневный пазл, новый уровень, еженедельный рейтинг.</li><li>Лёгкий шеринг. Результат можно показать без спойлера — как эмодзи-сетка Wordle.</li></ul><h2>Кейс Wordle: одна страница на React и органика +1100%</h2><p>Wordle — эталонный пример того, как простая механика становится бизнес-активом. В октябре 2021 года разработчик Джош Уордл выложил игру для партнёшки; к январю 2022 у неё были миллионы ежедневных игроков. The New York Times купил Wordle за сумму в «low seven figures» — оценки указывают на 1–3 млн долларов, по данным <a href="https://dinogame.gg/blog/wordle-nyt-business-model/">Dinogame</a>.</p><p>Сделка была интересна не ценой, а стратегией. Wordle остался бесплатным: его задача — верхушка воронки для подписок NYT Games. По данным <a href="https://digiday.com/marketing/why-the-new-york-times-is-forging-connections-with-gamers-as-it-diversifies-its-audience/">Digiday</a>, к марту 2023 года Wordle привёл в экосистему NYT «десятки миллионов» новых пользователей, а к декабрю 2023 большая часть времени в официальных приложениях NYT приходилась на игры.</p><p>Цифры ещё красноречивее. По данным <a href="https://commandlinux.com/statistics/wordle-link/">CommandLinux</a> со ссылкой на WordsRated, органический трафик NYT вырос с 0,13 млрд визитов в Q4 2021 до 1,56 млрд в Q1 2024 — прирост на 1100%. Доля Wordle в общем органическом трафике NYT достигла 82,69%. В 2024 году Wordle собрал 5,3 млрд игр и около 14,5 млн ежедневных игроков.</p><p><b>Вывод:</b> Wordle не выдумал новую механику — механика угадывания слов известна десятилетиями. Революция случилась в сочетании: простое правило, один пазл в день, emoji-шеринг без спойлера и ежедневный ритуал. Бизнесу важнее понять эту комбинацию, чем копировать внешний вид.</p><h2>Юридика: механику можно, а внешний вид — нет</h2><p>Разработчики часто спрашивают: а можно ли просто сделать игру «как Wordle, но для нашего бренда»? Ответ — да, но с оговорками.</p><p>По данным <a href="https://en.wikipedia.org/wiki/Video_game_clone">Wikipedia</a> и практике авторского права, игровые механики, правила и общие идеи не охраняются копирайтом. Охраняется конкретное выражение: код, графика, музыка, название, персонажи, визуальный стиль, а иногда и общий «look and feel». Именно поэтому существуют тысячи клонов match-3, но любой из них рискует, если копирует ассеты Candy Crush.</p><h3>Threes! и 2048</h3><p>Классический пример: Threes! вышел в 2014 году, через месяц появился 2048 с той же механикой слияния плиток, но другой визуализацией. 2048 стал вирусным, а Threes! остался нишевым. Механика была скопирована легально, но история показывает, что копия победила не из-за качества, а из-за простоты и скорости распространения.</p><h3>Клоны Wordle</h3><p>После покупки Wordle NYT появились сотни клонов на разных языках. Большинство не нарушают закон, пока не используют название Wordle, цветовую схему и ассеты NYT. Механика «угадай слово за шесть попыток» свободна для повторного использования.</p><h3>Tetris Holding v. Xio Interactive</h3><p>Дело <a href="https://en.wikipedia.org/wiki/Tetris_Holding,_LLC_v._Xio_Interactive,_Inc.">Tetris Holding v. Xio Interactive</a> (2012) стало важным прецедентом. Суд признал, что сама механика Tetris не охраняется, но конкретное выражение — размер поля 20×10, форма и цвет фигур, тень падения, демонстрация следующей фигуры — защищено. Mino оказался настолько похож в «look and feel», что суд запретил его распространение. Вывод: копируйте идею, но рисуйте свои фигуры.</p><h2>Этика: когда геймификация становится поинтсификацией</h2><p>Не вся геймификация одинаково полезна. Себастьян Детердинг ввёл термин <b>поинтсификация</b> — навешивание очков, бейджей и таблиц на активность без изменения её структуры. Это работает на короткой дистанции, но не создаёт ни навыка, ни лояльности.</p><p>Иэн Богост назвал подобный подход <b>exploitationware</b>: система, которая использует психологические уязвимости ради метрик продукта. Тёмные паттерны — искусственный дефицит, вина за разрыв стрика, манипулятивные пуши — повышают retention, но разрушают доверие. По данным <a href="https://nerdsip.com/blog/gamification-gone-wrong-when-streaks-become-the-point">NerdSip</a>, долгие стрики часто превращаются в тревогу, а пользователи начинают выполнять бесполезные действия ради сохранения счётчика.</p><p>По данным <a href="https://www.growthengineering.co.uk/dark-side-of-gamification/">Growth Engineering</a>, внешние награды могут подавлять внутреннюю мотивацию — эффект сверхобоснования. Если человек учился из любопытства, а ему начали платить очками, любопытство может угаснуть быстрее, чем появится привычка.</p><h3>Как не убить рабочую петлю брендингом и формами</h3><ol><li>Не ставьте форму до ценности. Если игра начинается с регистрации, половина аудитории уйдёт до первой награды.</li><li>Не перегружайте брендом. Логотип на каждом экране не повышает лояльность, а отвлекает от механики.</li><li>Давайте opt-out. Возможность отключить лидерборд, пуши или стрик снижает тревожность и повышает доверие.</li><li>Связывайте награду с реальным результатом. Бейдж за прохождение урока ценнее бейджа за вход в приложение.</li><li>Тестируйте уязвимые группы. Дети, новички и люди с тревожностью реагируют на loss aversion сильнее остальных.</li></ol><h2>Выводы</h2><p>Геймификация — это не волшебная таблетка для метрик, а инструмент проектирования поведения. Она работает, когда команда понимает, какую бизнес-задачу решает и какая игровая механика её усиливает. Она ломается, когда механика становится самоцелью, а пользователь оказывается в ловушке очков.</p><blockquote>Gamification should be a strategy, not an afterthought or add-on.</blockquote><p>Для геймдева это хорошая новость. Бизнесу нужны люди, которые умеют проектировать петли вовлечения, балансировать экономику и понимать психологию игрока. Но переход из игр в бизнес требует дисциплины: здесь нет места «just for fun». Каждый уровень, каждый стрик и каждая награда должны вести к измеримому результату.</p><p>Если вы планируете внедрять геймификацию — начните не с выбора платформы, а с вопроса: «что человек будет делать завтра, потому что вчера ему было полезно?». Ответ на него и станет вашей рабочей петлёй. Всё остальное — обёртка.</p><p><b>Источники:</b> <a href="https://www.amplifai.com/blog/gamification-statistics">AmplifAI</a>, <a href="https://www.mordorintelligence.com/industry-reports/gamification-market">Mordor Intelligence</a>, <a href="https://www.beeliked.com/blog/gamification-market-trends-2025">BeeLiked</a>, <a href="https://commandlinux.com/statistics/wordle-link/">CommandLinux / WordsRated</a>, <a href="https://digiday.com/marketing/why-the-new-york-times-is-forging-connections-with-gamers-as-it-diversifies-its-audience/">Digiday</a>, <a href="https://dinogame.gg/blog/wordle-nyt-business-model/">Dinogame</a>, <a href="https://www.deconstructoroffun.com/blog/2025/4/14/duolingo-how-the-15b-app-uses-gaming-principles-to-supercharge-dau-growth">Deconstructor of Fun</a>, <a href="https://www.ludaxis.io/blog/gamification-in-apps-duolingo-case-study-2026">Ludaxis</a>, <a href="https://siddhartha-arora102.medium.com/product-stories-how-duolingo-reignited-growth-by-mastering-retention-gamification-15b6d190b840">Siddhartha Arora</a>, <a href="https://peekandpoke.com/blog/what-are-branded-games/">Peek &amp; Poke</a>, <a href="https://adact.me/campaign-types/branded-minigames/">Adact</a>, <a href="https://drimify.com/en/resources/7-examples-marketing-games-inspire-campaign/">Drimify</a>, <a href="https://www.redbitgames.com/advergaming-this-is-how-video-games-help-brands-promote-their-products/">Redbit Games</a>, <a href="https://nerdsip.com/blog/gamification-gone-wrong-when-streaks-become-the-point">NerdSip</a>, <a href="https://www.growthengineering.co.uk/dark-side-of-gamification/">Growth Engineering</a>, <a href="https://en.wikipedia.org/wiki/Video_game_clone">Wikipedia: Video game clone</a>, <a href="https://en.wikipedia.org/wiki/Tetris_Holding,_LLC_v._Xio_Interactive,_Inc.">Wikipedia: Tetris v. Xio</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Почему жёсткий UX-процесс мешает делать хорошие продукты</title>
      <link>https://tproger.ru/articles/pochemu-zhyostkij-ux-process-mewaet-delat-horowie-produkty</link>
      <comments>https://tproger.ru/articles/pochemu-zhyostkij-ux-process-mewaet-delat-horowie-produkty?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/pochemu-zhyostkij-ux-process-mewaet-delat-horowie-produkty</guid>
      <description><![CDATA[<p>Двойной ромб и дизайн-мышление — полезные инструменты, но плохие правила. Разбираем принцип пропорциональности, совмещение этапов и гибкий фреймворк из 5 шагов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/pochemu-zhyostkij-ux-process-mewaet-delat-horowie-produkty">Почему жёсткий UX-процесс мешает делать хорошие продукты</a>»</p>]]></description>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 19 Jun 2026 15:30:53 GMT</pubDate>
      <content:encoded><![CDATA[<p>Три недели, сломанный экран мобильного банка и никакого времени на полноценный discovery. Именно такой проект объяснил мне главное: UX-процесс — это инструмент. Инструмент существует для работы, а не ради себя.</p><p>Большинство UX-дизайнеров выучили один из шаблонных фреймворков: двойной ромб (Double Diamond — двухфазная модель Design Council), дизайн-мышление, Agile UX. Все они описывают похожую последовательность — исследование, анализ, генерация идей, тестирование. На бумаге выглядит убедительно. В реальных проектах — не всегда.</p><p>Проблема не в самих фреймворках. Проблема начинается тогда, когда процесс превращается в цель. Я перестал следовать двойному ромбу как инструкции — и начал использовать его как один из инструментов.</p><ul><li>Дизайн-процесс помогает командам работать согласованно, но становится помехой, когда превращается в самоцель</li><li>Принцип пропорциональности: используйте минимально достаточный процесс для принятия обоснованного решения</li><li>Совмещайте этапы — анализировать данные и рекрутировать пользователей можно параллельно</li><li>Привлекайте разработчиков и PM до того, как дизайн ощущается финальным</li><li>Рефлексия после каждого проекта формирует переиспользуемый инструментарий</li></ul><h2>Зачем вообще нужен дизайн-процесс</h2><p>Дизайн-процессы появились не случайно. Когда над продуктом работает команда, структура помогает всем двигаться в одном направлении. Общий фреймворк даёт дорожную карту — от постановки проблемы до передачи разработчикам.</p><p>Структура полезна. Проблема начинается тогда, когда процесс превращается в самоцель, а не средство достижения результата.</p><h2>Когда процесс становится помехой</h2><h3>Процесс как цель вместо инструмента</h3><p>В какой-то момент команды начинают больше думать о том, на каком этапе они находятся, чем о том, правильную ли проблему решают. Разговоры сводятся к вопросам: закончили ли мы discovery? Достаточно ли у нас персон? Нужно ли делать journey map?</p><p>Сами по себе эти вопросы нормальны. Но они становятся помехой, если отвлекают от главного — понимания и решения пользовательской проблемы.</p><p>Это случается не потому, что команды небрежны. Чаще всего процесс становится заменой вещей, которые в команде ещё не сложились: согласованности, уверенности, доверия стейкхолдеров. Структурированный процесс делает неопределённость терпимой. Переход к следующему этапу ощущается как прогресс, даже если команда ещё не до конца понимает проблему.</p><p>Хорошо оформленный процесс иногда скрывает слабую продуктовую стратегию. Когда команда движется по этапам, это ощущается как прогресс — даже если реальная проблема пользователя так и не была сформулирована точно. Можно идеально пройти все этапы двойного ромба и всё равно выпустить продукт, который не попадает в цель, если работа никогда по-настоящему не фокусировалась на пользователе.</p><h3>Когда реальные ограничения ломают любой план</h3><p>Реальные проекты редко предоставляют идеальные условия. Хороший пример — работа над мобильным банковским приложением с конкретной задачей: починить главный экран, который оброс функциями и стал неудобным. Пользователи жаловались на навигацию, компания хотела решить проблему до крупной маркетинговой кампании. Срок — три недели.</p><p>По учебнику нужно было провести полноценный discovery, набрать персоны, построить journey map. На практике этого времени не было. Вместо этого — анализ существующих данных, тикеты службы поддержки и четыре интервью с пользователями. Они помогли выявить три главных проблемы. Команда из четырёх дизайнеров опиралась на готовую дизайн-систему заказчика: каждый создал своё направление — так получилось четыре конкурирующих решения, которые можно было сразу тестировать с пользователями.</p><p>Важный момент: аналитика показала, что около 35% пользователей бросали транзакцию на полпути — после выбора получателя, но до подтверждения перевода. Сессионные записи и тикеты указывали на то же место. Интервью объяснили <i>почему</i> там возникала пауза.</p><blockquote>Настоящий вопрос — не «всё ли мы знаем?», а «достаточно ли мы знаем для принятия взвешенного решения прямо сейчас?». Иногда именно это и есть реалистичный стандарт.</blockquote><h2>Три урока из практики</h2><p>Из этого опыта я вывел три принципа, которые помогают адаптировать процесс к реальным условиям.</p><h3>1. Адаптируйте процесс к задаче</h3><p>В праве есть принцип пропорциональности: даже когда преследуется законная цель, нужно использовать наименее инвазивный метод. Та же идея работает в дизайне.</p><p>Не каждый проект требует долгого discovery, детальных персон или полноценного journey mapping. Перед тем как выбирать UX-активности, задайте вопрос: что нужно узнать или проверить, чтобы принять хорошее решение? Затем выберите минимально достаточный процесс. Срезайте шаги, которые не служат проекту — но не срезайте углы там, где риски высоки.</p><p>Иногда формальный процесс — именно то, что нужно. В enterprise-продуктах, в регулируемых отраслях (финтех, медтех, госсектор), при крупных запусках с несколькими командами структура снижает риски и удерживает всех в одном фокусе. Цель — не минимизировать процесс ради минимизации. Цель — сделать его пропорциональным задаче.</p><h3>2. Совмещайте этапы, когда это помогает</h3><p>Линейная структура UX-процессов удобна для трекинга, особенно в больших командах. Но реальные проекты не всегда движутся по чётким фазам.</p><ul><li>Если можно анализировать существующие данные и параллельно рекрутировать пользователей — делайте это одновременно</li><li>Если можно набрасывать концепции, пока ещё идёт исследование — набрасывайте</li><li>Если можно начать тестировать грубые идеи, не дождавшись ответов на все вопросы — тестируйте</li></ul><p>Дело не в том, чтобы торопиться. Дело в том, чтобы работа шла вперёд, пока вы продолжаете учиться. В быстро меняющихся продуктах приоритеты меняются быстрее, чем успевает формальный процесс. Совмещение этапов помогает работе оставаться актуальной.</p><h3>3. Привлекайте команду как можно раньше</h3><p>Дизайнеры понимают пользовательскую проблему. Разработчики понимают, что технически реализуемо. Решение может отлично смотреться в Figma и оказаться нереалистичным в рамках дедлайна или технических ограничений.</p><p>Разработчиков стоит подключать до того, как дизайн ощущается финальным. В том проекте с банковским приложением команда показала разработчикам все четыре варианта до тестирования с пользователями. Все оказались реализуемы — но если бы один был слишком сложным, это стало бы понятно до передачи, а не после.</p><p>То же касается PM и стейкхолдеров. Когда они включены с самого начала, решения об объёме работ, приоритетах и технических ограничениях принимаются совместно. UX становится частью постоянного диалога, а не чем-то, что дизайнеры представляют в конце и затем вынуждены защищать.</p><h2>Гибкий фреймворк из пяти шагов</h2><p>Вместо жёсткого следования фреймворку можно использовать набор вопросов, которые помогают выстроить правильный процесс под конкретный проект. Это не новый фреймворк — это метод калибровки под ситуацию.</p><h3>Шаг 1. Соберите ресурсы</h3><p>Прежде чем решать, что исследовать, стоит понять, что уже доступно. Аналитика, предыдущие исследования, тикеты поддержки, дизайн-система, прямой доступ к разработчикам — всё это меняет то, как должен выглядеть ваш процесс.</p><p>У каждой компании свой набор доступных ресурсов. Иногда это данные аналитики и предыдущие исследования. Иногда — юридические, технические или регуляторные ограничения. Первый шаг — понять, что у вас есть и что из этого можно использовать прямо сейчас.</p><h3>Шаг 2. Что команда уже знает</h3><p>Прежде чем решать проблему, важно разобраться, что команда уже знает или думает, что знает. Это этап согласованности. Вот вопросы, которые его структурируют:</p><ul><li>Какую проблему мы пытаемся решить?</li><li>Во что уже верят стейкхолдеры? Какие у них доказательства?</li><li>Какие допущения они делают?</li><li>Что они узнали из данных, поддержки, предыдущих исследований?</li><li>Какой результат им нужен от этого проекта?</li></ul><p>Этот этап — не просто сбор контекста. Вы учитесь тому, как команда и стейкхолдеры определяют проблему. Это важно: их описание проблемы не всегда совпадает с тем, как её переживают пользователи.</p><h3>Шаг 3. Что ещё неизвестно</h3><p>Когда вы знаете, во что верит команда, ищите пробелы. Это пользовательская часть процесса. Когда нет времени на полный discovery, самое полезное — определить, что нужно узнать напрямую от пользователей: где они застревают, где колеблются, что именно непонятно.</p><p>Данные показывают, <i>где</i> происходит проблема. Разговоры с пользователями помогают понять, <i>почему</i>. Именно сочетание этих двух источников даёт достаточно уверенности для действий.</p><h3>Шаг 4. Прототипируйте раньше, чем кажется нужным</h3><p>Начинать прототипировать стоит раньше, чем это кажется уместным. Ранние скетчи основаны на допущениях — и это нормально. Они не финальны, но дают конкретную основу для обсуждения и реакции пользователей.</p><p>Цель — не спешить с дизайном до понимания проблемы. Цель — дать исследованию и дизайну <b>информировать друг друга</b>. Ранние прототипы обнажают пробелы в мышлении и упрощают обсуждение абстрактных проблем. Лучшая информация всегда делает дизайн сильнее — но дизайн не обязан ждать, пока будут получены ответы на все вопросы.</p><h3>Шаг 5. Рефлексируйте и корректируйте</h3><p>После каждого проекта стоит задавать четыре вопроса: что сработало, что тормозило, что мы упустили и что можно упростить в следующий раз?</p><p>Такая рефлексия со временем формирует переиспользуемый инструментарий: вопросы для адаптации новых участников, чек-листы ресурсов, шаблоны прототипов. Эти вещи не заменяют дизайн-процесс. Они помогают выстраивать правильный процесс под каждый следующий проект.</p><h2>Вывод</h2><p>Дизайн-процесс — не враг хорошего UX. Правильно применённый, он даёт команде структуру, помогает принимать обоснованные решения и фокусироваться на пользователях.</p><p>Но процесс — это средство, не цель. Реальные проекты редко происходят в идеальных условиях. Дедлайны сжимаются, приоритеты меняются, и команды часто принимают решения с неполными данными. Именно поэтому дизайнерам стоит относиться к фреймворкам как к инструментам: адаптировать под нужды проекта, совмещать этапы, привлекать команду достаточно рано, чтобы её мнение реально влияло на направление.</p><p>Хороший UX-процесс поддерживает лучшие решения. Он не должен мешать их принятию.</p><p>Источник: <a href="https://blog.logrocket.com/ux-design/rethinking-ux-design-process/">Rethinking the UX design process</a> — LogRocket Blog</p>]]></content:encoded>
    </item>
    <item>
      <title>Как сделать 3D-вращение изображений при скролле: разбираем эффект от Codrops</title>
      <link>https://tproger.ru/articles/kak-sdelat-3d-vrashhenie-izobrazhenij-pri-skrolle-razbiraem-effek</link>
      <comments>https://tproger.ru/articles/kak-sdelat-3d-vrashhenie-izobrazhenij-pri-skrolle-razbiraem-effek?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-sdelat-3d-vrashhenie-izobrazhenij-pri-skrolle-razbiraem-effek</guid>
      <description><![CDATA[<p>Разбираем, как устроен эффект 3D-вращения картинок из свежей статьи Codrops. Примеры кода на GSAP, Lenis и CSS-трансформации.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-sdelat-3d-vrashhenie-izobrazhenij-pri-skrolle-razbiraem-effek">Как сделать 3D-вращение изображений при скролле: разбираем эффект от Codrops</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[CSS]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 19 Jun 2026 08:09:13 GMT</pubDate>
      <content:encoded><![CDATA[<p>Хотите, чтобы лендинг или портфолио запомнили с первого взгляда? Попробуйте добавить изображениям объёмное вращение при скролле. Эффект выглядит дорого и кинематографично, но под капотом — обычные CSS 3D-трансформации и немного JavaScript.</p><p>В начале июня команда Codrops опубликовала небольшую, но наглядную демонстрацию: галерея фотографий проезжает через вьюпорт, пока каждая картинка медленно кувыркается в трёхмерном пространстве. Идея позаимствована у аниматора Jason Booth, а код выложен на GitHub вместе с пятью готовыми вариациями.</p><p>В этой статье разберёмся, как устроен эффект, из чего состоит математика и как быстро повторить его у себя — без WebGL, Canvas и тяжёлых библиотек.</p><p>Эффект строится на CSS-свойствах perspective и transform-style: preserve-3d, а анимация крутит rotationX/Y/Z и translateZ по прогрессу скролла.</p><p>Для синхронизации с прокруткой используется GSAP ScrollTrigger с параметром scrub: true; плавность даёт библиотека Lenis.</p><p>Codrops предлагает пять вариаций: от мягкого волнообразного движения до агрессивного разворота с blur и изменением яркости.</p><p>Всего нужно три ингредиента: разметка с фоновыми изображениями, CSS для 3D-контекста и 30—40 строк JS, которые связывают скролл с трансформациями.</p><h2>Как устроен базовый эффект</h2><p>В основе лежит простая мысль: каждая картинка — это не плоский прямоугольник, а объект в 3D-пространстве. Пока пользователь скроллит страницу, объект проходит перед «камерой» и меняет ориентацию. Входная точка анимации начинается, когда элемент появляется снизу экрана, а заканчивается, когда уходит вверх.</p><p>Для реализации используется связка GSAP + ScrollTrigger. Параметр scrub: true привязывает анимацию напрямую к позиции скролла: чем дальше прокручено, тем сильнее трансформация. Библиотека Lenis отвечает за плавность: без неё колёсико мыши на Windows или трекпад на macOS могут давать рваное движение, и вся магия растворится.</p><h3>Разметка и CSS</h3><p>HTML минимален: контейнер .gallery и набор .gallery__item с фоновыми картинками. Главное — обернуть каждый item дополнительным .gallery__item-wrap и задать ему perspective. Именно обёртка создаёт 3D-контекст, внутри которого вращается сама картинка.</p><h3>Плавный скролл и триггеры</h3><p>Перед запуском анимации инициализируем Lenis и связываем её с GSAP. Это стандартный «боеприпас» для большинства современных сайтов с анимацией по скроллу.</p><h3>Математика вращения</h3><p>Каждой картинке случайно задаётся начальная ориентация по трём осям. Затем GSAP анимирует от этих значений до противоположных, создавая эффект «переворота» на 180°. В обработчике onUpdate вычисляется смещение по оси Z: чем ближе элемент к центру экрана, тем глубже он «погружается» в пространство.</p><p><b>Совет:</b> если вы убираете плавный скролл, протестируйте эффект на мобильном устройстве. Нативный скролл на iOS и Android может дать менее плавную картинку, и тогда имеет смысл оставить Lenis или добавить @media (prefers-reduced-motion) для доступности.</p><h2>Пять вариаций одной идеи</h2><p>Codrops не ограничивается одной анимацией: в репозитории пять HTML-файлов, каждый из которых демонстрирует, как одно и то же ядро превращается в разное настроение. Вот краткая карта отличий.</p><ul><li><b>Вариант 1.</b> Мягкое волнообразное расположение картинок по горизонтали, случайные углы rotationX 70—120° и небольшой зазор по Z (−50 px). Универсальная, спокойная подача.</li><li><b>Вариант 2.</b> Больший размах по rotationX (240—290°) и усиленная глубина до −300 px. Картинки буквально переворачиваются перед глазами.</li><li><b>Вариант 3.</b> Триггер вычисляет поворот через cos(progress * π), добавляет сдвиг по Y (yPercent) и фильтры saturate/brightness. Получается «подводное» движение.</li><li><b>Вариант 4.</b> Акцент на скорости: в обработчике Lenis отслеживается velocity, и чем быстрее скролл, тем сильнее blur и ниже насыщенность. Динамично и спортивно.</li><li><b>Вариант 5.</b> Агрессивное искажение масштаба: scaleX и scaleY меняются в противофазе, картинки растягиваются и сжимаются, проходя через центр экрана.</li></ul><h2>Мини-руководство: повторяем у себя</h2><p>Чтобы не копировать всю демку целиком, можно взять только схему и адаптировать под свой проект. Ниже — самый короткий путь от макета до рабочей анимации.</p><h2>FAQ</h2><h2>Выводы</h2><p>3D-анимации по скроллу — это способ сделать обычную галерею запоминающейся без тяжёлых WebGL-сцен. Хватает CSS-свойств perspective и transform-style, пары строк GSAP и библиотеки Lenis для плавности.</p><p>Главное, что предлагает Codrops, — не готовый плагин, а отправная точка. Пять вариаций показывают, как одну и ту же идею можно растянуть от спокойного волнообразного движения до агрессивного искажения с blur. Возьмите базовую схему, подберите углы и фильтры под свои картинки — и получите эффект, который будет выглядеть так, будто над ним работала целая команда аниматоров.</p><blockquote>Пользователь не запоминает интерфейс, который просто красив. Он запоминает тот, который отзывается на его действия.</blockquote><p>Источники: оригинальная статья <a href="https://tympanus.net/codrops/2026/06/18/exploring-3d-image-rotations-on-scroll/">Codrops</a>, демо <a href="https://tympanus.net/Development/RotatingOnScrollAnimations/">Rotating On-Scroll Animations</a> и исходный код на <a href="https://github.com/codrops/RotatingOnScrollAnimations">GitHub</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Фреймворк-независимые дизайн-системы: практический подход к веб-компонентам</title>
      <link>https://tproger.ru/translations/frejmvork-nezavisimye-dizajn-sistemy-prakticheskij-podhod-k-veb-2</link>
      <comments>https://tproger.ru/translations/frejmvork-nezavisimye-dizajn-sistemy-prakticheskij-podhod-k-veb-2?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Картофельный Повелитель]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/frejmvork-nezavisimye-dizajn-sistemy-prakticheskij-podhod-k-veb-2</guid>
      <description><![CDATA[<p>Как построить дизайн-систему без привязки к фреймворку, используя веб-стандарты и веб-компоненты. Пошаговое руководство с примерами кода и документацией. Разбираем на практике.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/frejmvork-nezavisimye-dizajn-sistemy-prakticheskij-podhod-k-veb-2">Фреймворк-независимые дизайн-системы: практический подход к веб-компонентам</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[CSS]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 14 Jun 2026 07:00:20 GMT</pubDate>
      <content:encoded><![CDATA[<p>Перевод статьи Scott Riley (Piccalilli), оригинал: https://piccalil.li/blog/framework-agnostic-design-systems-part-1/<br /><br />Прежде чем мы начнём, небольшое примечание: это практическое руководство, которое охватывает управление, создание и упаковку компонентов дизайн-системы. Невозможно углубляться в каждый шаг до мельчайших деталей, не превратив материал в полноценный курс. Предполагается наличие некоторых базовых знаний:</p><ul><li>Базовые знания HTML и CSS</li><li>Базовое понимание веб-компонентов</li><li>Установленные Node.js и npm</li><li>Умение работать в терминале на уровне, достаточном для установки пакетов</li><li>Базовые знания конфигурационных файлов и JSON</li><li>Понимание революционной идеи о том, что &lt;button&gt; — это не &lt;div&gt;</li></ul><p>Наконец, это довольно длинный пост. Считайте каждый h2 приглашением сделать перерыв на чай и подышать свежим воздухом.</p><p><a href="https://www.youtube.com/watch?v=AWM5ZNdWlqw">Okayyyyylet’sgo</a>.</p><h2>Фреймворк-независимые компоненты</h2><p>Из всех недавних хайпов/пузырей/назовите их как хотите в мире технологий тот, что одновременно волновал и ставил в тупик меня в равной степени, — это бум дизайн-систем. Общая концепция определённо фантастическая, и почти любая команда или проект могут извлечь пользу из какой-либо формы централизованного хранилища дизайнерских решений. Но, как и любой другой бум, он породил много <i>странностей</i>. Люди сошлись на определённых способах восприятия дизайна в «эпоху дизайн-систем», слайды <a href="https://atomicdesign.bradfrost.com/chapter-2/">Atomic Design</a> в каждой конференц-презентации стали мемом, а дизайн-токены стали целой личностью для некоторых.</p><p>Этот пост — не обо всех странностях, но нам нужно опереться на что-то более конкретное, чем <i>крутая технология — это круто</i>. И одна из моих наименее любимых странностей из курса «Дизайн-системы: странности 101» довольно специфична, но при этом является источником настоящей физической боли для меня: <i>библиотеки компонентов, привязанные к конкретному фреймворку</i>.</p><p>Идея о том, что наши дизайн-системы могут, и даже должны, работать на компонентах, написанных под конкретный фреймворк, кажется мне дикой. Дизайн-системы, по крайней мере частично, должны быть про универсальность, компонуемость и переносимость. Встраивание привязки к фреймворку в уравнение с самого первого дня абсолютно нелепо.</p><p>Я понимаю, что веб-стандарты немного отставали на заре дизайн-систем, а веб-компоненты и кастомные элементы отставали от всех тех приятных возможностей, которые предлагают реактивные фреймворки с управлением состоянием. К счастью для нас, это больше не так, и существует ряд замечательных инструментов, построенных вокруг создания и потребления стандартных веб-компонентов.</p><p>На самом деле, я бы даже сказал, что на момент написания этого поста веб-компоненты — <i>единственно лучший подход</i> к созданию библиотеки компонентов. Они переносимы, используют веб-стандарты, и любой фреймворк, который не является полным бардаком (и многие, которые являются, смотрю на тебя, React), будет поддерживать их либо напрямую, либо с минимальной конфигурацией.</p><p>Отвлечения в сторону, этот пост будет максимально практичным введением в создание веб-компонентов с использованием веб-стандартов, современного CSS и некоторых удобных инструментов, которые помогут нам ускориться. Он также будет весьма субъективным и сильно опираться на идею, что мы должны поставлять нашу библиотеку вместе с документацией в одном репозитории. Вы не <i>обязаны</i> заниматься всеми этими штуками с документацией, если не хотите, но я настоятельно рекомендую попробовать. Весь код здесь для вас, так почему бы и нет!</p><h2>Принципы</h2><p>Сначала рассмотрим несколько принципов. Если они вам близки — читайте дальше; если нет — можете закрыть вкладку, заварить чай и заняться своими делами.</p><h3>Минимально возможный уровень</h3><p>Хотя существует масса инструментов, которые превращают компоненты для конкретного фреймворка (давайте будем честны — почти всегда это React) в веб-компоненты, я не думаю, что такой подход соответствует тому, что мы <i>говорим</i>, что хотим от наших библиотек компонентов и паттернов по духу.</p><p>Когда мы создаём компоненты и проектируем API компонентов, мы разрабатываем некоторые из самых атомарных элементов дизайн-системы. В таком сценарии, на мой взгляд, есть явная, ощутимая польза от работы максимально близко к платформе доставки. Для веб-продуктов это означает работу непосредственно с веб-стандартами.</p><p>На уровне компонентов я гораздо более настроен на удаление слоёв абстракции и работу ближе к веб-стандартам. Вместо того чтобы сразу прыгать в модный фреймворк, я гораздо больше предпочитаю работать с инструментами сборки и лёгкими обёртками. Это означает, что вы всегда находитесь в «режиме веб-стандартов», идёте прямым путём. Горжусь вами.</p><h3>Максимально простые компоненты</h3><p>Компоненты должны быть максимально примитивными. Даже самый, казалось бы, сложный компонент можно представить как очень простую конечную машину состояний. Мне ещё не встречался компонент, который нельзя было бы выразить таким образом, и вам не нужно по умолчанию обращаться к раздутому фреймворку для простых вариантов компонентов и изолированного состояния.</p><p>Я бы даже сказал, что многие реактивные компоненты — это антипаттерн. Реактивность обычно означает логику, и очень часто это приводит нас в область «бизнес-логики» и общего состояния на уровне контейнера или приложения. Простая реактивность на уровне компонента часто необходима — представьте кнопку, которая показывает спиннер загрузки, пока что-то обрабатывается, и возвращается в исходное состояние, когда всё готово, — но добавление тонн состояний и реактивности в изолированном коде компонента всегда <i>кажется</i> мне красным флагом.</p><p>По моему опыту, компоненты наиболее полезны, когда им явно сообщают, какое состояние они должны отражать и какой контент содержать. Они намеренно ограничены и явно декларативны. Обработка сложного состояния и реактивности в вашем приложении, даже если это означает комбинирование нескольких примитивов в паттерн, специфичный для приложения, гораздо более разумна, чем попытка централизовать сложный громадный компонент, который пытается слишком многое обрабатывать.</p><h3>Максимально устойчиво к будущему</h3><p>Устоявшиеся фреймворки со временем становятся устаревшими технологиями. Учитывая всю работу по «переписыванию Angular-проектов на React», на которой некоторые из нас спокойно прожили целых два года, мы должны это понимать. Сам React становится (можно спорить, <a href="https://adactio.com/journal/20618">уже стал</a>) устаревшей технологией, а «переписывание нашего React-приложения на Solid/Svelte» — теперь обычное дело. Я вполне ожидаю, что это будет повторяться до тошноты.</p><p>Веб-стандарты — хотя, признаюсь, они развиваются медленнее и поддерживаются утомительными, своеобразными процессами выпуска — всегда будут с нами. Веб-стандарты выдержали проверку времени и последовательно доказывают, что они заметно более надёжны, чем ваш проблемный любимый, переусложнённый фреймворк.</p><p>Фреймворки тоже по-настоящему замечательны, когда используются правильно. Говоря по опыту, попытка написать состоятельные, реактивные приложения на ванильном HTML, CSS и JS — закаляющая, но в конечном счёте неразумная задача. Однако примитивные компоненты — это не сложные, состоятельные, реактивные веб-приложения. Это маленькие куски атомарного веб-кода, и создавать их со всеми накладными расходами и своеобразиями полноценного фреймворка — это просто приглашение к будущему устареванию.</p><p>Создавая <i>непосредственно с помощью веб-стандартов</i>, мы получаем более низкоуровневое понимание того, как работают наши компоненты, встроенную защиту от будущего, избегая модного фреймворка, и по сути более прогрессивную, доступную (или, по крайней мере, более легко делаемую доступной) и нативную для веба библиотеку компонентов.</p><p>Разделяя ваши атомарные компоненты дизайн-системы от ваших <i>компонентов приложения</i>, вы получаете лучшее из обоих миров: переносимые, примитивные компоненты на уровне системы; сложные и реактивные компоненты и обёртки на уровне приложения.</p><p>Таким образом, когда вам действительно понадобится переписать приложение на Solid/Svelte, вам хотя бы не придётся переписывать всю библиотеку компонентов вместе с ним.</p><h3>Принимать решения в коде</h3><p>Я абсолютно готов стоять насмерт на этой позиции. Инструменты для дизайна — <i>ужасные</i> места для принятия решений по <i>дизайн-системе</i>. Это отчасти потому, насколько оторваны такие инструменты, как Figma, от того, как на самом деле работают дизайн-системы, вплоть до откровенно катастрофического несоответствия словаря и концепций.</p><p>Как человек, который по сути больше дизайнер, чем разработчик, я создал и работал с более чем дюжиной «дизайн-систем» в Figma. Как человек, который также проводит гораздо больше времени в коде, чем в инструментах дизайна, я считаю себя вправе сказать, что ни одна из них не отражала того, чем должна быть хорошая системная основа. Это не укол в сторону дизайнеров, которые не пишут код, скорее просто показывает, насколько сложной <i>сами инструменты</i> делают эту часть нашей работы.</p><p>Инструменты для дизайна — это места для быстрого тестирования разных идей и экспериментов со стилем и компоновкой. Они абсолютно ужасны для кодификации системных решений, отчасти из-за своей самой природы: они предоставляют очень маленькое, проприетарное подмножество возможностей нашего реального носителя — браузера.</p><blockquote>Так же и браузер, но я рискую укрепиться на том самом холме.</blockquote><p>Окончательные системные дизайнерские решения должны приниматься в браузере. Токены цвета могут использовать современные цветовые пространства. Токены размеров и отступов должны выражаться в относительных единицах, где это возможно. Почти каждый тип токена может выиграть от какой-либо математики, включая логарифмические шкалы для типографики или программные сдвиги оттенка и светлоты для цветов. API компонентов также следует строить с помощью надёжных, хорошо типизированных определений. Инструменты дизайна могут предложить лишь подобие этих концепций.</p><p>Если вы начинаете с Figma — это вполне нормально, но это ужасный источник истины. Воспринимайте свой инструмент дизайна как точный инструмент прототипирования, а не как конечную цель для дизайнерских решений.</p><h3>Документировать по ходу разработки</h3><p>Опираясь на последний принцип, если лучшее место для принятия решений — код, то лучшее время для документирования этих решений — фаза сборки, пока они свежи в вашей голове. Разрабатываете props? Ну посмотрите-ка, у вас уже есть прекрасный набор определений типов для этих props, неплохо было бы добавить туда маленький комментарий <a href="https://jsdoc.app/">JSDoc</a> и заняться своими делами.</p><p>Мне нравится идти дальше и разворачивать библиотеку компонентов прямо в документирующем фреймворке вроде <a href="https://vitepress.dev/">VitePress</a>, активно создавая человекочитаемую документацию параллельно с разработкой самих компонентов. Это не только в итоге станет «официальной» документацией дизайн-системы, но и позволит проверить, насколько переносимы ваши компоненты.</p><p>Это делает мой мозг счастливым, потому что полное кодовое представление моих дизайн-систем (что абсолютно, всегда включает фактическую документацию) живёт в одном репозитории. Всю систему можно развернуть, не жонглируя зависимостями, и это заставляет меня относиться к документации как к необходимому шагу к релизу.</p><h2>Давайте создадим (и задокументируем)</h2><p>Ладно, хватит болтать, давайте на самом деле создадим что-то практичное. Мы соберём основы для централизованной, независимой от фреймворка библиотеки компонентов. Мы будем прорабатывать документацию по мере создания компонентов, что даст нам действительно чистый тестовый стенд для самих компонентов. Настоящий порочный круг, если таковой вообще был.</p><p>Вот что у нас будет в конце этой статьи:</p><ul><li>Основа для нашей гибридной библиотеки компонентов/документации «всё-в-одном» дизайн-системы</li><li>Стильная, хорошо задокументированная кнопка как веб-компонент</li><li>Развёртываемый сайт документации, который показывает, как замечательна наша кнопка</li><li>Готовая к продакшену библиотека компонентов, которую можно опубликовать в вашем любимом пакетном менеджере</li></ul><p>Нам действительно нужно беспокоиться только о двух инструментах: <a href="https://elenajs.com/">Elena</a> для сборки и распространения нашей библиотеки компонентов и <a href="https://vitepress.dev/">VitePress</a> для создания нашей документации.</p><h3>Elena</h3><p>Клей для всего этого проекта — Elena. Фантастическая библиотека от непобедимого <a href="https://arielsalminen.com/">Ariel Salminen</a> для создания прогрессивных веб-компонентов. Я не буду углубляться в философию того, что означает «прогрессивный» в этом контексте, потому что это уже <a href="https://arielsalminen.com/2026/progressive-web-components/">исключительно хорошо задокументировано</a> самим Ariel.</p><p>Elena — это крошечная библиотека, которая делает Just Enough Abstraction™ поверх стандартных веб-компонентов. Мы получаем такие вещи, как props (отражаемые как пользовательские атрибуты), изолированную реактивность, методы жизненного цикла и даже классные штуки вроде миксинов для компонуемости. Мы не будем углубляться <i>слишком</i> сильно в Elena, но следите за ходом мысли и, если вам понравятся основы, я очень рекомендую погрузиться во всё, что она предлагает. Это круто.</p><p>Цитата из <a href="https://elenajs.com/#why-should-i-use-elena">документации Elena</a>:</p><blockquote>[Elena] берёт на себя межфреймворковую сложность (синхронизация prop/атрибута, делегирование событий, совместимость с фреймворками), чтобы вы могли сосредоточиться на создании компонентов, а не на инфраструктуре.</blockquote><p>Именно этого я и хочу от такого инструмента: позвольте мне писать код, не абстрагируйте веб-стандарты, разберитесь со всей странной ерундой, которую я не хочу трогать.</p><h3>VitePress</h3><p>Я не буду тратить много времени на VitePress, потому что, честно говоря, это просто самое удобное готовое решение для документации, которое не называется Storybook. Пара npm install — и у нас есть надёжное, основанное на Markdown решение для документации, готовое к работе.</p><p>Позже мы сделаем несколько классных штук с VitePress, JSDoc и нашим сгенерированным Elena манифестом пользовательских элементов, что поможет ускорить процесс документирования, но, честно говоря, иметь <i>где-то</i> документировать гораздо важнее, чем то, <i>во что</i> мы документируем.</p><h3>Структура проекта</h3><p>Здесь всё может изначально показаться немного странным. Хотя нам нужно собирать и распространять наши компоненты как отдельную библиотеку, нам также нужно их видеть и тестировать. Самый простой способ — это слепить статический сайт и просто свалить все компоненты на одну страницу. Это <i>вполне нормально,</i> и, по сути, я бы поощрил это, если вы просто экспериментируете с Elena, но по причинам, изложенным выше, я считаю, что имеет большой смысл создавать <i>внутри</i> нашей документации.</p><p>У нас по сути будет что-то вроде монорепозитория: Elena будет делать своё дело на уровне компонентов, а сам сайт документации будет статически генерироваться с помощью VitePress.</p><h2>Создание каркаса проекта</h2><p>Здесь довольно много движущихся частей, поэтому вместо того, чтобы просто кидать вам дикую цепочку склеенных npm install, давайте разберём настройку шаг за шагом.</p><p>Для начала создадим папку проекта:</p><p>Замените my-ds на любое название, которое хотите дать своему проекту.</p><p>Затем инициализируем npm:</p><p>Команда npm init -y создаст файл package.json в корне проекта. Эта корневая папка напрямую ничего не будет делать — она просто склеивает наши компоненты и документацию вместе в монорепозитории.</p><p>Приведём в порядок наш package.json:</p><p>Здесь происходит кое-что, что пока не имеет особого смысла (и даже не будет работать) — это станет понятно чуть позже. Настройка workspaces позволит нам обращаться со сборкой библиотеки компонентов как с пакетом, не публикуя его, а скрипты dev, а также различные watch и build позволят нам отслеживать и собирать либо документацию, либо компоненты (либо оба варианта одновременно с помощью команды dev).</p><p>Кстати, давайте установим пару штук:</p><p>Это установит concurrently, который позволит нам запускать команду watch Elena и команду dev VitePress одновременно. Мы будем держать её запущенной, пока работаем. Также установится VitePress и его тема по умолчанию. Если хотите заморочиться — можете использовать другую тему.</p><h3>Настройка VitePress</h3><p>Настроим документацию. Для начала создадим папку docs:</p><p>Затем создайте docs/.vitepress/config.mjs:</p><p>Проверьте расширение!Обратите внимание: мы используем .mjs, а не .js — это заставляет Node трактовать файл как ESM. Это необходимо, потому что мы импортируем из vitepress. Вам не обязательно знать, что это значит. Честно говоря, я не уверен, что сам это понимаю. Просто убедитесь, что используете .mjs. Ладно, спасибо.</p><p>Здесь мы используем postIsolateStyles, чтобы ограничить область действия встроенных стилей .vp-doc VitePress и не дать им просочиться в наши примеры компонентов. Без этого встроенные стили VitePress <i>могут</i> переопределять стили ваших компонентов (включая инкапсулированные сбросы) из-за того, как Vite внедряет таблицы стилей во время выполнения.</p><p>Далее создайте минимальный docs/index.md, чтобы у VitePress была домашняя страница:</p><p>Сейчас хороший момент, чтобы проверить, всё ли работает:</p><p>Вы должны увидеть очень простой локальный сайт на VitePress! По умолчанию он будет доступен по адресу <a href="http://localhost:5173/">http://localhost:5173/</a>.</p><h3>Настройка Elena</h3><p>Теперь, для MVP нашей дизайн-системы, давайте установим Elena. Мы будем использовать Elena для создания компонентов и в конечном итоге распространять их в виде пакета. Именно здесь некоторые вещи из корневого package.json начинают обретать смысл.</p><p>Начнём с создания папки компонентов и инициализации npm для нашего пакета компонентов:</p><p>Далее отредактируйте packages/components/package.json:</p><p>Затем установите Elena:</p><p>Это установит Elena, её бандлер и CLI-инструмент.</p><p>Мы будем использовать CLI-инструмент Elena для создания каркаса наших компонентов. По сути, он проведёт нас через создание компонента, позволяя запустить команду, которая генерирует нужную папку и создаёт js- и css-файлы для любого компонента, который мы захотим создать. Подробнее об этом позже!</p><p>Пока что нам нужно настроить Elena. Во многих случаях можно пропустить этот шаг и просто использовать настройки по умолчанию. Однако мы ведём себя как глупые гуси и совмещаем документацию и компоненты в одном проекте, так что, возможно, придётся кое-что подкрутить. Плюс я люблю, когда конфиги явные, а не невидимые.</p><p>Создайте конфиг Elena по пути packages/components/elena.config.mjs:</p><p>Это говорит Elena, где искать наши компоненты (src), куда выводить собранные компоненты (dist) и где искать точку входа нашей библиотеки (src/index.js). Обратите внимание: все эти пути относительны директории packages/components, <b>а не</b> корня проекта. Наши инструменты Elena и библиотека компонентов самодостаточны.</p><p>Эта точка входа важна, если мы хотим импортировать все наши веб-компоненты через bundle.js, который генерирует Elena. Пока что создадим пустую.</p><p>Создайте packages/components/src/index.js. Пока что он может быть просто пустым или содержать комментарий-заглушку:</p><p>По мере создания компонентов мы сможем добавлять соответствующие export в этот файл, чтобы они попадали в наш production-бандл.</p><p>Убедитесь, что Elena работает: перейдите в корень проекта и выполните:</p><p>К сведениюЕсли вы запускаете это на Mac с Apple Silicon, то, скорее всего, столкнётесь с ошибкой. По моему опыту, это из-за зависимости Elena (lightningcss), которая немного кривая (простите за такую техническую терминологию). Если при попытке сборки вы получаете ошибку 'MODULE_NOT_FOUND', выполните следующее из корня проекта: Code languagebashCopy to clipboard rm -rf node_modules packages/components/node_modules package-lock.json &amp;&amp; npm install Это уничтожит папку node_modules и переустановит зависимости, разложив всё по своим местам. Если эта ошибка случилась однажды, то, скорее всего, придётся запускать это каждый раз при установке новой зависимости. Мне жаль. Управление пакетами — как всегда, Очень Приятное Занятие.</p><h2>И выдохнем…</h2><p>Отойдём на шаг назад, поставим чайник и посмотрим, что у нас есть. Ваша структура проекта должна выглядеть так:</p><p>Наша корневая папка по сути просто контейнер, так что особо беспокоиться о ней не стоит.</p><p>Наша папка docs — это место, где будет жить всё, связанное с VitePress. В конечном итоге это станет полноценной документацией дизайн-системы, и мы будем использовать её для предпросмотра и документирования наших компонентов по мере их создания.</p><p>Наша папка packages/components — это место, где мы будем работать со всем, связанным с компонентами. Папка packages/components/src — это место, где мы будем создавать компоненты, а index.js в ней — точка входа нашей библиотеки, где мы просто будем export'ировать любые компоненты, которые хотим включить в бандл.</p><p>Наша папка dist в packages/components — это место, где будут храниться собранная библиотека компонентов и манифест кастомных элементов. Затем мы сможем импортировать отсюда в наш проект VitePress так, будто это установленный пакет.</p><p>Однако чтобы дойти до этого, нам нужны какие-то реальные компоненты для распространения.</p><h2>Создаём наш первый компонент</h2><p>Теперь, когда всё настроено, мы наконец-то можем начать создавать компоненты! В этой статье мы будем держать всё просто и сосредоточимся на, возможно, самом распространённом компоненте: прекрасной кнопке.</p><p>По невероятному стечению обстоятельств ваш собственный веб-мастер Piccalilli, <a href="https://piccalil.li/author/andy-bell/">Andy Bell</a>, уже написал <i>великолепную</i> статью о <a href="https://piccalil.li/blog/how-i-build-a-button-component/">создании компонентов кнопок</a> на стандартном HTML и CSS. Мы будем опираться на эти принципы здесь, с небольшими изменениями, чтобы получить максимум от нашей настройки веб-компонентов.</p><p>Статья Andy отлично объясняет <i>почему</i> стоят за многими семантическими и структурными решениями, касающимися самих кнопок, поэтому я не буду углубляться в это слишком сильно. Andy прошёл путь, чтобы мы могли бежать. Какой человек.</p><h3>Композитные, примитивные и декларативные компоненты</h3><p>В основе концепции Elena «прогрессивные веб-компоненты» лежит разделение компонентов на три основные категории: <a href="https://elenajs.com/components/overview#_1-composite">композитные</a>, <a href="https://elenajs.com/components/overview#_2-primitive">примитивные</a> и <a href="https://elenajs.com/components/overview#_3-declarative">декларативные</a>. Документация Elena прекрасно объясняет различия подробно, но важно помнить, <i>что все это всё ещё просто веб-компоненты.</i> Нас не заставляют принимать нестандартные концепции или методы, скорее нас поощряют <i>думать</i> о наших компонентах в этих терминах.</p><p>Я позволю документации Elena сделать основную работу с этими определениями, но вот основные моменты:</p><ul><li><b>Композитные</b> компоненты оборачивают и расширяют свой внутренний HTML. Они отлично подходят для таких вещей, как слайдеры, аккордеоны, карточки и многослойные макеты — там, где вы чаще всего позволяете HTML и CSS делать основную работу и расширяете возможности с помощью JS в нужной области. Композитные компоненты также отлично подходят для <i>паттернов</i>, где мы можем захотеть объединить примитивные компоненты и HTML в переиспользуемые <i>«макро»</i> компоненты с определённым поведением. Подумайте о таких вещах, как диалоги, fieldsets и баннеры уведомлений — там, где структура и поведение фиксированы, но содержимое внутри остаётся гибким и определяется потребителем.</li><li><b>Примитивные</b> компоненты объявляют и рендерят свой собственный HTML и поставляются с собственной функцией render(). Это, вероятно, самые распространённые компоненты, которые мы будем использовать в дизайн-системе — подумайте о таких вещах, как кнопки, поля ввода, индикаторы загрузки, бейджи и т.д.</li><li><b>Декларативные</b> компоненты — это комбинация обоих типов и могут объединять Light DOM и декларативный Shadow DOM. Если мы не знаем, что нам <i>действительно</i> нужна инкапсуляция с Shadow DOM, мы можем практически игнорировать его для библиотек компонентов. Я не углублялся <i>слишком</i> сильно в это, но мои первые мысли таковы, что декларативные компоненты были бы отличны для полностью инкапсулированных компонентов, таких как веб-редакторы контента или блоки кода с подсветкой синтаксиса/редакторы, где инкапсуляция и изоляция часто критичны.</li></ul><p>На этот раз мы строим примитивный компонент. Наша кнопка будет объявлять и рендерить свой собственный HTML, и мы будем стилизовать её с помощью CSS в ограниченной области.</p><h3>Создаём каркас компонента</h3><p>Мы будем использовать CLI-помощник Elena для генерации папки и файлов, которые нам нужны для нашего компонента.</p><p>Пространства имён компонентов и пользовательские элементыМы используем сугубо учебный префикс my- для нашей кнопки, но зачем вообще нужен префикс? Это возвращает нас к тому, как пользовательские элементы требуют наличия - в имени тега, чтобы избежать конфликтов с нативными HTML-элементами. Если бы у нас был полный контроль, и мы создали компонент &lt;button&gt;, мы бы конфликтовали с настоящим HTML-элементом &lt;button&gt;, и у нас было бы Очень Плохое Время. Поэтому мы просто не можем этого делать — все наши пользовательские элементы должны быть в формате &lt;{prefix}-{component}&gt;.Жёсткого требования, чтобы наши файлы тоже были с дефисом, нет, но лично мне нравится аккуратность, когда имена файлов и папок совпадают с нашим фактическим элементом. Так что выберите префикс и придерживайтесь его. Для моей дизайн-системы Mindful Design я использую префикс md- — так что все мои пользовательские элементы выглядят примерно как &lt;md-button&gt;, &lt;md-card&gt; и т.д. Web Awesome использует wa-. Вы можете использовать всё, что пожелает ваше сердце. Главное — будьте последовательны.</p><p>Из папки packages/components выполните:</p><p>Затем вам будет предложено выбрать, какие функции и язык вы хотите. Для нашей кнопки нужно выбрать:</p><ul><li>Props</li><li>CSS-переменные</li><li>CSS-инкапсуляция</li><li>Комментарии в коде</li></ul><p>Нажмите Enter, затем выберите JavaScript в качестве языка.</p><p>Установите выходную директорию в src/. По умолчанию Elena использует src/components/, но нам не нужен такой уровень вложенности.</p><p>Это создаст каркас наших файлов с несколькими примерными значениями и комментариями, так что мы не будем смотреть на пустые файлы. Нажмите Enter после выбора функций, языка и директории, и Elena сгенерирует папку my-button с соответствующими JS и CSS файлами. О стилизации мы позаботимся позже, сейчас мы хотим спроектировать API нашего компонента.</p><p>Откройте следующий файл:</p><p>Здесь происходит много всего для простого boilerplate, но мы разберём каждый раздел по мере продвижения!</p><h3>Добавление props</h3><p>Компонентные <a href="https://elenajs.com/components/props">props</a> позволят нам управлять стилизацией и поведением компонента декларативным образом. Затем мы можем использовать эти props для создания вариантов наших компонентов. Для нашей кнопки давайте упростим и используем следующие props:</p><ul><li>variant: стилевой вариант нашей кнопки, например «primary», «danger»</li><li>disabled: отключена ли кнопка или нет</li><li>href: куда должна вести кнопка, также определяет, будет ли кнопка рендериться как ссылка или как кнопка</li></ul><p>Это небольшое подмножество props, которые потребуются кнопке в продакшене, но этого достаточно, чтобы двигаться дальше. Если после этого вы почувствуете себя уверенно, можете вернуться и добавить больше props — size или icon prop были бы отличной отправной точкой!</p><p>Давайте добавим эти props в наш компонент кнопки:</p><p>Объявление static props позволяет нам определить конечный массив props, которые будет принимать наш компонент. По умолчанию все эти props будут отражаться на нашем отрендеренном компоненте как HTML-атрибуты. Вам почти всегда нужно, чтобы это было так, особенно если вы используете нестандартные атрибуты вроде disabled, download и т.д.</p><p>Прямо под этим массивом вы найдёте заготовленные значения props по умолчанию, каждое с небольшим комментарием сверху. Давайте последуем примеру Elena и установим значения по умолчанию для добавленных нами props:</p><p>Комментарии над каждым определением — это JSDoc-комментарии. Они могут выглядеть немного непривычно, но позволяют документировать наши компоненты и props и могут служить источником истины для документирования API наших компонентов. Это также даёт нам немного «мягкой типизации» без необходимости использовать TypeScript. Большинство IDE будут подсвечивать или предупреждать вас, если вы установите prop в значение/тип, не указанный в синтаксисе JSDoc.</p><p>В приведённом выше примере мы определяем наш prop variant, задаём ему значение по умолчанию «default» и мягко типизируем его с помощью определения @type. В данном случае мы принимаем только одно из четырёх перечисленных значений.</p><p>На этом этапе это может показаться немного бессмысленным, но следите за своими JSDoc-комментариями по мере создания компонентов. Мы будем использовать их позже. Пока мы на этом, мы могли бы также задать более точное описание для нашего компонента.</p><p>Измените верхний комментарий в следующем файле:</p><p>Мы также удалили определения @cssprop из этого комментария. Они были сгенерированы, потому что мы выбрали «CSS Variables» при создании нашего компонента, и позволяют нам раскрыть кастомные свойства, используемые для стилизации наших компонентов. Если вы работаете над темизируемой или headless библиотекой компонентов, вы, возможно, захотите оставить их, в противном случае я предпочитаю пропускать определение этих свойств и не раскрывать их в своей документации.</p><p>Давайте взглянем на нашу функцию render():</p><p>Если у вас нет тяжёлого случая React Brain, вы, возможно, заметите хотя бы одну из пары проблем: во-первых, button — это не div. Дико, правда? Это не вина Elena, мы просто создали базовый компонент, и div — это, безусловно, самый распространённый HTML-элемент. Нам нужно самим отрендерить правильную, семантическую, доступную разметку.</p><p>Во-вторых, мы только что добавили href как prop, а это атрибут a, а не button. Нам нужно условно рендерить <i>либо</i> a, <i>либо</i> button в зависимости от того, установлен ли href.</p><h3>Условный рендеринг</h3><p>Дискуссия «должны ли ссылки когда-либо стилизоваться как кнопки?» старше, чем бородка вашего отчима, и точно так же как-то ещё сохраняется сквозь века. Я слишком стар и устал, чтобы беспокоиться об этом, а реальность такова, что кнопки-ссылки CTA — одна из самых распространённых вещей, которые вы увидите на сайте, в конкуренции только с баннерами cookie и плохой доступностью в своей повсеместности.</p><p>Так что вы будете делать это, нравится нам это или нет, и вам лучше делать это правильно.</p><p>Самый чистый подход к этому — абстрагировать наш рендеринг, добавив две новые функции:</p><p>Затем мы можем заменить функцию render() нашего компонента:</p><p>Супер просто: если href присутствует, это ссылка, если нет — это кнопка. Нам не нужно добавлять новые props, просто используем тот, что у нас уже есть.</p><p>Мы используем nothing в этой функции, и если вы попробуете собрать/запустить watch прямо сейчас, вы получите ошибку. Это потому, что nothing — это помощник Elena для безопасного рендеринга, ну, <i>ничего</i>.</p><p>Давайте импортируем его в начало нашей кнопки. Отредактируйте первую строку следующего файла:</p><p>Теперь давайте соберём нашу библиотеку компонентов, чтобы включить нашу новую кнопку в продакшенный bundle.js. Отредактируйте packages/components/src/index.js:</p><p>Затем из корня проекта выполните:</p><p>Если повезёт, сборка пройдёт без проблем, и мы наконец-то сможем встроить нашу кнопку в документацию.</p><h3>Предпросмотр нашей кнопки</h3><p>На данный момент у нас есть всё необходимое, чтобы отрендерить нашу кнопку и увидеть её на странице. Потребовалось немного настроек, чтобы дойти до этого, но мы сделали это!</p><p>Благодаря тому, как наш проект настроен, мы теперь можем подключать наши собранные компоненты так, как будто они являются отдельным пакетом. Нам просто нужно настроить VitePress для импорта бандла, который генерирует Elena, и сказать ему обрабатывать наши импортированные компоненты как веб-компоненты (по умолчанию VitePress ожидает Vue-компоненты).</p><p>Создайте docs/.vitepress/theme/index.js:</p><p>Это говорит нашей теме VitePress импортировать файлы бандла, которые сгенерировала Elena. @my-ds/components загружается асинхронно, так как это клиентская часть, а VitePress по умолчанию использует серверный рендеринг. @my-ds/components/dist/bundle.css импортируется напрямую в начале нашего файла, потому что это просто старый добрый CSS.</p><p>Примечание о серверном рендеринге (SSR)Если вы знаете, что вам нужен SSR, есть несколько способов включить его с Elena. В зависимости от вашего фреймворка/генератора сайта на выбор, вам, возможно, потребуется выполнить несколько дополнительных шагов конфигурации. Обратитесь к документации Elena за советами по SSR и на страницу интеграций с фреймворками для более продвинутых интеграций.</p><p>Далее обновите docs/.vitepress/config.mjs:</p><p>Это немного хакерский способ, но по сути он говорит VitePress рассматривать любой тег с - как пользовательский элемент вместо Vue-компонента. Учитывая, что пользовательские элементы требуют -, чтобы избежать конфликтов с нативными HTML-элементами, этого достаточно для наших целей.</p><p>Теперь давайте соберём нашу фактическую документацию по кнопке. Создайте docs/components/button.md:</p><p>Это должно дать нам всё необходимое для предпросмотра нашей кнопки! Запустите процесс разработки, если вы ещё этого не сделали:</p><p>Это запустит документацию VitePress в режиме разработки и одновременно запустит скрипт watch Elena, давая нам довольно удобный опыт live-reload. Перейдите на <a href="http://localhost:5173/components/button.html">http://localhost:5173/components/button.html</a>, и вы должны увидеть свою прекрасную кнопку!</p><p>Держите сервер разработки запущеннымКоманда npm run dev запустит ваш dev-сервер документации и будет держать Elena в фоне, отслеживая изменения компонентов. Вы будете получать live reloads всякий раз, когда вносите изменения, и теперь вы можете плавно вносить и тестировать изменения компонентов и документации.</p><p>Если вы откроете инспектор браузера и посмотрите на отрендеренную кнопку, вы увидите что-то вроде этого:</p><p>Наш хост-элемент &lt;my-button&gt; оборачивает разметку из своей функции render(), и мы имеем наш первый веб-компонент, отрендеренный в браузере! Я знаю, я знаю. Это выглядит совсем не круто, но оно там есть! Давайте придадим ему стиль.</p><h2>Стилизация нашей кнопки</h2><p>Если вы дошли до этого места, то, возможно, заметили явное отсутствие дискуссий о дизайн-токенах. Не потому, что они неважны, а потому что управление токенами и их распространение — это крайне объёмная тема, а эта статья и без того получается очень уж длинной. Скорее всего, мы разберём рабочие процессы с токенами в отдельном посте!</p><p>Пока что мы будем придерживаться простого подхода и использовать стили с ограниченной областью видимости Elena. Это позволяет нам частично нейтрализовать каскад в CSS и гарантировать, что стили не выйдут за пределы оформления отдельного компонента.</p><p>Мы также сделаем кое-что, чего я <b>не рекомендую</b> для production-компонентов, особенно если вы хотите строить темизируемые дизайн-системы, наследующие разумные глобальные стили (спойлер: вы хотите), — а именно, сбросим стили компонента перед применением собственных. В итоге мы получаем компонент, который не пропускает стили наружу (благодаря ограниченной области видимости) и не позволяет глобальным стилям проникать внутрь (благодаря сбросу на уровне компонента).</p><h3>Стили с ограниченной областью видимости</h3><p>Откройте следующий файл:</p><p>По умолчанию Elena генерирует at-правило @scope для любого создаваемого компонента. Вы <i>не обязаны</i> использовать стили с ограниченной областью видимости. Важно помнить: это <b>всё обычный CSS</b>. Мы не делаем ничего дикого или хрупкого вроде CSS-in-JS, мы просто используем конкретную стандартную возможность CSS. Вы с таким же успехом можете писать неограниченный CSS с пространствами имён и получить в целом те же результаты.</p><p>Более того, если вам нужно поддерживать браузеры, которые не поддерживают @scope, то использование пространств имён может быть тем самым подходом, который вам нужен. Для этого примера (и для моей собственной production-работы) меня вполне устраивает @scope — я считаю его гораздо более чистым способом стилизации компонентов.</p><p>Поскольку при создании компонента мы выбрали «CSS Encapsulation», вы видите, что Elena сгенерировала следующее:</p><p>По сути это означает, что наш компонент не будет наследовать стили из более высоких уровней каскада. В зависимости от вашего подхода к стилизации в дизайн-системе, это может быть как тем, что нужно, так и нет. Для <i>этого конкретного сценария</i> это самый простой способ гарантировать полный контроль над каждым компонентом. Однако во многих реальных сценариях вам действительно стоит <i>хотеть</i> некоторой степени наследования или стилей по умолчанию в компонентах.</p><p>Примечание об инкапсулированном сбросеИспользование all: unset и display: revert сбросит любые стили, определённые до тех пор, пока эти правила не встретятся. Это не предотвратит применение дальнейших неограниченных стилей в файлах или тегах </p>]]></content:encoded>
    </item>
    <item>
      <title>Wildberries запускает ИИ-ассистента для поиска товаров</title>
      <link>https://tproger.ru/news/wildberries-zapuskaet-ii-assistenta-dlya-poiska-tovarov</link>
      <comments>https://tproger.ru/news/wildberries-zapuskaet-ii-assistenta-dlya-poiska-tovarov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/wildberries-zapuskaet-ii-assistenta-dlya-poiska-tovarov</guid>
      <description><![CDATA[<p>Wildberries расширяет тестирование ИИ-ассистента для поиска товаров: чат понимает запросы на естественном языке и подбирает товары под задачу.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/wildberries-zapuskaet-ii-assistenta-dlya-poiska-tovarov">Wildberries запускает ИИ-ассистента для поиска товаров</a>»</p>]]></description>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 04 Jun 2026 10:10:52 GMT</pubDate>
      <content:encoded><![CDATA[<p>Wildberries расширяет тестирование ИИ-ассистента для поиска товаров. Точка входа в него находится прямо в поисковой выдаче маркетплейса: пользователь может перейти в чат, описать задачу обычным языком, уточнить условия и получить подборку товаров.</p><ul><li>ИИ-ассистент работает в формате чата</li><li>Точка входа находится в поисковой выдаче Wildberries</li><li>Запросы можно формулировать на естественном языке</li><li>Компания расширяет тестирование инструмента</li></ul><p>Инструмент пригодится тем, кто ищет не конкретную модель, а решение: например, подарок в заданном бюджете, технику для квартиры с домашними животными или набор вещей для поездки с ребёнком. После этого товары можно будет сравнить и обсудить их особенности в диалоге с ассистентом.</p><h2>Как работает ассистент</h2><p>По данным Wildberries, ассистент использует собственную большую языковую модель. Компания также отмечает, что ограничений по категориям нет: инструмент может работать с разными покупательскими задачами, от одежды, косметики и товаров для дома до электроники, бытовой техники, детских товаров и подарков.</p><h2>Что будет дальше</h2><p>В компании считают, что такой формат поиска помогает пользователям формулировать запросы не только по названию товара, но и по задаче или ограничениям. В Wildberries добавили, что это продолжает развитие ИИ-инструментов для поиска, оценки и выбора товаров: ранее компания уже запустила «Умное сравнение», виртуальную примерочную, поиск по фото и нейросетевой пересказ отзывов.</p><blockquote>Поиск на маркетплейсе давно перестал быть только строкой для ввода ключевых слов.</blockquote><p>Компания сообщила, что по итогам расширенного тестирования будет анализировать пользовательский опыт и развивать сценарии работы ассистента.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как правильно использовать поля HTML-форм: гайд для разработчиков</title>
      <link>https://tproger.ru/articles/kak-pravilno-ispolzovat-polya-html-form-polnyj-gajd</link>
      <comments>https://tproger.ru/articles/kak-pravilno-ispolzovat-polya-html-form-polnyj-gajd?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-pravilno-ispolzovat-polya-html-form-polnyj-gajd</guid>
      <description><![CDATA[<p>Разбираем типы полей HTML-форм, правила доступности, ARIA-атрибуты и лучшие практики. Узнайте, как создавать удобные и конверсионные формы для любых устройств.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-pravilno-ispolzovat-polya-html-form-polnyj-gajd">Как правильно использовать поля HTML-форм: гайд для разработчиков</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Лучшая практика]]></category>
      <category><![CDATA[CSS]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Фронтенд-разработка с нуля]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 04 Jun 2026 09:55:25 GMT</pubDate>
      <content:encoded><![CDATA[<p>Неправильно свёрстанная форма — серьёзный источник раздражения пользователей на сайте. Поле email без подходящей клавиатуры на телефоне, чекбокс без label, который невозможно попасть пальцем, или форма, которая отправляется при случайном нажатии Enter — всё это ежедневно встречается даже на крупных проектах. Разбираем, как избежать этих ошибок и сделать формы удобными для всех пользователей.</p><h2>Что такое поля форм</h2><p>Поля форм — это интерактивные элементы HTML, через которые пользователь взаимодействует с веб-страницей. Браузер отображает их по-разному в зависимости от типа: для email показывает клавиатуру с символом @, для даты — календарь, для файла — диалог выбора документа.</p><p>Главное правило: под каждую задачу существует своё поле. Использовать универсальный &lt;input type="text"&gt; везде — значит лишать пользователя встроенных удобств браузера.</p><p>{'id': 'a94adbf9d2', 'data': {'text': '<b>Правильный тип input</b> — залог удобства: браузер сам подставит нужную клавиатуру и проверит формат.'}, 'type': 'paragraph'}</p><p>{'id': 'd3748dda0e', 'data': {'text': '<b>Label обязателен</b> для каждого поля: связывайте его через атрибут for с id поля.'}, 'type': 'paragraph'}</p><p>{'id': 'c924682827', 'data': {'text': '<b>Группируйте связанные поля</b> в &lt;fieldset&gt; с &lt;legend&gt; — это помогает средствам чтения с экрана и структурирует форму.'}, 'type': 'paragraph'}</p><p>{'id': '49afc5a27c', 'data': {'text': '<b>Не забывайте name</b>: без него данные не попадут в запрос при отправке формы.'}, 'type': 'paragraph'}</p><p>{'id': 'ab33c8052b', 'data': {'text': '<b>Используйте &lt;button type="submit"&gt;</b> вместо устаревшего &lt;input type="submit"&gt; — это гибче и семантичнее.'}, 'type': 'paragraph'}</p><h2>Основные элементы форм</h2><h3>input — универсальный инструмент ввода</h3><p>Элемент &lt;input&gt; — самый распространённый в формах. Его внешний вид и поведение полностью зависят от атрибута type. Браузер поддерживает свыше 20 типов: от классического text до специализированных date, tel, range и даже color.</p><p>Когда вы выбираете конкретный тип, браузер берёт на себя три задачи: отображает подходящий интерфейс, показывает оптимальную экранную клавиатуру на мобильных устройствах и применяет встроенную проверку. Например, type="email" проверит наличие символа @ до отправки на сервер.</p><p>Вот типы input, которые стоит знать каждому фронтенд-разработчику:</p><ul><li>text — текстовая строка, базовый тип.</li><li>email — проверяет наличие @ и домена, показывает email-клавиатуру.</li><li>tel — цифровая клавиатура на мобильных устройствах.</li><li>number — ограничивает ввод числами, добавляет стрелки.</li><li>date — нативный календарь браузера.</li><li>checkbox и radio — выбор одного или нескольких вариантов.</li><li>file — загрузка файлов с нативным диалогом выбора.</li><li>range — ползунок для выбора значения из диапазона.</li><li>color — нативный выбор цвета.</li><li>search — поле поиска с кнопкой очистки.</li></ul><p>Атрибут required делает поле обязательным для заполнения, а pattern позволяет задать регулярное выражение для проверки введённых данных без JavaScript.</p><h3>label — связываем текст с полем</h3><p>Без подписи поле ввода теряет смысл. Элемент &lt;label&gt; решает эту задачу и одновременно делает форму доступной для пользователей с ограничениями зрения.</p><p>Есть два способа связать label с полем. Первый — явный: атрибут for на label должен совпадать с id на input. Второй — вложенный: input размещается внутри label. Оба варианта работают, но явная связь через for гибче: позволяет располагать label и input в разных частях разметки.</p><p><b>Важно:</b><br />Клик по label автоматически переводит фокус в связанное поле. Это удобно на десктопе и критично на мобильных устройствах, где площадь касания имеет значение.</p><h3>textarea — когда одной строки мало</h3><p>Для длинных текстов — комментариев, отзывов, описаний — используйте &lt;textarea&gt;. В отличие от &lt;input&gt;, он поддерживает переносы строк и растягивается по содержимому. Атрибуты rows и cols задают начальные размеры, а CSS — финальное оформление.</p><h3>select и datalist — выбор из вариантов</h3><p>Когда нужно предложить пользователю готовый список вариантов, на помощь приходит &lt;select&gt;. Он отображает выпадающий список, в котором можно выбрать один или несколько пунктов. По умолчанию выбран первый элемент, но через атрибут selected можно задать другой.</p><p>Альтернатива — &lt;datalist&gt;. Он работает как автодополнение: пользователь может как выбрать вариант из списка, так и ввести свой собственный текст. Это удобно для полей вроде «профессия» или «название компании», где невозможно предусмотреть все варианты.</p><h3>fieldset и legend — группируем поля</h3><p>Формы с десятком полей выглядят как стена текста. Чтобы структурировать их, используйте &lt;fieldset&gt; с обязательным дочерним элементом &lt;legend&gt;. Такая группировка помогает пользователям ориентироваться и критична для средств чтения с экрана: они объявляют legend перед каждым полем в группе.</p><h3>ARIA-атрибуты для сложных форм</h3><p>Для скринридеров и пользователей с ограничениями зрения важно не только правильное использование label, но и дополнительные ARIA-атрибуты. Например, aria-required="true" сообщает о необходимости заполнения, а aria-describedby связывает поле с текстом подсказки или сообщения об ошибке.</p><p>Атрибут aria-live="polite" на контейнере с ошибками позволяет скринридеру озвучить сообщение без прерывания текущего действия пользователя. Это особенно важно для динамических форм, где ошибки появляются после асинхронной проверки на сервере.</p><h3>Как отправить форму</h3><p>Для отправки данных используйте &lt;button type="submit"&gt;. Это семантично, стилизуется гибче, чем &lt;input type="submit"&gt;, и поддерживает вложенный HTML-контент — например, иконку рядом с текстом.</p><p><b>Важно:</b><br />Если у кнопки не указан атрибут type, браузер считает её кнопкой отправки по умолчанию. Чтобы избежать случайной отправки, всегда явно указывайте type="button" для кнопок, которые не должны отправлять форму.</p><p>Помимо клика по кнопке, форма отправляется при нажатии клавиши Enter в однострочных полях ввода. В многострочном &lt;textarea&gt; Enter добавляет перенос строки. Это стандартное поведение браузера, которое стоит учитывать при проектировании многошаговых форм: случайная отправка на середине заполнения раздражает пользователей.</p><h2>Чек-лист: правильная форма за 5 минут</h2><ul><li>Каждое поле имеет связанный &lt;label&gt; через for и id.</li><li>Выбран подходящий type для &lt;input&gt; — не везде text.</li><li>У всех полей есть атрибут name, иначе данные не уйдут на сервер.</li><li>Связанные поля объединены в &lt;fieldset&gt; с &lt;legend&gt;.</li><li>Для длинных текстов используется &lt;textarea&gt;, а не многострочный input.</li><li>Кнопка отправки — &lt;button type="submit"&gt;, а не устаревший input.</li><li>Форма работает без JavaScript: базовая проверка и отправка происходят на уровне HTML.</li></ul><h2>Выводы</h2><p>Поля HTML-форм — это не просто визуальные элементы, а полноценный интерфейс взаимодействия пользователя с вашим приложением. Правильный выбор типов input, связь через label, группировка в fieldset, ARIA-атрибуты и семантичная кнопка отправки — всё это влияет на удобство, доступность и конверсию.</p><blockquote>Доступность не добавляется в проект в конце — она закладывается на этапе разметки. Правильно свёрстанная форма работает для всех пользователей без дополнительных усилий.</blockquote><p>Если хотите углубиться в тему — изучите <a href="https://web.dev/learn/forms/">полный курс по формам от Google</a>. Там разбираются проверка данных, оформление, доступность и даже usability-тестирование поведения пользователей при заполнении форм.</p><p>Источник: <a href="https://web.dev/learn/forms/form-fields/">web.dev — Help users enter data in forms</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Разработка B2B-продуктов: как построить отношения между пользователем и командой продукта</title>
      <link>https://tproger.ru/articles/razrabotka-b2b-produktov-kak-soblyusti-balans-mezhdu-komfortom-ko</link>
      <comments>https://tproger.ru/articles/razrabotka-b2b-produktov-kak-soblyusti-balans-mezhdu-komfortom-ko?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Наталья Буйлина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/razrabotka-b2b-produktov-kak-soblyusti-balans-mezhdu-komfortom-ko</guid>
      <description><![CDATA[<p>О том, где в B2B-продуктах чаще всего возникают скрытые сложности и как найти баланс между потребностями бизнеса, пользователей и разработчиков.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/razrabotka-b2b-produktov-kak-soblyusti-balans-mezhdu-komfortom-ko">Разработка B2B-продуктов: как построить отношения между пользователем и командой продукта</a>»</p>]]></description>
      <category><![CDATA[Архитектура ПО]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Low-code]]></category>
      <category><![CDATA[Инфраструктура]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 21 May 2026 08:27:35 GMT</pubDate>
      <content:encoded><![CDATA[<p>В крупных B2B-продуктах удобство нельзя оценивать только по интерфейсу. За привычным экраном пользователя часто стоит сложная платформа, десятки взаимосвязанных компонентов и команды, которым нужно не только развивать продукт, но и поддерживать его стабильность в реальных клиентских сценариях. Поэтому при разработке корпоративных решений важно учитывать не только путь конечного пользователя, но и опыт внутренних команд — продуктовых групп, внедрения и эксплуатации.</p><p>О том, где в таких продуктах чаще всего возникают скрытые сложности и как найти баланс между потребностями бизнеса, пользователей и разработчиков, рассказала <b>Наталья Буйлина, лидер стрима ITSM платформы производства ПО «Сфера» (входит в ИТ-холдинг Т1).</b></p><p>Корень большинства проблем лежит глубже — в логике сценариев и архитектуре. Интерфейс лишь отражает то, насколько хорошо продуманы пользовательские пути. В продуктах, работающих внутри платформы, главная боль — скрытые зависимости от сервисов и сценарии, которые «ломаются» при любых изменениях в базовой инфраструктуре. При этом человек уверен, что работает с одним продуктом, хотя за ним стоят 5–10 компонентов.</p><p><b>Внутренние команды: пользователи, о которых забывают</b></p><p>Особенность B2B-сегмента в том, что каждый сервис рассчитан сразу на несколько категорий потребителей. Помимо конечных клиентов есть службы эксплуатации, специалисты по внедрению и продуктовые группы, встраивающие компоненты платформы в свои решения. Буйлина подчеркнула, что внутренним командам почти всегда приходится сложнее, хотя со стороны это и незаметно — трудности скрыты за фасадом процессов разработки.</p><p>Продуктовые группы быстро обнаруживают, что воспроизвести реальные клиентские сценарии непросто: часть логики находится в коде, часть — в конфигурации, а изолированная среда для тестирования может отсутствовать. В службах поддержки подход еще прагматичнее: когда процесс нужно восстановить здесь и сейчас, команда не ждет штатного решения, а правит данные в базе вручную или обходит стандартные процедуры. Если подобных обходных сценариев накапливается слишком много, это верный признак того, что платформа еще не полностью сформирована.</p><p><b>No-code и low-code: гибкость, которая может стать ловушкой</b></p><p>Отдельного внимания заслуживает работа команд внедрения в no-code- и low-code-среде. Такие инструменты ускоряют запуск новых сценариев, но конфигурация нередко выходит за пределы системы: появляются Excel-файлы с настройками, ручное копирование параметров между клиентами, внешние скрипты.</p><p>Поначалу кажется, что подобная гибкость — это безусловное преимущество. Однако со временем набор настроек становится сложнее кода, между элементами возникают неочевидные связи, а разобраться в работе конкретной инсталляции все труднее. К этому добавляется нарастающая хаотичность ролей и прав доступа: временные решения превращаются в постоянные, что напрямую влияет на безопасность всей системы.</p><p><b>Архитектура как точка баланса</b></p><p>Самым важным при проектировании корпоративных платформ являются вопросы функционального дизайна и системной архитектуры. Именно они объединяют все компоненты продукта и определяют его зрелость и применимость в реальном бизнесе.</p><p>Продукты не должны сдерживать развитие платформы, а платформа — тормозить продуктовые команды.</p>]]></content:encoded>
    </item>
    <item>
      <title>Эффект геймдева: как игровые механики решают проблему «саботажа» внедрения B2B-софта</title>
      <link>https://tproger.ru/articles/effekt-gejmdeva-kak-igrovye-mehaniki-rewayut-problemu-sabotazha</link>
      <comments>https://tproger.ru/articles/effekt-gejmdeva-kak-igrovye-mehaniki-rewayut-problemu-sabotazha?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Роман Горшков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/effekt-gejmdeva-kak-igrovye-mehaniki-rewayut-problemu-sabotazha</guid>
      <description><![CDATA[<p>Роман Горшков, арт-директор Битрикс24, о том, как внедрение игровых механик решает проблему «саботажа» внедрения B2B-софта.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/effekt-gejmdeva-kak-igrovye-mehaniki-rewayut-problemu-sabotazha">Эффект геймдева: как игровые механики решают проблему «саботажа» внедрения B2B-софта</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Вебинар]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 28 Apr 2026 05:45:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Компании инвестируют миллионы в разработку и покупку сложного ПО, но эффективность этих вложений часто стремится к нулю из-за низкого уровня принятия (adoption rate). Сотрудники саботируют новые инструменты, воспринимая их как дополнительную нагрузку, а не как помощь.</p><p>Хотя все уже давным давно придумано. Индустрия геймдева демонстрирует феноменальные результаты: игры удерживают внимание пользователей часами, обучают сложным правилам за минуты и заставляют людей возвращаться снова и снова без принуждения.</p><p>О том, почему бизнес до сих пор считает геймификацию «баловством», в то время как она может стать ключом к решению проблем продуктового онбординга и удержания внимания, рассказал Роман Горшков, арт-директор Битрикс24.</p><h2>Немного о дефиците внимания</h2><p>За последние два десятилетия ландшафт человеческого внимания изменился до неузнаваемости. Если в 2004 году среднее время концентрации на одном объекте <a href="https://www.apa.org/news/podcasts/speaking-of-psychology/attention-spans">составляло</a> 150 секунд (2,5 минуты), то к 2024–2025 годам этот показатель упал до критических <b>40 секунд.</b></p><p>Это означает, что у разработчика B2B-продукта есть меньше минуты, чтобы доказать пользователю ценность инструмента. В геймдеве это понимают лучше, чем где-либо еще: если игрок не понял, что делать в самом начале, шанс, что он вернется в игру стремится к нулю. Бизнес-софт же традиционно полагается на обучение без выбора: многостраничные PDF-инструкции, вебинары и распоряжения руководства. Но в условиях экономики внимания этот подход больше не работает. Поэтому бизнесу стоит искать готовые решения для управления UX (User Experience) у геймдева.</p><h2>Когнитивная база: эффект генерации и лимиты памяти</h2><p>Одной из фундаментальных проблем корпоративного ПО является перегрузка рабочей памяти пользователя. Современные исследования показывают, что зрительная рабочая память человека способна <a href="https://www.researchgate.net/publication/343944098_Editorial_Understanding_the_Operation_of_Visual_Working_Memory_in_Rich_Complex_Visual_Context">удерживать</a> одновременно от 3 до 5 объектов. При превышении этого порога внимание рассеивается, а скорость принятия решений падает.</p><p>В геймдеве интерфейсы строятся с хирургической точностью: игроку никогда не показывают все возможности сразу. Вместо этого используется «эффект генерации». Мозг запоминает информацию гораздо лучше, если она была получена в процессе активного действия, а не пассивного потребления.</p><ul><li>Пример из геймдева: В экшн-играх игрока не заставляют читать инструкцию по крафту стрел в меню. Подсказка всплывает прямо в разгар боя. Игрок нажимает комбинацию клавиш, получает результат и запоминает механику навсегда.</li><li>Применение в B2B: Вместо того чтобы блокировать экран модальным окном с текстом «как завести сделку», система должна подсвечивать нужные элементы в интерфейсе в тот момент, когда пользователь сам начал процесс ее создания.</li></ul><h2>«Светлая» vs «Темная» геймификация: этика и эффективность</h2><p>Геймификацию часто критикуют за манипулятивность. Для B2B-сектора крайне важно разделять типы используемых механик, так как на кону стоит долгосрочное доверие сотрудника к компании.</p><h3>Белая геймификация: визуальное подкрепление</h3><p>Это инструменты, которые делают прогресс осязаемым и приносят «чистый» дофамин. К ним относятся:</p><ol><li>Визуальный восторг: анимация при достижении важной вехи (например, закрытие первой сложной сделки в CRM). Это создает позитивный эмоциональный якорь.</li><li>«Медальки» за выполнение KPI: награждение за реальные успехи — например, за самую высокую скорость обработки заявок в отделе. Это не манипуляция, а признание профессионализма.</li><li>Персонализированная мотивация: система достижений (badges), которая фиксирует рост компетенций сотрудника.</li></ol><h3>Темная геймификация: манипуляция</h3><p>Это использование механизмов, вызывающих зависимость (например, лутбоксы или нерегулярное вознаграждение). В играх это заставляет людей тратить тысячи часов в надежде на случайный выигрыш. В бизнесе такие методы недопустимы: они вызывают быстрое выгорание и чувство, что сотрудником пытаются управлять в обход его воли.</p><h2>Чек-лист: что внедрить в B2B-продукт</h2><p>Если компания хочет снизить издержки на обучение и повысить вовлеченность, ей стоит пересмотреть подход к проектированию интерфейсов, используя следующие принципы геймдева:</p><ul><li>Контекстные подсказки вместо мануалов. Сократите количество ссылок на базу знаний. Информация должна появляться там, где наведен курсор, и тогда, когда пользователь в ней нуждается.</li><li>Поощрение исследовательского поведения. Сделайте интерфейс «безопасным». Пользователь должен чувствовать, что он может «потыкать» любые кнопки без риска сломать систему. Это лучший способ быстрого освоения продукта.</li><li>Визуальное подтверждение успеха. Когда сотрудник выполняет рутинное действие быстрее или качественнее нормы, система должна давать мгновенную визуальную обратную связь.</li><li>Гигиена интерфейса. Соблюдайте когнитивный лимит в 3–4 объекта в фокусе. Если экран перегружен информацией, ни одна геймификация не спасет продукт от отторжения.</li></ul><h2>Вектор развития: от функций к вниманию</h2><p>Опыт геймдева — это база прикладных знаний по когнитивистике и эргономике внимания. Внедрение игровых механик онбординга и систем позитивного подкрепления дает измеримый бизнес-результат: кратно снижаются расходы на обучение персонала и устраняется психологическое сопротивление при запуске новых цифровых продуктов.</p><p>На рынок труда выходит поколение, сформированное пользовательским опытом современных игровых платформ. Цифровая среда должна соответствовать ожиданиям тех, кто в ней работает. Сегодняшние нанимаемые специалисты привыкли к качеству UX (пользовательского опыта) уровня потребительских приложений и игр. Если корпоративная экосистема выглядит как софт из 90-х, компания проиграет в борьбе за таланты — люди будут уходить туда, где рабочие инструменты удобнее.</p>]]></content:encoded>
    </item>
    <item>
      <title>Эффект геймдева: как игровые механики решают проблему «саботажа» внедрения B2B-софта</title>
      <link>https://tproger.ru/articles/effekt-gejmdeva-kak-igrovye-mehaniki-rewayut-problemu-sabotazha-2</link>
      <comments>https://tproger.ru/articles/effekt-gejmdeva-kak-igrovye-mehaniki-rewayut-problemu-sabotazha-2?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Роман Горшков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/effekt-gejmdeva-kak-igrovye-mehaniki-rewayut-problemu-sabotazha-2</guid>
      <description><![CDATA[<p>Как игровые механики помогают внедрять B2B-софт: повышают adoption, снижают саботаж и ускоряют онбординг сотрудников.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/effekt-gejmdeva-kak-igrovye-mehaniki-rewayut-problemu-sabotazha-2">Эффект геймдева: как игровые механики решают проблему «саботажа» внедрения B2B-софта</a>»</p>]]></description>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Как улучшить интерфейс]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 23 Apr 2026 06:45:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Компании инвестируют миллионы в разработку и покупку сложного ПО, но эффективность этих вложений часто стремится к нулю из-за низкого уровня принятия (adoption rate). Сотрудники саботируют новые инструменты, воспринимая их как дополнительную нагрузку, а не как помощь.</p><p>Хотя все уже давным давно придумано. Индустрия геймдева демонстрирует феноменальные результаты: игры удерживают внимание пользователей часами, обучают сложным правилам за минуты и заставляют людей возвращаться снова и снова без принуждения.</p><p>О том, почему бизнес до сих пор считает геймификацию «баловством», в то время как она может стать ключом к решению проблем продуктового онбординга и удержания внимания, рассказал Роман Горшков, арт-директор Битрикс24.</p><h2>Немного о дефиците внимания</h2><p>За последние два десятилетия ландшафт человеческого внимания изменился до неузнаваемости. Если в 2004 году среднее время концентрации на одном объекте <a href="https://www.apa.org/news/podcasts/speaking-of-psychology/attention-spans">составляло</a> 150 секунд (2,5 минуты), то к 2024–2025 годам этот показатель упал до критических <b>40 секунд.</b></p><p>Это означает, что у разработчика B2B-продукта есть меньше минуты, чтобы доказать пользователю ценность инструмента. В геймдеве это понимают лучше, чем где-либо еще: если игрок не понял, что делать в самом начале, шанс, что он вернется в игру стремится к нулю. Бизнес-софт же традиционно полагается на обучение без выбора: многостраничные PDF-инструкции, вебинары и распоряжения руководства. Но в условиях экономики внимания этот подход больше не работает. Поэтому бизнесу стоит искать готовые решения для управления UX (User Experience) у геймдева.</p><h2>Когнитивная база: эффект генерации и лимиты памяти</h2><p>Одной из фундаментальных проблем корпоративного ПО является перегрузка рабочей памяти пользователя. Современные исследования показывают, что зрительная рабочая память человека способна <a href="https://www.researchgate.net/publication/343944098_Editorial_Understanding_the_Operation_of_Visual_Working_Memory_in_Rich_Complex_Visual_Context">удерживать</a> одновременно от 3 до 5 объектов. При превышении этого порога внимание рассеивается, а скорость принятия решений падает.</p><p>В геймдеве интерфейсы строятся с хирургической точностью: игроку никогда не показывают все возможности сразу. Вместо этого используется «эффект генерации». Мозг запоминает информацию гораздо лучше, если она была получена в процессе активного действия, а не пассивного потребления.</p><ul><li>Пример из геймдева: В экшн-играх игрока не заставляют читать инструкцию по крафту стрел в меню. Подсказка всплывает прямо в разгар боя. Игрок нажимает комбинацию клавиш, получает результат и запоминает механику навсегда.</li><li>Применение в B2B: Вместо того чтобы блокировать экран модальным окном с текстом «как завести сделку», система должна подсвечивать нужные элементы в интерфейсе в тот момент, когда пользователь сам начал процесс ее создания.</li></ul><h2>«Светлая» vs «Темная» геймификация: этика и эффективность</h2><p>Геймификацию часто критикуют за манипулятивность. Для B2B-сектора крайне важно разделять типы используемых механик, так как на кону стоит долгосрочное доверие сотрудника к компании.</p><h2>Белая геймификация: визуальное подкрепление</h2><p>Это инструменты, которые делают прогресс осязаемым и приносят «чистый» дофамин. К ним относятся:</p><ol><li>Визуальный восторг: анимация при достижении важной вехи (например, закрытие первой сложной сделки в CRM). Это создает позитивный эмоциональный якорь.</li><li>«Медальки» за выполнение KPI: награждение за реальные успехи — например, за самую высокую скорость обработки заявок в отделе. Это не манипуляция, а признание профессионализма.</li><li>Персонализированная мотивация: система достижений (badges), которая фиксирует рост компетенций сотрудника.</li></ol><h2>Темная геймификация: манипуляция</h2><p>Это использование механизмов, вызывающих зависимость (например, лутбоксы или нерегулярное вознаграждение). В играх это заставляет людей тратить тысячи часов в надежде на случайный выигрыш. В бизнесе такие методы недопустимы: они вызывают быстрое выгорание и чувство, что сотрудником пытаются управлять в обход его воли.</p><h2>Чек-лист: что внедрить в B2B-продукт</h2><p>Если компания хочет снизить издержки на обучение и повысить вовлеченность, ей стоит пересмотреть подход к проектированию интерфейсов, используя следующие принципы геймдева:</p><ul><li>Контекстные подсказки вместо мануалов. Сократите количество ссылок на базу знаний. Информация должна появляться там, где наведен курсор, и тогда, когда пользователь в ней нуждается.</li><li>Поощрение исследовательского поведения. Сделайте интерфейс «безопасным». Пользователь должен чувствовать, что он может «потыкать» любые кнопки без риска сломать систему. Это лучший способ быстрого освоения продукта.</li><li>Визуальное подтверждение успеха. Когда сотрудник выполняет рутинное действие быстрее или качественнее нормы, система должна давать мгновенную визуальную обратную связь.</li><li>Гигиена интерфейса. Соблюдайте когнитивный лимит в 3–4 объекта в фокусе. Если экран перегружен информацией, ни одна геймификация не спасет продукт от отторжения.</li></ul><h2>Вектор развития: от функций к вниманию</h2><p>Опыт геймдева — это база прикладных знаний по когнитивистике и эргономике внимания. Внедрение игровых механик онбординга и систем позитивного подкрепления дает измеримый бизнес-результат: кратно снижаются расходы на обучение персонала и устраняется психологическое сопротивление при запуске новых цифровых продуктов.</p><p>На рынок труда выходит поколение, сформированное пользовательским опытом современных игровых платформ. Цифровая среда должна соответствовать ожиданиям тех, кто в ней работает. Сегодняшние нанимаемые специалисты привыкли к качеству UX (пользовательского опыта) уровня потребительских приложений и игр. Если корпоративная экосистема выглядит как софт из 90-х, компания проиграет в борьбе за таланты — люди будут уходить туда, где рабочие инструменты удобнее.</p>]]></content:encoded>
    </item>
    <item>
      <title>Bring Back Idiomatic Design: почему мы скучаем по интерфейсам Windows 95 — перевод эссе Джона Лёбера</title>
      <link>https://tproger.ru/translations/bring-back-idiomatic-design-pochemu-my-skuchaem-po-interfejsam-wi</link>
      <comments>https://tproger.ru/translations/bring-back-idiomatic-design-pochemu-my-skuchaem-po-interfejsam-wi?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/bring-back-idiomatic-design-pochemu-my-skuchaem-po-interfejsam-wi</guid>
      <description><![CDATA[<p>Почему в Windows 95 каждое приложение было предсказуемым, а сегодня каждый сайт — угадайка? Разбираемся с идиомами дизайна и что делать прямо сейчас.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/bring-back-idiomatic-design-pochemu-my-skuchaem-po-interfejsam-wi">Bring Back Idiomatic Design: почему мы скучаем по интерфейсам Windows 95 — перевод эссе Джона Лёбера</a>»</p>]]></description>
      <category><![CDATA[Веб-дизайн]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 13 Apr 2026 15:30:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>Каждый раз, когда вы не можете найти кнопку «Назад», не уверены, кликабелен ли элемент или это просто текст, и проводите минуту в выпадающем календаре, чтобы выбрать дату — это не случайность. Это следствие того, что веб разучился быть консистентным. Перевод эссе <a href="https://essays.johnloeber.com/p/4-bring-back-idiomatic-design">«Bring Back Idiomatic Design»</a> Джона Лёбера 2023 года — про то, как мы это потеряли и что делать продуктовому разработчику прямо сейчас.</p><p>Я из поколения десктоп-софта. От Windows 95 до Windows 7 я рос на преимущественно офлайн-приложениях, которые управлялись мышью и клавиатурой — задолго до планшетов и смартфонов. В последнее время я скучаю по одной конкретной части той эпохи: по консистентности дизайна. В этом эссе я хочу рассказать про идиоматический дизайн, подчеркнуть важность гомогенных интерфейсов и предложить мысль, что мы потеряли что-то важное.</p><ul><li>Идиоматический дизайн — это набор настолько распространённых решений, что и пользователи, и разработчики применяют их «не задумываясь». Чекбокс «Запомнить меня» — каноничный пример: никто не делает выпадающий список или текстовое поле для этого вопроса.</li><li>Десктоп-эра (Windows 95–7) держалась на гомогенных интерфейсах: File / Edit / View, подчёркнутые буквы для шорткатов вроде Alt + F, статус-бар с состоянием, слова вместо иконок. Идиомы диктовали ОС и её GUI-библиотеки.</li><li>Веб-эра — это эра гетерогенных интерфейсов. Figma и Linear — два лучших энтерпрайз-инструмента сегодня — не разделяют ни одной иконки и ни одного шортката. Даже внутри Google: Gmail, GSuites и Google Docs — три разных опыта.</li><li>Причины разрушения идиом: переход на мобильные (паттерны для тач-экрана пришлось переизобретать), и то, что современный фронтенд пишут не на голом HTML, а на React + npm-пакетах, где идиомы теряются на каждой итерации.</li><li>Apple — главный выживший пример идиоматического дизайна в наше время. Эффект «it just works» строится на том, что iOS навязывает третьим приложениям свои шрифты, кнопки, жесты. То же делает Substack для авторов: ноль настроек, всегда выглядит одинаково.</li><li>Практический вывод для разработчика: следовать HTML/CSS-идиомам, не переизобретать `` через React, не ломать back-button браузера, предпочитать слова иконкам, и понятность — красоте.</li></ul><h2>Идиомы дизайна</h2><p>Допустим, вы заходите на сайт, и он спрашивает: «вы хотите остаться залогиненным?». Есть множество способов задать этот вопрос: текстовое поле, в которое можно ввести «да» или «нет»; выпадающий список с вариантами «Запомнить меня» и «Выйти при закрытии окна». Но в реальности это всегда чекбокс. Почему?</p><p>Чекбокс — это <i>идиома дизайна</i>. Это настолько распространённое решение, что вы как пользователь умеете им пользоваться, не задумываясь, а если бы делали сайт сами, тоже бы поставили чекбокс, не задумываясь. И для тех, кто строит, и для тех, кто пользуется, это стандартный паттерн, на который все полагаются.</p><h2>Гомогенные интерфейсы</h2><p>Чекбокс — это ещё и часть <i>интерфейса</i>. Через него вы взаимодействуете с системой и вводите данные. Интерфейс тем лучше, чем меньше думанья он требует: будь то руль автомобиля или онлайн-форма — если на разбирательство уходит хоть какое-то время, это плохо. Когда вы взаимодействуете со множеством вещей, вы хотите гомогенных интерфейсов с консистентным опытом. Если вы выучили, что Cmd + C — это «копировать», вы хотите, чтобы это работало везде. Никто не хочет помнить, что в одних случаях нужно Ctrl + Shift + C, а в других правый клик → «копировать».</p><p>Но мы пришли именно к этому. Софт ушёл в интернет, и интерфейсы перестали быть гомогенными вообще. Сотни способов выбрать дату, ввести номер банковской карты, сделать любую банальную операцию. Шорткаты в каждом приложении свои. Способов взаимодействия столько, что их нельзя ни запомнить, ни выучить. Использование веб-приложений в 2023-м — это бесконечное упражнение «где у этой штуки то, что мне нужно?».</p><h2>Эра десктоп-софта</h2><p>Для контраста: одной из сильных сторон десктоп-эры была высокая консистентность интерфейсов через идиомы дизайна. Посмотрите на типичный скриншот из Windows 2000 — Microsoft Word.</p><p>Визуально это слегка уродливо и устарело: всё прямоугольное, шрифт так себе, цвета тусклые. Но интерфейс делает несколько вещей по-настоящему правильно.</p><ul><li>Структура меню «Файл / Правка / Вид…» была стандартной. В Adobe Photoshop или Microsoft Excel — без разницы, вы знали, что «Сохранить» лежит в «Файле», «Отменить» в «Правке», «Полный экран» в «Виде» и так далее.</li><li>Меню навигируется с клавиатуры. У каждого пункта есть подчёркнутая буква: <b>F</b> в File, <b>N</b> в New. Это шорткаты. Нажимаете Alt + F, открывается меню «Файл», нажимаете N — создаётся новый файл. И мощным пользователям удобно, и шорткаты легко учить.</li><li>Статус-бар внизу показывает всё про текущее состояние: страницу, столбец, количество слов, идёт ли запись правок, в каком вы режиме (вставки или замены) и так далее.</li><li>Пункты меню подписаны словами. Слова, не иконки, — основной интерфейс к действиям. Иконки используются только там, где смысл очевиден. Весь интерфейс не оставляет места для воображения. На скриншоте нет «интересно, а что эта кнопка делает?» — вы знаете, как этим пользоваться, даже если никогда раньше не пользовались.</li></ul><p>Возможно, вы не знаете, что значат метки <b>REC</b>, <b>TRK</b>, <b>OVR</b> в статус-баре. Тогда вам помог бы ещё один стандартный паттерн: всплывающие подсказки при наведении мыши, которые объясняют, что эта штука делает.</p><p>Что критично — эти идиомы дизайна использовались не только в Microsoft Word, а вообще во всей экосистеме Windows. Посмотрите на экран выхода из Windows XP. Каждая кнопка визуально явно кнопка и подписана прямо тем, что она делает. У каждой подчёркнутая буква для шортката. Разве не приятно?</p><p>Эра десктоп-софта была эрой гомогенных интерфейсов — возможно потому, что операционная система и её GUI-библиотеки диктовали огромные пласты дизайна, и эти ограничения подталкивали разработчиков к конформным паттернам.</p><p>Стоит упомянуть, что последние десятилетия Microsoft вместе с релизами Windows публиковала несколько-сотен-страничные жёстко предписывающие гайды по тому, как делать идиоматические приложения. Один из недавних примеров — <a href="https://learn.microsoft.com/en-us/windows/apps/design/">Windows Apps Design</a>.</p><h2>Эра браузерного софта</h2><p>Эра браузерного софта — это эра гетерогенных интерфейсов. Возьмите два моих любимых веб-приложения: Figma и Linear.</p><p>Я намеренно беру утилитарный энтерпрайз-софт и не сравниваю его с Facebook, Twitter и подобными — это были бы яблоки и апельсины.</p><p>Это, пожалуй, два лучших куска энтерпрайз-софта на сегодня. И хотя у них масса общих фич — настройки команд, абстрактные иерархии элементов, коллаборативные комментарии и так далее — у них нет ни одной общей иконки. У них нет ни одной общей идиомы дизайна. У них разные шорткаты. Оба отлично сделаны <i>с нуля по первым принципам</i>, но не конформны ни к одному другому интерфейсу, который пользователь мог видеть раньше.</p><p>Мы в эпохе индивидуально хорошо сделанных и полезных веб-приложений, и все они уникальны. Даже в продуктах одной и той же компании опыт гетерогенный: пользоваться Gmail — это совсем не то же самое, что пользоваться GSuites, и совсем не то же самое, что Google Docs. В сумме это очень фрустрирует. Отсутствие гомогенных интерфейсов означает, что я провожу большую часть своего цифрового времени не в продуктивном потоке, а тыкая по экрану и спрашивая себя: «можно ли по этому кликнуть? откроется ли это в новой вкладке? сработает ли кнопка „назад" в браузере?». Жуть.</p><p>Эта негомогенность — по двум причинам.</p><h3>Переход на мобильные</h3><p>Все паттерны, придуманные для приложений с мышью и клавиатурой, пришлось переизобретать с появлением тач-экрана. Большинство веб-приложений вынуждены поддерживать оба опыта — мобильный и десктопный — а они радикально разные. В результате большинство пользовательских опытов застряло в неловкой середине: например, гамбургер-меню, придуманные для мобильных, стали использоваться и для десктопа.</p><p>Современный фронтенд-разработчик живёт в культуре копирования и переиспользования модульных компонентов, поэтому копировать-вставлять плохие паттерны и закреплять их — очень легко. После 10+ лет такого подхода поколение за поколением фронтендеров деградировало качество UI/UX-дизайна.</p><h3>Недостаточно идиом за пределами HTML</h3><p>Если бы все следовали одним и тем же идиомам, интерфейсы бы выглядели довольно консистентно. В ранние годы интернета сильные идиомы были: гиперссылки на другие страницы — синие подчёркнутые, фиолетовые если уже посещали. Прекрасно. Сегодня каждый сайт — это собственная угадайка о том, как стилизованы элементы интерфейса. Это ссылка? Может быть.</p><p>Может удивлять, что современный веб-дизайн настолько неидиоматичен — ведь стандарты HTML/CSS очень предписывающие. Проблема в том, что хотя стандарты для написания HTML существуют, его никто не пишет. Все пишут React в TypeScript или последний фреймворк. Импортируют бесчисленные npm-пакеты. Всё это проходит через сложный билд-процесс и выдаёт что-то, что бежит в браузере.</p><p>Большая ирония в том, что модульные компоненты должны были <i>обеспечить</i> идиоматический дизайн. Дайте сообществу разработать кучу датапикеров, и пусть лучший победит. Разработчики смогут легко интегрировать самые удачные модули. Так в теории. В реальности — сотни конкурирующих дизайн-библиотек и ни одной окончательной рекомендации, которая выжила бы долгосрочно.</p><p>Фронтенд-разработчики не делают ничего неправильного. Браузеры сегодня очень мощные и предлагают универсальные API, которые позволяют делать почти всё, если подходить креативно. Например, Figma не следует ни одной HTML-идиоме, потому что в ней нет HTML. Она написана на WebAssembly; команда на cutting edge-реализации десктоп-стиля софта в браузере. Конечно, это ломает HTML-as-document-модель веб-страницы. Кнопка «назад» в браузере, шорткаты и так далее идут лесом, пока заново выстраивается парадигма взаимодействия человека и компьютера.</p><p>Короче, веб-идиом дизайна мало, потому что фронтенд-разработка движется слишком быстро. Инженеры заняты тем, что <i>возможно</i>, а не вопросами полировки — и правильно. Многопользовательская коллаборация в реальном времени гораздо ценнее шорткатов для опытных пользователей. А поскольку существует бесконечное количество и фронтенд-пакетов, и форматов взаимодействия, навязывать единые идиомы на такое большое пространство очень тяжело. Должно пройти время, чтобы передний край остыл, чтобы лучшие паттерны проявились и стали идиоматическими.</p><p>Хуже того: даже на техническом уровне правильные идиомы часто пропускают разработчики, которые гонят к финишной черте. Я видел в open source-кодовых базах &lt;span&gt; с обработчиком onclick вместо тега &lt;a&gt;. Это хаос, и это ломает скрин-ридеры и другие средства доступности.</p><h2>Успех идиоматического дизайна</h2><p>И всё же некоторые из самых успешных продуктовых организаций сегодня агрессивно навязывают свои идиомы дизайна и достигают какой-то гомогенности интерфейсов.</p><p>Apple — отличный пример. Мы говорили про Microsoft прошлого, но Apple сегодня двигает резко бескомпромиссную дизайн-систему. Общая библиотека шрифтов, кнопок, цветов и её консистентность через все нативные приложения и устройства Apple создали мощный эффект подражания для сторонних приложений. Даже когда вы пользуетесь сторонним приложением на iPhone, взаимодействие через клавиатуру, pinch-to-zoom и так далее контролируется iOS. Это большая часть эффекта Apple «оно просто работает». Сильный, со вкусом сделанный, идиоматический дизайн — в ядре успеха Apple.</p><p>Что интересно про «оно просто работает»-эффект — он заставляет пользователей доверять дефолтам и избегать кастомизации. Похожая динамика на платформах вроде Substack, где у меня как у автора нет возможности выбрать шрифт или даже подчеркнуть текст. Но ограничивающие дефолты выставлены со вкусом, и это отлично работает. Дизайн-принципы Substack и Apple набирают распространение по мере успеха этих продуктов: дизайнеры смотрят на них как на удачные примеры. Эти решения становятся идиомами через две вещи: (1) люди сходятся на них как на хорошем дизайне, и (2) частоту использования в сообществе.</p><h2>Что с этим делать</h2><p>Если вы строите продукт, вы хотите следовать идиомам дизайна так близко, как это практически возможно — это делает софт легче в использовании и максимизирует совместимость на разных устройствах и в разных браузерах. Я следую этим правилам и нарушаю их только редко.</p><ol><li>Изучайте и следуйте идиомам HTML/CSS, когда возможно. Например, ссылка должна быть подчёркнутой, цветной, с курсором-пальцем при наведении и написана как тег &lt;a&gt;.</li><li>Избегайте JavaScript-переизобретений базовых HTML-элементов: например, React-компонент Button вместо стилизованного &lt;button&gt;.</li><li>Изучайте и следуйте идиомам браузера, когда возможно. Кнопка «назад» должна всегда работать. Копирование-вставка URL должны приводить пользователя к тому же интерфейсу. Ctrl+Click по навигационному элементу должен открывать его в новой вкладке.</li><li>Если отклоняетесь от общих идиом — убедитесь, что ваш дизайн полностью внутренне консистентен и хотя бы «идиоматичен» внутри вашей организации.</li><li>Предпочитайте слова иконкам. Используйте только иконки, понятные универсально.</li><li>Если сомневаетесь — делайте визуальные элементы <i>очевидными</i>. Никогда не должно возникать вопроса, кнопка это или таб.</li><li>Предпочитайте то, что легко понять, тому, что визуально красиво.</li><li>Если зашли в тупик — обратитесь к двум типам ресурсов: лучшим сайтам с дизайном, которые вы знаете, и книгам по интерфейсному дизайну прошлых десятилетий. Большинство проблем интерфейсного дизайна сегодня — не новые, а повторы исторических, у которых есть решённые аналоги в прошлом.</li></ol><p>Я мечтаю о дне, когда каждый датапикер или форма ввода банковской карты в интернете будут абсолютно одинаковыми — когда после 30 лет итеративной разработки и миллионов попыток мы наконец сойдёмся на лучшей. Я мечтаю о будущем, в котором в каждом веб-приложении Ctrl+Click будет открывать ссылку в новой вкладке. Это было бы хорошо.</p><h2>От переводчика</h2><p>Эссе написано в 2023 году, но за два с половиной года консистентности в вебе не прибавилось — скорее наоборот. ИИ-сгенерированные интерфейсы и v0/Cursor-style фронтенд-генерация только увеличили число способов сделать одно и то же: каждый промпт даёт чуть новый &lt;Button&gt; с уникальным API.</p><p>Из практически применимого для российских команд: совет «следуйте HTML-идиомам» снижает не только риск сломать UX, но и число npm-зависимостей — а значит, и риск supply-chain атак, и порог входа для новых разработчиков. Особенно ценно, когда команда меняется быстрее, чем проект.</p><p>Оригинал эссе: <a href="https://essays.johnloeber.com/p/4-bring-back-idiomatic-design">essays.johnloeber.com</a>. Сайт автора: <a href="https://www.johnloeber.com">johnloeber.com</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>CSS Studio: визуальный редактор, который правит ваш код руками ИИ-агента</title>
      <link>https://tproger.ru/news/css-studio-vizualnyj-redaktor-kotoryj-pravit-vaw-kod-rukami-i</link>
      <comments>https://tproger.ru/news/css-studio-vizualnyj-redaktor-kotoryj-pravit-vaw-kod-rukami-i?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/css-studio-vizualnyj-redaktor-kotoryj-pravit-vaw-kod-rukami-i</guid>
      <description><![CDATA[<p>Автор Motion выпустил CSS Studio — визуальный редактор стилей в dev-сборке. Правите CSS руками, изменения через MCP уходят в Claude Code или Cursor.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/css-studio-vizualnyj-redaktor-kotoryj-pravit-vaw-kod-rukami-i">CSS Studio: визуальный редактор, который правит ваш код руками ИИ-агента</a>»</p>]]></description>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[CSS]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 10 Apr 2026 17:15:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вы регулярно объясняете <a href="https://claude.com/claude-code">Claude Code</a> или <a href="https://cursor.com">Cursor</a> текстом, какой именно padding вам нужен, — вот инструмент, который делает это за вас руками. Мэтт Перри, автор библиотеки <a href="https://motion.dev">Motion</a> (бывший Framer Motion), выпустил <a href="https://cssstudio.ai/">CSS Studio</a> — визуальный редактор стилей, который живёт прямо в вашей dev-сборке и шлёт изменения в ваш ИИ-агент через MCP. Запуск вылетел в топ Show HN.</p><ul><li>CSS Studio — визуальный WYSIWYG-редактор, который встраивается в ваш dev-сайт через npm-пакет.</li><li>Вы двигаете padding, шрифты, отступы, анимации руками; изменения через MCP-сервер уходят в Claude Code, Cursor или любой другой агент с MCP-поддержкой.</li><li>Агент правит код по месту: классы в Tailwind-проектах, объект стилей в CSS-in-JS, селектор в стайлшитах. Специальной поддержки Tailwind-токенов пока нет — token-режим в планах.</li><li>Цена: $99 за одно место.</li></ul><h2>Что это и зачем</h2><p>Сейчас типичный ИИ-воркфлоу для фронтенда выглядит так: вы открываете сайт в браузере, замечаете кривой отступ, идёте в чат агента и пишете «сделай padding у кнопки-подписки на два пикселя меньше и выровняй по базовой линии». Агент угадывает, какой компонент вы имели в виду, промахивается, вы поправляете. Через десять сообщений нужный padding наконец встал куда надо.</p><p>CSS Studio заменяет эту итерацию прямым редактированием. Вы добавляете npm-пакет в dev-сборку, запускаете её, в углу страницы появляется панель редактора. Кликаете на элемент, двигаете ползунки или тянете за точки — padding меняется в реальном времени в браузере. Когда результат нравится, нажимаете «Apply» (или включаете auto-apply). В этот момент подключённый ИИ-агент через MCP получает JSON-патч с описанием изменений и дописывает реальные файлы.</p><p>То есть вы получаете WYSIWYG-редактор, но результат приземляется в ваш настоящий код. Что с Tailwind — отдельный вопрос. Специальной интеграции с ним пока нет: визуальная панель показывает вычисленные CSS-значения, а агент уже сам догадывается, как их вернуть в исходник, — вслепую, без понимания Tailwind-токенов. Перри пообещал token/strict-режим с распознаванием Tailwind-классов и CSS-переменных, но это пока план. С CSS-in-JS и обычными стайлшитами проще: агент дотягивается до объекта стилей в компоненте или до нужного селектора в файле.</p><h2>Как это работает технически</h2><p>Всё завязано на <a href="https://modelcontextprotocol.io/">Model Context Protocol</a> — стандарт от Anthropic, который позволяет агентам подключаться к локальным инструментам (файлы, БД, сервисы) как к плагинам, без кастомной интеграции под каждый. CSS Studio поднимает локальный MCP-сервер рядом с вашим dev-сервером (подружиться с Vite получилось сразу, судя по отзыву разработчика mpeg на HN).</p><p>В Claude Code или Cursor вы запускаете команду /studio — и агент начинает слушать MCP-сервер. Когда вы в браузере двигаете слайдер padding, CSS Studio стримит агенту JSON вида «компонент такой-то, свойство такое-то, новое значение — вот такое, плюс информация о viewport и URL». Агент видит текущий контекст проекта, находит нужный файл и вносит правку по правилам кодовой базы.</p><p>Перри также упоминает, что для низкой задержки MCP-сервер может использовать Claude Channels — малоизвестную фичу Claude Code для стриминга. В обычном режиме агент периодически опрашивает MCP-сервер; Claude Channels снимают эту задержку.</p><h2>Что умеет</h2><ul><li><b>Стили</b> — padding, margin, цвета, шрифты, тени, бордеры, flex/grid-настройки через визуальные контролы.</li><li><b>Текст и контент</b> — прямое редактирование содержимого элементов без захода в файлы.</li><li><b>Лейаут</b> — добавление и удаление элементов, перестановка.</li><li><b>Анимации</b> — таймлайн-редактор для motion-эффектов (что логично от автора Motion).</li><li><b>Breakpoints</b> — редактор понимает, в каком брейкпоинте вы сейчас правите; canvas-режим для параллельного просмотра нескольких вьюпортов Перри дорабатывает прямо сейчас.</li><li><b>Рисование</b> — инструмент для набросков новых блоков на странице, потом отдаёте агенту на реализацию.</li></ul><h2>Кому полезно</h2><p>Первый очевидный сценарий — фронтендеры, которые уже сидят на ИИ-агентах для написания кода и устали от словесных описаний CSS-правок. Второй — дизайнеры и продакт-менеджеры, у которых нет доступа к репозиторию, но им нужно быстро подкрутить что-то на лендинге. Раньше они писали тикет, теперь — двигают слайдеры сами, агент пишет изменения в файлы.</p><p>Третий — QA и владельцы агентств, которые собирают десятки маркетинговых сайтов: визуальные правки через браузер с автоматической синхронизацией в код ускоряют финальную полировку. В комментариях на HN несколько человек отдельно отметили, что до этого сами писали похожие инструменты «на коленке» — значит потребность назрела.</p><h2>Что не так</h2><p>Цена — $99 за одно место, и комьюнити на HN это обсуждает активно. Сравнивают с Figma (около $160 за место) и с Cursor (те же $20 в месяц). Для команды из пяти человек выходит $495 в год. Перри в комментариях пообещал подумать над ценообразованием, а пока рассчитывает на ранних энтузиастов.</p><p>Второе — лендинг. Несколько комментаторов заметили, что сайт продукта для дизайна выглядит «как сгенерированный LLM» — слишком много фиолетового, шаблонная композиция, анимации fade-in. Для инструмента, который продаёт дизайн, это, мягко говоря, неловко. Перри признал и пообещал переделать.</p><p>Третье — зависимость от ИИ-агента с MCP. Если вы не сидите на Claude Code / Cursor / Windsurf и не планируете, CSS Studio для вас пока бесполезен: он не генерирует код самостоятельно, а только командует вашим агентом. Отдельная боль для российских разработчиков — оплата: Stripe из РФ не работает, нужна зарубежная карта или сервис-посредник. Зато живое демо на сайте cssstudio.ai доступно без регистрации, попробовать можно.</p><h2>Что это значит</h2><p>CSS Studio — один из первых публичных примеров того, как MCP превращается в инструмент «человек рисует, агент кодирует». До этого WYSIWYG-редакторы либо жили в отдельной вселенной (как Figma и Webflow), либо редактировали код напрямую, но теряли контекст проекта. MCP даёт третий путь: визуальный фронтенд + реальный агент с доступом к вашей кодовой базе.</p><p>Если такой подход взлетит, ждите аналогичных инструментов для других доменов: визуальный редактор схемы базы данных → агент правит миграции, визуальный редактор API → агент правит OpenAPI и генерирует клиент, визуальный редактор Grafana-дашбордов → агент правит Terraform. Базовая механика одна и та же.</p><p>Источники: <a href="https://cssstudio.ai/">cssstudio.ai</a>, <a href="https://news.ycombinator.com/item?id=47702196">обсуждение на Hacker News</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Android 17 Beta 1 вышла с новыми API камеры и изменениями интерфейса</title>
      <link>https://tproger.ru/news/android-17-beta-1-vywla-s-novymi-api-kamery-i-izmeneniyami-interf</link>
      <comments>https://tproger.ru/news/android-17-beta-1-vywla-s-novymi-api-kamery-i-izmeneniyami-interf?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/android-17-beta-1-vywla-s-novymi-api-kamery-i-izmeneniyami-interf</guid>
      <description><![CDATA[<p>Android 17 Beta 1 вышла для Pixel: новые API камеры, обязательная адаптивность интерфейсов и постепенные изменения дизайна</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/android-17-beta-1-vywla-s-novymi-api-kamery-i-izmeneniyami-interf">Android 17 Beta 1 вышла с новыми API камеры и изменениями интерфейса</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Бета]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 13 Feb 2026 17:20:07 GMT</pubDate>
      <content:encoded><![CDATA[<p>Google <a href="https://www.androidauthority.com/android-17-beta-1-delayed-rollout-3640969/">запустила</a> первую бета-версию Android 17 для устройств Pixel.</p><p>Релиз немного задержался — компания в последний момент отложила старт тестирования, пообещав, что обновление выйдет «скоро». В итоге пауза продлилась всего несколько дней.</p><p>Бета уже распространяется «по воздуху» для участников Android Beta Program. Владельцы актуальных Pixel получат обновление автоматически.</p><h2>Обязательная адаптивность и доработанная камера</h2><p>Одно из ключевых изменений — обязательная поддержка адаптивных интерфейсов для приложений, ориентированных на Android 17.</p><p>Разработчикам придется корректно обрабатывать разные размеры экранов и форм-факторы, включая складные устройства и планшеты. Формально это не то чтобы революция. Но теперь за игнорирование адаптивности можно будет заплатить совместимостью.</p><p>Вторая важная новинка — обновленные API камеры. Они должны устранить рывки и пропуски кадров при переключении режимов съемки. Это как раз та категория проблем, которую достаточно сложно показать на презентации, но которая напрямую влияет на пользовательский опыт.</p><p>Также в системе появились визуальные правки интерфейса. Google продолжает постепенно дорабатывать дизайн, не меняя радикально общую концепцию.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2026-02-13/c690325a-75d9-41e1-aa65-c96b3d7425e6.webp" alt="" /></figure><h2>Как установить и когда ждать релиз</h2><p>Участники программы тестирования получат Android 17 Beta 1 автоматически. Тем, кто не хочет устанавливать бета-версию, нужно выйти из программы и дождаться стабильной сборки.</p><p>Финальный релиз Android 17 ожидается во II квартале 2026 года. Судя по первой бете, Google делает ставку не на громкие функции, а на стабильность, производительность и требования к качеству приложений.</p><p>Для экосистемы это может оказаться важнее любой эффектной анимации.</p>]]></content:encoded>
    </item>
    <item>
      <title>UI для ИИ: принципы проектирования пользовательских интерфейсов для ИИ-систем</title>
      <link>https://tproger.ru/articles/ui-dlya-ii--principy-proektirovaniya-polzovatelskih-interfejsov-dlya-ii-sistem</link>
      <comments>https://tproger.ru/articles/ui-dlya-ii--principy-proektirovaniya-polzovatelskih-interfejsov-dlya-ii-sistem?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгения Чистякова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/ui-dlya-ii--principy-proektirovaniya-polzovatelskih-interfejsov-dlya-ii-sistem</guid>
      <description><![CDATA[<p>Евгения Чистякова, ведущий дизайнер интерфейсов в Embedika, про принципы проектирования пользовательских интерфейсов для ИИ-продуктов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/ui-dlya-ii--principy-proektirovaniya-polzovatelskih-interfejsov-dlya-ii-sistem">UI для ИИ: принципы проектирования пользовательских интерфейсов для ИИ-систем</a>»</p>]]></description>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 11 Dec 2025 11:50:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Корпорации инвестируют значительные средства в мощные ИИ-технологии, но сталкиваются с парадоксом: пользователи часто не используют их потенциал из-за сложных или непонятных интерфейсов. В результате даже самая передовая платформа рискует оказаться невостребованной, а инвестиции бизнеса — не окупиться. Ключевая проблема заключается в том, что пользователь взаимодействует не с алгоритмом напрямую, а с интерфейсом, и именно на этом уровне решается, станет ли ИИ надежным помощником или источником фрустрации. В этой статье <i>Евгения Чистякова, ведущий дизайнер интерфейсов в Embedika</i>, разберет принципы проектирования UI, которые помогают преодолеть этот барьер, повысить доверие к системе и сделать сложные алгоритмы доступными как для новичков, так и для опытных специалистов.</p><h2>Пользователь в эпоху AI</h2><p>По данным на 2025 год, 66% пользователей по всему миру уже <a href="https://www.forbes.com/sites/bernardmarr/2025/06/03/mind-blowing-ai-statistics-everyone-must-know-about-now-in-2025/">используют</a> ИИ-технологии. Однако за этим общим показателем скрывается разнообразие как публичных сервисов, так и специализированных корпоративных систем. В бизнес-среде активно внедряются решения на основе машинного обучения (ML) — от интеллектуального поиска по внутренним базам знаний и автоматизации документооборота до предиктивной аналитики. Хотя большие языковые модели (LLM), такие как GPT-5, DeepSeek и ЯндексGPT, привлекают основное внимание, они представляют лишь одно направление развития. Применение ИИ в корпоративном секторе не ограничивается чат-интерфейсами: для анализа процессов и временных рядов используются рекуррентные нейронные сети (RNN), для классификации данных — сверточные сети (CNN), а для генерации контента — диффузионные модели, подобные Stable Diffusion. Это разнообразие ставит перед дизайнерами сложную задачу — создавать универсальные интерфейсы, адаптированные под разные типы моделей и бизнес-задач, и следующие общим правилам и паттернам.</p><p>Это технологическое разнообразие особенно заметно в корпоративной среде, где компании внедряют все более сложные ИИ-системы в свои рабочие процессы. При этом возникает серьезный вызов: хотя сотрудники часто <a href="https://menlovc.com/perspective/2025-the-state-of-consumer-ai/">предпочитают</a> использовать привычные публичные ИИ-помощники, компании осознают риски утечки конфиденциальных данных через такие сервисы. Это стимулирует переход на защищенные корпоративные решения, которые работают внутри ИТ-контура компании и не передают данные в открытый доступ. Однако такие специализированные системы могут иметь более сложный интерфейс, а их внедрение требует обучения персонала. В этой ситуации даже базовые принципы взаимодействия с ИИ могут оказаться неочевидными для пользователей. Именно поэтому продуманный онбординг и интуитивный интерфейс становятся не просто рекомендацией, а критически важным условием успешного внедрения технологий. Они должны быть доступны сотрудникам с самым разным уровнем цифровой подготовки.</p><h2>Принцип 1: ИИ — помощник, а не сотрудник</h2><p>Современная реальность цифрового предприятия — это гибридная модель, где искусственный интеллект выступает не заменой, а <i>ключевым элементом усиления компетенций сотрудника</i>. Как показывают исследования от <a href="https://www.ibm.com/think/insights/ai-and-the-future-of-work">IBM</a>, компании, которые внедряют AI-инструменты для поддержки сотрудников, видят рост продуктивности на 30-50%. Но существуют и риски, связанные с галлюцинациями модели и неправильной оценкой контекста, которые могут привести к генерации правдоподобной, но ложной информации.</p><p>Даже специализированные инструменты не застрахованы от ошибок. Исследование RegLab Стэнфордского университета <a href="https://hai.stanford.edu/news/ai-trial-legal-models-hallucinate-1-out-6-or-more-benchmarking-queries">показало</a>, что специализированные юридические ИИ-инструменты выдавали неверные данные в 1 из 6 сравнительных случаев. Ошибки в профессиональных сервисах могут иметь серьезные последствия — они угрожают как репутации продукта, так и компании, использующей его. Один неверный вывод может привести к судебному иску, штрафу или потере контракта. Например, в 2023 году юридическая фирма <a href="https://www.businessinsider.com/lawyer-apologizes-for-using-chatgpt-for-an-affidavit-2023-5">была оштрафована</a> на 5000 долларов, когда суд выявил, что один из её юристов использовал искусственный интеллект для написания судебного заключения с ложными цитатами.</p><p>Когда система выдаёт ошибочную информацию, доверять ее ответам становится сложно. Для обеспечения прозрачного взаимодействия, без опасений быть введенным в заблуждение, <b>пользователям важно понимать ограничения и недостатки нейросетей.</b> Многие продукты, основанные на генеративном ИИ, лишь незначительно уведомляют об этом в интерфейсе. Например, пользовательский интерфейс ChatGPT информирует пользователей о том, что могут возникать ошибки, только с помощью небольшой вставки мелким шрифтом. Это общее предупреждение, которое легко можно проигнорировать.</p><figure><img src="https://media.tproger.ru/user-uploads/134814/2025-12-03/d2b50f88-4096-4443-9787-7cc6c2e44085.png" alt="" /></figure><p>Ключевым принципом проектирования интерфейсов является возможность<b> проверки сгенерированной информации</b>. Один из способов достижения этой цели — встроить механизм верификации результатов непосредственно в интерфейс.</p><p>Проанализировать достоверность целостного текста <a href="https://ojs.aaai.org/aimagazine/index.php/aimagazine/article/view/511/447">сложнее</a>, когда пользователь не создавал его с нуля самостоятельно. Без понимания того, как модель пришла к тому или иному выводу, проверка превращается в трудоемкий и неэффективный процесс. Решение — сделать рассуждения ИИ прозрачными. Если интерфейс наглядно демонстрирует источники, на основе которых был сгенерирован ответ (в виде ссылок, карточек или списков), пользователи с большей вероятностью проверят информацию. Важны и такие детали, как количество подтверждающих ресурсов и надежность их источников. Например, широко ли распространено утверждение или подтверждается всего одной или двумя ссылками.</p><figure><img src="https://media.tproger.ru/user-uploads/134814/2025-12-03/594fd7d5-7982-46f7-aec5-f1961692872b.png" alt="" /></figure><p>Пользователи склонны слепо доверять авторитетному тону ИИ. В этом случае задача дизайнера — средствами интерфейса вернуть их в состояние «здорового скепсиса» и дать инструменты для быстрой проверки. Система должна не просто выдавать ответ с пометкой «низкий риск», а подсвечивать конкретные пункты договора или другого текста, давать рекомендации по исправлению, ссылаться на внутренние регламенты заказчика и нормы законодательства. Такой подход превращает интерфейс в понятного и надежного помощника.</p><figure><img src="https://media.tproger.ru/user-uploads/134814/2025-12-03/e4926e52-39a3-4e5c-a913-0b86743e8782.png" alt="" /></figure><h2>Принцип 2: Пользователь контролирует результат</h2><p>Одна из самых больших ошибок — представить ИИ всемогущим и лишить пользователя контроля. Важно помнить, что знания ИИ формируются на основе анализа больших объемов данных и выявления в них статистических закономерностей. Модель не понимает информацию в человеческом смысле, а оперирует вероятностями сочетания слов и концепций. Именно поэтому так важно оставлять пользователю право не соглашаться с ответом ИИ или корректировать сгенерированные результаты. Это напрямую укрепляет чувство контроля и доверия к системе.</p><p>Этот принцип становится критически важным в свете распространенной тенденции: четко сформулированные ответы чат-ботов <a href="https://www.nngroup.com/articles/ai-chatbots-discourage-error-checking/">создают</a> иллюзию завершенности и достоверности, из-за чего пользователи часто воспринимают их как окончательный результат. Однако на практике выводы ИИ могут быть неполными, упускать важные нюансы или требовать адаптации под конкретную задачу. Чтобы противостоять этому эффекту, интерфейс должен не только позволять правки, но и визуально подчеркивать, где результат может быть недостаточно точным или требовать ручной доработки. Например, если система анализирует внутренние документы, эффективный UI может выделить фрагменты с низкой уверенностью, показать пропущенные данные или предложить варианты уточнения. Такой подход превращает пользователя из пассивного получателя информации в активного участника, который может точечно корректировать результат и принимать обоснованные решения.</p><p>На практике это достигается за счёт трёх методик. Расскажем подробнее о каждой из них:</p><p><b>Редактируемый вывод: </b>предоставьте простую возможность править сгенерированный текст, изображения или решения. Это особенно важно при работе над сложными задачами, где затрачивается значительное время и усилия. Возможность оперативно вносить правки или отменять действия предотвращает потерю ценных результатов из-за случайной ошибки.</p><figure><img src="https://media.tproger.ru/user-uploads/134814/2025-12-03/b7df528f-ba07-42b5-ab23-4c31636d442b.png" alt="" /></figure><figure><img src="https://media.tproger.ru/user-uploads/134814/2025-12-03/147ae0bc-9917-4d84-bd10-8a9c1c014def.png" alt="" /></figure><p><b>Явное согласие: </b>не подменяйте действия пользователей. Используйте кнопки «Применить», «Вставить», «Заменить» вместо автоматической замены контента. Когда элементы управления соответствуют выполняемым действиям, пользователям легче понять и запомнить, как работает интерфейс, что делает его интуитивно понятным.</p><figure><img src="https://media.tproger.ru/user-uploads/134814/2025-12-03/4f6bff42-303d-4905-9132-9a5ea79fef2a.png" alt="" /></figure><p><b>Процент уверенности:</b> объясняйте уровень уверенности модели в своих ответах. Процент уверенности в цифрах может быть неочевиден — используйте категории: «Высокий», «Средний», «Низкий». Это поможет пользователям понять, на какие фрагменты стоит обратить особое внимание при проверке. Такой подход предотвратит ложное впечатление о точности, если процент неясен.</p><p><b>Предоставляя пользователям контроль, мы напрямую работаем с одним из основных страхов, связанных с ИИ — некорректными или предвзятыми результатами.</b></p><h2>Принцип 3: Делайте невидимое — видимым</h2><p>Ключевая задача — сделать логику работы сложной системы понятной, не перегружая интерфейс техническими деталями. Статус и процессы должны быть интуитивно ясны. Для этого необходимо снизить когнитивную нагрузку, представляя элементы управления и опции в максимально наглядном виде. Идеальный интерфейс не требует запоминания: все необходимые данные, такие как подписи к полям или пункты меню, должны быть сразу видны или доступны в один клик.</p><p><b>Нагляднее всего этот принцип реализуется через несколько ключевых паттернов:</b></p><p><b>1. Индикаторы прогресса (статус системы).</b> Для длительных операций полезно показывать статус, например, «Анализирую запрос...», «Генерирую варианты...». Это управляет ожиданиями и соответствует фундаментальному принципу юзабилити — система должна информировать пользователя о том, что происходит. Без такой обратной связи может быть непонятно, были ли действия обработаны и работает ли система над запросом. Учитывая, что длительное ожидание — обычное явление для сложных приложений, важно предоставлять подробные сведения о происходящем, например, об оставшемся времени или выполненных и предстоящих шагах.</p><figure><img src="https://media.tproger.ru/user-uploads/134814/2025-12-03/70b77ea0-e73e-4ead-9a77-8ebb56f441b3.png" alt="" /></figure><p><b>2. Объяснение ошибок.</b> В случае ошибки вместо простого уведомления о проблеме следует давать рекомендации для дальнейших действий, такие как «Попробуйте переформулировать вопрос» или «Перезапустите диалог». Сообщения об ошибках должны быть сформулированы простым языком и конкретно указывать на проблему, предлагая конструктивное решение. Однако в профессиональных системах, где пользователи обладают соответствующей экспертизой, допустимо дополнять информацию кодом ошибки для технической диагностики. Это упрощает взаимодействие со службой поддержки и глубокий анализ инцидентов.</p><figure><img src="https://media.tproger.ru/user-uploads/134814/2025-12-03/cd159be5-511e-4788-8b82-71c9a8264729.png" alt="" /></figure><p><b>3. Обоснование ответов. </b>В поисковых и аналитических системах стоит добавлять ссылки на источники или короткие пояснения, такие как «Это основано на данных X и Y». Если система выдает противоречивые данные, интерфейс должен визуально выделить расхождения (например, с помощью цветовых маркеров или аннотаций), чтобы пользователь мог легко идентифицировать возможные неточности.</p><figure><img src="https://media.tproger.ru/user-uploads/134814/2025-12-03/cafe6084-165b-48c2-b164-9c8bccb24542.png" alt="" /></figure><p><b>4. Прозрачность ограничений. </b>Пользователи должны заранее получать информацию о типах запросов, с которыми система может не справиться. Например, на странице ввода данных можно разместить пояснение: «Система не может генерировать изображения, выдача только в текстовом формате». Это поможет предотвратить фрустрацию пользователей и повысит их доверие к системе.</p><figure><img src="https://media.tproger.ru/user-uploads/134814/2025-12-03/228f7ecd-fbb9-4463-b52b-bc1eca76ac25.png" alt="" /></figure><h2>Принцип 4: Научите пользователей эффективному взаимодействию с ИИ</h2><p>Пользователи могут не сразу освоить навыки формулирования промптов. Задача дизайна — помочь в освоении эффективной работы с искусственным интеллектом. Хотя сложные приложения традиционно сопровождаются подробной документацией, это не всегда оптимальное решение. Многие не уделяют время изучению обширных руководств перед началом работы, а усвоенный материал бывает сложно вспомнить в нужный момент. Гораздо эффективнее встраивать краткие справки и рекомендации непосредственно в интерфейс системы.</p><p><b>Это может быть представлено через различные элементы интерфейса:</b></p><p><b>1. Примеры промптов. </b>Отображайте примеры различных по сложности запросов прямо в интерфейсе ввода. Это можно сделать в виде плейсхолдера (краткое описание в поле ввода, например «Введите ваше имя») или контекстных подсказок. Такой подход помогает пользователям быстрее освоить эффективные методы работы с системой, демонстрируя на практике, как ставить задачи ИИ для решения конкретных бизнес-вопросов. В отличие от объемных руководств встроенные примеры промптов сразу показывают возможности системы: от базовых запросов до сложных сценариев с использованием специальных функций.</p><figure><img src="https://media.tproger.ru/user-uploads/134814/2025-12-03/9f3bd561-3b4f-40af-bb96-6062c2852834.png" alt="" /></figure><p><b>2. Контекстные подсказки. </b>Предлагайте уточняющие вопросы или варианты донастройки после первичного ответа. При вводе запроса предлагайте автодополнение. Всплывающие подсказки могут отображать актуальную информацию, связанную с задачей пользователя, и появляться, когда курсор находится рядом с соответствующими элементами управления или когда пользователь начинает выполнять определённые действия.</p><figure><img src="https://media.tproger.ru/user-uploads/134814/2025-12-03/551370f1-8872-474b-9e05-c0782502b65e.png" alt="" /></figure><p><b>3. Снижение когнитивной нагрузки. </b>Основные функции должны быть легкодоступны. Продвинутые настройки, которыми пользуются реже, можно спрятать под кнопкой «Дополнительно». Постепенное раскрытие информации, при котором пользователю показываются только те параметры, которые актуальны для текущей задачи, помогает уменьшить визуальный шум.</p><figure><img src="https://media.tproger.ru/user-uploads/134814/2025-12-03/dd2328c6-e8ab-43e8-bfcb-f3e816187e91.png" alt="" /></figure><h2>Заключение</h2><p>Проектирование интерфейса для взаимодействия с ИИ — это, в первую очередь, задача по созданию доверия между человеком и машиной. Основные элементы этого процесса включают:</p><ol><li><b>Контроль: </b>пользователь всегда остается главным. Эффективные интерфейсы предоставляют возможность редактирования, явного согласия на действия и демонстрации уверенности модели, что усиливает чувство контроля у пользователя.</li><li><b>Прозрачность: </b>ИИ объясняет свои действия и показывает статус. Пользователи должны быть проинформированы о логике работы системы, получать обратную связь о ходе выполнения задач и иметь доступ к источникам информации, что способствует лучшему пониманию и уменьшает страх перед ошибками.</li><li><b>Обучение:</b> помогайте пользователю работать эффективнее, интегрируя подсказки непосредственно в рабочий процесс. Упрощенные примеры промптов и контекстные рекомендации делают взаимодействие интуитивным, снижают когнитивную нагрузку и ускоряют освоение системы.</li></ol><p>Следование этим принципам в сочетании с данными пользовательских исследований позволяет создавать интерфейсы, которые становятся надежными партнерами. Качественный UX/UI у<i>меньшает страх и недоверие, дает чувство контроля и превращает сложные алгоритмы в понятный инструмент</i>, вне зависимости от уровня подготовки пользователя.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как решать любые задачи распознавания в миниаппах</title>
      <link>https://tproger.ru/articles/kak-rewat-lyubye-zadachi-raspoznavaniya-v-miniappah</link>
      <comments>https://tproger.ru/articles/kak-rewat-lyubye-zadachi-raspoznavaniya-v-miniappah?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Smart Engines]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-rewat-lyubye-zadachi-raspoznavaniya-v-miniappah</guid>
      <description><![CDATA[<p>Рассказываем, как быстро интегрировать технологии распознавания (OCR) в мессенджеры. Сканирование паспорта и других документов в miniapp</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-rewat-lyubye-zadachi-raspoznavaniya-v-miniappah">Как решать любые задачи распознавания в миниаппах</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 24 Nov 2025 09:20:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Всем привет! Как вы уже знаете, мы в <a href="https://smartengines.ru/">Smart Engines</a> вот уже десять лет занимаемся разработкой высокоточных технологий распознавания паспортов и других документов. За это время наша команда перенесла возможности компьютерного зрения практически на все существующие платформы и операционные системы. В последнее время мы наблюдаем всплеск интереса к мини-приложениям в Telegram, Max и других известных мессенджерах. Сегодня рассказываем, как и зачем мы перенесли наш ИИ в миниаппы.</p><h2>В чем секрет привлекательности миниаппов</h2><p>Миниаппы (мини-приложения) – это встроенные в мессенджер веб-приложения, которые позволят воспользоваться тем или иным сервисом без установки отдельных программ. Миниаппы дают возможность пользователям взаимодействовать с цифровыми продуктами, совершать покупки или играть в игры, не покидая интерфейса мессенджера. Такие приложения интегрируются с экосистемой мессенджера, используя его API для авторизации, платежей и уведомлений.</p><p>Популярность миниаппов нетрудно объяснить. Во-первых, это просто удобно: пользователь мгновенно преодолевает путь до услуги или инструмента. Во-вторых, мини-приложения крайне просты в интеграции и подходят для внедрения сервисов, маркетплейсов и других востребованных платформ. В-третьих, разработка миниаппов значительно проще и дешевле, чем создание и дистрибуция классических нативных приложений. Наконец, многие мессенджеры уже имеют встроенные механизмы платежей или поддерживают их через сторонние системы. В результате от использования миниаппов выигрывает и бизнес, и разработчик, и эндюзер.</p><p>Что будущее за интернетом, мы поняли еще несколько лет назад – и сразу адаптировали наши системы для веб-среды. Сделать это нам удалось благодаря технологии WebAssembly (Wasm), с помощью которой можно создавать прогрессивные веб-приложения (PWA). Уже в 2021 году мы смогли добиться видимых результатов: <a href="https://smartengines.ru/smart-idreader/">распознавание паспорта РФ</a>, распознавание документов и QR-кодов, а также сверка лиц стали доступны непосредственно в браузере. Притом все вычисления происходят непосредственно на пользовательском устройстве, а для распознавания не требуется GPU.</p><figure><img src="https://media.tproger.ru/user-uploads/110363/2025-11-21/0943bec6-a805-42de-a2ec-604e83753a09.gif" alt="" /><figcaption>Распознавание паспорта РФ в браузере с помощью Smart ID Engine</figcaption></figure><p>Эти возможности сразу оценили в банках – когда после удаления их приложений из сторов возникла необходимость перенести привычный пользовательский функционал в интернет.</p><h2>Как использовать технологии распознавания в вебе</h2><p>Сегодня наши решения на базе WebAssembly применяются во многих ключевых пользовательских сценариях. Для иллюстрации назовем некоторые из них.</p><ul><li><b>Цифровой онбординг</b>. Распознавание паспорта сегодня позволяет осуществлять онбординг и проверки KYC прямо через браузер. Чтобы открыть счет, оформить продукт или подключить услугу, клиенту нужно просто просканировать документ, или загрузить его изображение из галереи. Благодаря этому отпала необходимость личного посещения офисов или отделений и стало возможно получить доступ к сервисам в любое удобное время. Наша система работает и с паспортами СНГ, мы <a href="https://tproger.ru/articles/kak-vstroit-raspoznavanie-pasporta-sng-v-brauzer">рассказывали</a> об этом <a href="https://tproger.ru/articles/kak-vstroit-raspoznavanie-pasporta-rf-v-brauzer">тут</a>.</li><li><b>Платежи и переводы</b>. Благодаря автоматическому распознаванию стало возможно реализовать ежедневные платежи в онлайн-банках. Пользователь наводит камеру мобильника на QR, номер телефона или квитанцию и может моментально совершить оплату или перевод. Система уверенно работает даже в “экстремальных” случаях: когда треть QR-кода перекрыта или он находится на расстоянии или под углом. Здесь мы <a href="https://tproger.ru/articles/raspoznavanie-bankovskoj-karty-v-brauzere--kak-s-pomoshhyu-tehnologii-webassembly-integrirovat-raspoznavanie-v-veb-stranicu">рассказывали</a>, как в вебе реализовать распознавание банковской карты.</li></ul><ul><li><b>Сервисы бухгалтерии.</b> Сегодня большой популярностью пользуются сервисы аутсорсинга бухгалтерии для обслуживания юридических лиц. В особенности эта возможность полезна для малого бизнеса и индивидуальных предпринимателей – там, где для работы с документами просто нет штатного сотрудника. <a href="https://smartengines.ru/intelligent-document-recognition/">Распознавание документов</a> (акты, УПД, счета-фактуры, формы ТОРГ-12, накладные и другие) позволяет решать задачи ввода и структуризации данных прямо в браузере. Быстро и удобно.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/110363/2025-11-21/56568e26-7d69-450e-97b4-d8a66d6f9e39.gif" alt="" /><figcaption>Распознавание банковской карточки в вебе с помощью Smart Code Engine</figcaption></figure><p>Благодаря возможностям Wasm эту функциональность можно легко перенести и в мессенджер. Некоторые наши клиенты так и поступили. Например, ВТБ уже <a href="https://www.kommersant.ru/doc/7975432">запустил</a> оплату по QR в мессенджере MAX. Говорят, что работает даже на парковке (наша распознавалка уж точно – интернет для этого не требуется).</p><h2>Как это реализовать</h2><p>Перейдем от теории к практике. Как мы писали выше, добавить распознавание в мини-приложения мессенджеров нам удалось благодаря технологии WebAssembly.</p><p>Наш основной продукт – библиотека компьютерного зрения. Поскольку она написана на С++, для переноса кодовой базы в браузер мы используем инструмент emscripten, поддерживаемый google. На выходе мы получаем wasm файл и js файл для работы с ним. Добавляем бизнес логику и распознавание, например, банковской карты реализуется вот так:</p><p>В браузере для захвата изображений с камеры необходимо сначала отрисовать видеопоток на canvas, аналогичным образом клиент может  отрисовывать на canvas  PDF и HEIC, если вам необходимо распознавания фотографии или документа из галереи, например.</p><p>Код выше показывает работу распознавания одного изображения, но если вы в цикле будете передавать изображения с камеры и дальше в spawnedSession.Process(image), то воспользуетесь преимуществами распознавания документов в видеопотоке. <b>Кстати, мы недавно получили на это  патент США</b>.</p><p>Для распознавания в браузере паспорта РФ, реализация очень похожа.</p><p>Указываем режим распознавания и маску документа. Можно указать маску звездочкой “*”, а режим “anydoc”, тогда поиск будет осуществляться по всем доступным документам.</p><p>Следующая настройка позволяет вернуть в результате изображение документа, исправленное по перспективе (утюг) и обрезанным по пропорциям физического документа.</p><p>Результат распознавания представляет из себя объект с именованными полями документа и его изображения (лицо, подпись, шаблон документа). Мы не ограничиваем в структуре ответа, поэтому вы можете сформировать для себя ответ в json в любом удобном виде: с картинками или без, с метаданными, с коэффициентами уверенности и т.п.</p><h2>Напоследок</h2><p>Как можно убедиться, интеграция систем <a href="https://smartengines.ru">Smart Engines</a> в миниаппы осуществляется быстро и абсолютно безболезненно. Гибкость наших технологий позволяет решать любые задачи распознавания хоть в Telegram, хоть в MAX, хоть в любом другом мессенджере с возможностью создания мини-приложений.</p><p>Скорость и качество работы технологий распознавания паспорта и других документов, а также кодифицированных объектов в веб-среде сопоставима с нативными библиотеками. Охват широкой аудитории мессенджеров и положительный пользовательский опыт обеспечены. Smart Engines – распознаем даже на парковке!</p>]]></content:encoded>
    </item>
    <item>
      <title>От «считаем пиксели» к реальной эффективности: как сделать работу дизайнеров прозрачной для руководства</title>
      <link>https://tproger.ru/articles/ot--schitaem-pikseli--do-realnoj-effektivnosti--kak-sdelat-rabotu-dizajnerov-prozrachnoj-dlya-rukovodstva</link>
      <comments>https://tproger.ru/articles/ot--schitaem-pikseli--do-realnoj-effektivnosti--kak-sdelat-rabotu-dizajnerov-prozrachnoj-dlya-rukovodstva?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Анна Труфанова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/ot--schitaem-pikseli--do-realnoj-effektivnosti--kak-sdelat-rabotu-dizajnerov-prozrachnoj-dlya-rukovodstva</guid>
      <description><![CDATA[<p>Дизайн-проекты слишком разные: где-то речь идет о сложных интерфейсах, а где-то о быстрых визуалах для лендингов. Как такую работу оцифровать и при этом не убить мотивацию?</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/ot--schitaem-pikseli--do-realnoj-effektivnosti--kak-sdelat-rabotu-dizajnerov-prozrachnoj-dlya-rukovodstva">От «считаем пиксели» к реальной эффективности: как сделать работу дизайнеров прозрачной для руководства</a>»</p>]]></description>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Веб-дизайн]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 29 Oct 2025 12:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p><i>Проблема в том, что дизайн-проекты слишком разные: где-то речь идет о сложных интерфейсах, а где-то о быстрых визуалах для лендингов. Как такую работу оцифровать и при этом не убить мотивацию? </i></p><p><i>Меня зовут Анна Труфанова, я Head of Design в НЛМК ИТ. Сегодня я расскажу, как нам удалось измерить эффективность преимущественно творческой работы.</i></p><h2>Первые сомнения</h2><p>Главная сложность с измерением продуктивности команды дизайнеров заключалась в том, что сотрудники выполняют задачи разного масштаба и профиля. Сравнить разработку промышленного интерфейса и, например, создание баннера для сайта практически невозможно: затраты времени и экспертизы несопоставимы.</p><p>Кроме того, у команды возник скепсис. Идея «оцифровать творчество» воспринималась как сигнал о недоверии. Дизайнеры опасались, что будут выглядеть бездельниками, если значительная часть времени уйдёт на поиск референсов, генерацию идей или долгие обсуждения — процессы, которые не всегда дают мгновенный осязаемый результат, но напрямую влияют на качество конечного продукта.</p><p>Наконец, первые варианты реализации задачи оказались нереалистичными. Предложения вроде анализа всех Jira-тасков и выявления закономерностей требовали бы месяцев ручной работы, параллельно с текущими проектами. Объем накопившихся данных делал задачу почти невыполнимой: только по одному направлению за год появлялось больше сотни новых задач, а таких направлений в компании десятки.</p><h2>Поиск решения</h2><p>Я начала с того, чтобы выгрузить все задачи команды за прошлый месяц из Jira в Excel и собрать их в группы по смыслу: задачи по баннерам и креативам в одну группу, «элементы дизайн-системы» — в другую, макеты ― в третью, «тестирование гипотез» ― в четвертую и так далее.</p><p>Уже через четыре часа перед глазами была система из восьми категорий.</p><p>В итоге письмо с готовым предложением по замеру эффективности ушло IT-директору: кроме категорий задач и объема времени, на них затраченного, в таблице было поле для артефактов — теоретически дизайнеры могут ориентироваться на число макетов, как программисты поступают со строками написанного кода.</p><p>Но это все еще выглядело слишком абстрактно: например, один дизайнер в пересчете на 24 часа провел ревью 194 макетов, второй создал 39 новых, третий отрисовал почти 150 графиков. Что делать с этими цифрами?</p><figure><img src="https://media.tproger.ru/user-uploads/134079/2025-10-27/aa51f069-40ce-4a79-8bcf-b8be716aacdb.png" alt="" /></figure><p>Через некоторое время «пазл сложился»: число артефактов влияет на затраченное время. Так решилась проблема с тем, что у каждого дизайнера в команде свой профиль. Для этого заложили в оценку все форматы работ ― и матрица стала универсальной.</p><figure><img src="https://media.tproger.ru/user-uploads/134079/2025-10-27/3bfa1632-ce85-4046-b60f-086b37c74237.png" alt="" /></figure><p>Как только методологию согласовали, мы с командой сели и подробно, в деталях, описали каждый вид работ. Оценки обосновали реальной практикой, а кроме того, избавились от размытых категорий вроде «поиска референсов» ― всё это уже учтено в работе. Изначально казалось, что на такую систему уйдут месяцы, а она появилась меньше чем за неделю.</p><figure><img src="https://media.tproger.ru/user-uploads/134079/2025-10-28/59995a95-454d-4d78-9a5d-b3b30d04bb4b.jpg" alt="" /></figure><h2>Как все выглядит на практике</h2><p>Первое, что изменилось в нашем подходе, — мы стали измерять трудоемкость задач, а не ушедшее на них время. Механика такая:</p><ul><li>в каждой задаче появляется метка с категорией активности — допустим, «Корректировка_макетов»;</li><li>когда задача берется в работу, мы сразу прикидываем ее масштаб по нашей шкале — от «Small» до «Large».</li></ul><figure><img src="https://media.tproger.ru/user-uploads/134079/2025-10-28/c8fd1d5f-7c5e-4166-b19e-a5069c2ebd0a.jpg" alt="" /></figure><p>Большой плюс — дизайнеру теперь не приходится засекать время на подбор цветовой схемы. От него требуется лишь качественно закрыть задачу из текущего спринта.</p><p>А вот дальше начинается волшебство. Когда у нас накапливается информация формата «кто + что делал + сколько времени», складывается полноценная картина происходящего.</p><p>У нас в компании работает собственная AI-платформа (там и внешние модели, и свои нейросети). Мы скармливаем ей выгрузку в Excel из Jira за месяц, применяем нужные фильтры — и получаем аналитику под любой запрос.</p><p><i>! Важный момент: в расчет идут только задачи с проставленными метками, без учета отпусков и больничных.</i></p><figure><img src="https://media.tproger.ru/user-uploads/134079/2025-10-28/2f94631f-eabf-441a-a5e0-8745bb6aad58.jpg" alt="" /></figure><figure><img src="https://media.tproger.ru/user-uploads/134079/2025-10-28/bc048652-8004-4ac3-83c4-c59f3f35a978.jpg" alt="" /></figure><figure><img src="https://media.tproger.ru/user-uploads/134079/2025-10-28/9c091127-eb6c-4101-a2e7-e2d35ea7e097.jpg" alt="" /></figure><p>Например, мы видим, что один дизайнер почти все время (97%) посвятил отрисовке и правкам макетов. У второго 87% ушло на доработки. Третий занимался созданием нового (63%) и ревью чужих работ (25%).</p><h2>Портрет среднестатистического дизайнера</h2><p>Когда мы посмотрели на данные за месяц по всей команде, получилась интересная статистика.</p><ul><li><b>Больше всего времени уходит на правки.</b> Около 47% рабочего времени команда тратит на корректировку уже существующих макетов. Это самая объемная часть работы — что логично, учитывая количество итераций и согласований.</li><li><b>На втором месте — создание с нуля.</b> 39% времени дизайнеры работают над новыми макетами. Тут и исследование, и референсы, и первые наброски.</li><li><b>Ревью занимает значимую долю.</b> На проверку качества реализации чужих работ уходит 14% времени. Казалось бы, немного, но на практике это показывает, что мы серьезно относимся к контролю качества и взаимопомощи внутри команды.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/134079/2025-10-28/921189ff-003f-4396-91db-0d8ac9f3ece0.jpg" alt="" /></figure><p>Теперь можно копать глубже и считать среднюю производительность по каждой категории (делим часы на число задач с определенной меткой). Так становится видно, какие задачи для конкретного человека идут легко, а где он «буксует». Это дает понимание того, кому какие задачи лучше отдавать и в каких компетенциях дизайнерам стоит прокачаться.</p><figure><img src="https://media.tproger.ru/user-uploads/134079/2025-10-28/2bab4a9f-daa3-4641-b231-447f56fe3496.jpg" alt="" /></figure><p>Стоит отметить, что похожая система уже работает у других отделов. Разработчики через этот AI-инструмент генерируют и проверяют код, аналитики гоняют через него данные, продакты формулируют требования и тестируют гипотезы.</p><p>Главный плюс нашей платформы, в отличие от публичных AI-сервисов, — она интегрирована в рабочие процессы компании, данные не утекают наружу, и она экономит время от придумывания идеи до запуска фичи в продакшн.</p><p>У дизайнеров теперь такие же возможности: измерять свою работу и находить пространство для улучшения процессов.</p><h2>Цифры вместо эмоций</h2><p>Раньше разговоры о сроках с руководителями проектов выглядели так:</p><p>— Почему вы планируете потратить на эту задачу три дня? Это долго!</p><p>— Невозможно спрогнозировать, сколько времени уйдет на поиск оптимального решения.</p><p>Такие диалоги ни к чему не приводили.</p><figure><img src="https://media.tproger.ru/user-uploads/134079/2025-10-28/e81e9597-f4b1-4ba7-8e16-2609f48badb3.jpg" alt="" /></figure><p>Теперь все изменилось, и мы можем дать ответ по существу: «Эта задача относится к категории L по доработке макетов, средний показатель команды — 8 часов на такую задачу, у меня ушло 7,5 часов — все в пределах нормы».</p><h2>Итоги</h2><p>У дизайнеров появилась система для аргументации своей загруженности. Теперь разговор с бизнесом идет на понятном им языке и ценность нашей работы видна не только нам.</p><p>Что будем делать с этим дальше? Отслеживать, как именно ИИ влияет на скорость нашей работы и какие задачи он реально ускоряет. Но об этом я расскажу в следующий раз.</p>]]></content:encoded>
    </item>
    <item>
      <title>Какие приложения установить на Windows и macOS</title>
      <link>https://tproger.ru/articles/kakie-prilozheniya-ustanovit-na-windows-i-macos</link>
      <comments>https://tproger.ru/articles/kakie-prilozheniya-ustanovit-na-windows-i-macos?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Валерия Турчак]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kakie-prilozheniya-ustanovit-na-windows-i-macos</guid>
      <description><![CDATA[<p>Список разбит по категориям: от браузеров и гейминга до утилит безопасности и инструментов для продуктивности.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kakie-prilozheniya-ustanovit-na-windows-i-macos">Какие приложения установить на Windows и macOS</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[.NET]]></category>
      <category><![CDATA[Браузеры]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Slack]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[Windows 10]]></category>
      <category><![CDATA[Google Chrome]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Управление проектами]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[VPN]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[Xbox]]></category>
      <category><![CDATA[GitLab]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[macOS]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Intel]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Adobe]]></category>
      <category><![CDATA[Firefox]]></category>
      <category><![CDATA[IBM]]></category>
      <category><![CDATA[Mozilla]]></category>
      <category><![CDATA[Avast]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[NVIDIA]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[AMD]]></category>
      <category><![CDATA[YouTube]]></category>
      <category><![CDATA[Epic Games]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Бета]]></category>
      <category><![CDATA[Safari]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[PlayStation]]></category>
      <category><![CDATA[Microsoft Edge]]></category>
      <category><![CDATA[Discord]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[RPA]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Figma]]></category>
      <category><![CDATA[Графы]]></category>
      <category><![CDATA[Markdown]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Notion]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Steam]]></category>
      <category><![CDATA[GPU]]></category>
      <category><![CDATA[Hardware]]></category>
      <category><![CDATA[iPhone]]></category>
      <category><![CDATA[MacBook]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 26 Oct 2025 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Итак, вы только что настроили новый компьютер. Операционная система установлена, драйверы обновлены, и теперь пора заняться самым интересным — установкой программ. Но с чего начать? Какие приложения действительно необходимы, а какие просто занимают место?</p><p>Редакция Tproger сделала и адаптировала <a href="https://www.techspot.com/article/2974-desktop-software-essentials/">перевод подборки  программ для Windows и macOS</a>. Здесь вы найдёте проверенные временем решения для работы, развлечений и повседневных задач. Мы сосредоточились на бесплатных и условно-бесплатных приложениях с отличной репутацией, которые решают реальные задачи без навязывания ненужных функций.</p><p>Список разбит по категориям: от браузеров и гейминга до утилит безопасности и инструментов для продуктивности.</p><p>Неважно, опытный вы пользователь или новичок — здесь найдётся что-то полезное для каждого.</p><h2>Браузеры</h2><p>Браузер — это, пожалуй, самое важное приложение на вашем компьютере. Именно через него проходит большая часть вашей цифровой жизни: работа, развлечения, коммуникации. Выбор браузера влияет не только на скорость загрузки страниц, но и на конфиденциальность, безопасность и удобство работы.</p><ul><li><b>Большинство пользователей:</b> Chrome, Edge или Safari</li><li><b>Защита приватности: </b>Firefox, Brave, Ungoogled Chromium</li><li><b>Опытные пользователи:</b> Vivaldi</li><li><b>Максимальная анонимность: </b>Tor Browser</li></ul><h3>Google Chrome</h3><p>Chrome остаётся самым популярным браузером в мире — и не просто так. Он быстрый, стабильный и отлично интегрируется с экосистемой Google. Огромная библиотека расширений из Chrome Web Store позволяет настроить браузер под любые задачи. Синхронизация между устройствами работает безупречно: вкладки, пароли, закладки и история всегда под рукой.</p><p>Минус один, но существенный: Chrome прожорлив. Если у вас открыто больше десятка вкладок, он может съесть несколько гигабайт оперативной памяти. На компьютерах с 8 ГБ RAM и меньше это становится проблемой.</p><h3>Mozilla Firefox</h3><p>Firefox — это выбор тех, кто ценит приватность и открытость. Mozilla не зарабатывает на продаже ваших данных, а сам браузер активно развивается сообществом. Встроенные инструменты защиты от трекинга работают из коробки, блокируя рекламные сети и скрипты слежения.</p><p>По скорости Firefox не уступает Chrome, а по потреблению памяти даже выигрывает. Библиотека расширений чуть меньше, чем у Chrome, но все основные инструменты доступны.</p><h3>Microsoft Edge</h3><p>Edge построен на том же движке Chromium, что и Chrome, но при этом лучше оптимизирован для Windows. Microsoft вложилась в производительность: браузер работает быстро, потребляет меньше ресурсов и отлично интегрируется с системой.</p><p>Особенно приятны функции вроде Collections (коллекции вкладок для организации исследований), режим чтения и встроенный скриншотер. Edge поддерживает все расширения Chrome, так что переход безболезненный.</p><h3>Brave</h3><p>Brave — это Chrome на стероидах приватности. Браузер блокирует рекламу и трекеры по умолчанию, что делает сёрфинг быстрее и безопаснее. При этом он полностью совместим с расширениями Chrome.</p><p>Есть интересная фишка: Brave Rewards позволяет зарабатывать криптовалюту за просмотр приватной рекламы (если захотите её включить). Спорная механика, но как опция — почему нет. Для тех, кто хочет Chrome без Google и с упором на приватность, Brave — отличный выбор.</p><h3>Safari (только macOS)</h3><p>Если у вас Mac, Safari заслуживает внимания. Это самый энергоэффективный браузер для macOS: на MacBook он даёт ощутимо больше автономности по сравнению с Chrome или Firefox. Интеграция с экосистемой Apple безупречна: Handoff, синхронизация через iCloud, Reading List, автозаполнение паролей.</p><p>Safari быстрый, безопасный и не перегружен функциями. Единственный минус — библиотека расширений заметно скромнее, чем у конкурентов. Но для большинства задач базового функционала хватает.</p><h3>Ungoogled Chromium</h3><p>Для ультраосторожных Ungoogled Chromium удаляет всё отслеживание и сервисы Google — но вам придётся настраивать всё самостоятельно, так как в нём нет автообновлений или встроенной синхронизации.</p><p>Для максимально осторожных пользователей — это Chrome, из которого убрали всю телеметрию Google, отслеживание и облачные сервисы. Браузер работает, но требует ручной настройки: отсутствуют автоматические обновления и встроенная синхронизация между устройствами.</p><h3>Tor Browser</h3><p>Выводя приватность на следующий уровень, Tor Browser маршрутизирует ваш трафик через сеть Tor, анонимизируя ваш IP и многократно шифруя соединение. Он медленнее по задумке, но идеален, если ваш приоритет — максимальная анонимность, а не скорость или удобство.</p><h3>Vivaldi</h3><p>Vivaldi — браузер мечты для тех, кто хочет полного контроля. Стекирование вкладок, тайлинг, кастомные горячие клавиши, встроенная почта и календарь, веб-панели — это полноценный десктопный опыт внутри браузера. Хотите боковую панель браузера, открывающую ваши заметки, RSS-ленты или любой нужный сайт? Vivaldi это умеет.</p><h3>Arc</h3><p>Наконец, Arc — когда-то новичок на рынке браузеров, нацеленный на переосмысление UX: замена традиционной панели вкладок на боковую панель, акцент на веб-приложениях, интегрированные разделённые виды и easels для заметок и доски. К сожалению, компания за Arc прекратила разработку, чтобы полностью переключиться на ИИ с новым браузером, который сейчас в закрытой бета-версии.</p><h2>Управление паролями</h2><ul><li><b>Лучший бесплатный выбор:</b> Bitwarden</li><li><b>Также отлично:</b> 1Password, Dashlane, KeePass</li></ul><p>Миллионы людей продолжают использовать одни и те же слабые пароли на всех сайтах — или, что ещё хуже, держатся за классику вроде «123456». Даже сильные пароли мало помогают, если их повторяют или забывают. Конечно, большинство браузеров предлагают встроенные менеджеры паролей, но они ограничены, привязаны к одному браузеру и менее безопасны, чем специализированные решения.</p><p>Также не будем забывать о passkeys (ключах доступа). Если говорить практически, можно сказать, что passkeys объединяют концепцию пароля и двухфакторной аутентификации (2FA) в одно плавное действие, но гораздо безопаснее и гораздо менее раздражающе.</p><h3>Bitwarden</h3><p>Полностью опенсорсный, зашифрованный и щедрый даже в бесплатной версии. Вы получаете неограниченное количество паролей, синхронизацию между устройствами и приложения для всех платформ. Премиум ($10/год) добавляет безопасный обмен файлами и инструменты 2FA. Также есть доступные семейные и командные планы.</p><h3>1Password</h3><p>Премиум-решение с отполированным интерфейсом, сильной кроссплатформенной поддержкой и отличными функциями вроде Travel Mode (режим путешествий) и полной интеграцией passkeys.</p><h3>Dashlane</h3><p>Предлагает мониторинг даркнета, интеграцию VPN и плавный пользовательский опыт. Есть бесплатный тариф с ограниченными функциями, но премиум-версия конкурентоспособна.</p><h3>KeePassXC</h3><p>Отличная оффлайн-альтернатива, если хотите полного контроля и не против ручной синхронизации (или использования чего-то вроде Syncthing или Dropbox для синхронизации базы данных).</p><p>Пропустите LastPass — когда-то фаворит, он упал в немилость после повторных утечек безопасности. Для душевного спокойствия лучше поискать в другом месте.</p><h2>Продвинутые утилиты и дополнения к ОС</h2><ul><li><b>Поиск + лаунчеры:</b> Everything или Wox (Windows), Alfred или Raycast (macOS)</li><li><b>Пакетные менеджеры: </b>WinGet, Homebrew (macOS)</li><li><b>Для пользователей Windows:</b> PowerToys</li><li><b>Для пользователей Mac: </b>Rectangle</li><li><b>История буфера обмена: </b>ClipClip, Flycut (macOS)</li><li><b>Скриншоты + аннотации: </b>Monosnap</li></ul><h3>Winget</h3><p><b></b>Официальный менеджер пакетов Microsoft, встроенный в Windows 10 и 11. Работает похоже на Chocolatey, но разработан и поддерживается Microsoft. Homebrew — самый популярный менеджер пакетов для macOS. Позволяет быстро устанавливать, обновлять и управлять приложениями и CLI-инструментами с помощью команд в терминале.</p><h3>Everything</h3><p>Что касается поиска, Everything остаётся золотым стандартом сверхбыстрого поиска по именам файлов в Windows. Он индексирует диски за секунды и выдаёт почти мгновенные результаты с минимальной нагрузкой на систему. Если нужен функционал шире базового поиска, Wox использует движок Everything и добавляет мощные возможности лаунчера: поиск файлов, запуск приложений, калькулятор, перевод текста и расширения через плагины. Получается более гибкий опыт в духе Spotlight для Windows.</p><h3>Command Palette/Alfred/Raycast</h3><p>В который раз Microsoft не смогла существенно улучшить встроенный поиск Windows, хотя <b>Command Palette</b> в PowerToys даёт неплохой компромисс для тех, кто не хочет ставить сторонние утилиты.</p><p>На macOS <b>Alfred</b> по-прежнему главный лаунчер и утилита поиска. Он быстрый, интуитивный и в бесплатной версии включает историю буфера и настраиваемые поиски; расширенная автоматизация и «воркфлоу» доступны в Powerpack.</p><p>Тем, кто хочет современную облачно-интегрированную альтернативу с готовыми расширениями и встроенной поддержкой Notion, GitHub и Slack, стоит присмотреться к <b>Raycast</b> — это стильный, дружественный к разработчикам вариант, который стремительно набирает популярность.</p><h3>Менеджеры буфера обмена</h3><p>Они позволяют возвращаться к ранее скопированному — тексту, изображениям, ссылкам — и сильно ускоряют рутинные операции.</p><p>В Windows встроенная история буфера (Win + V) кое-как выручает, но продвинутым пользователям обычно хочется большего. В числе бесплатных рекомендаций — <b>ClipClip</b> для Windows и <b>Flycut</b> для macOS.</p><p>Когда речь о скриншотах и аннотациях, штатные инструменты macOS и Windows заметно выросли. Но многим всё равно удобнее сторонние решения. Нам по-прежнему нравится <b>Monosnap</b> за простоту и возможность мгновенно заливать снимки в облако для шаринга (и это бесплатно).</p><p><b>PowerToys</b> — набор полезных утилит от Microsoft для продвинутых пользователей Windows, повышающих продуктивность и упрощающих рабочие процессы. Среди инструментов: FancyZones для продвинутого раскладывания окон, PowerRename для пакетного переименования, Keyboard Manager для ремапинга клавиш, универсальный color picker и другие.</p><p><b>Rectangle</b> и <b>Magnet </b>— два самых популярных приложения на macOS для закрепления окон: быстрые выравнивание и ресайз по хоткеям или перетаскиванием, примерно как по умолчанию в Windows. Пользователям, пришедшим с Windows и скучающим по системному снапингу, одно из них жизненно необходимо.</p><p>Широко используемая альтернатива в Windows — <b>FancyZones</b> (часть PowerToys), предлагающая продвинутое управление окнами: настраиваемые сетки, зоны привязки и поддержку нескольких мониторов — поэтому это фаворит пауэр-пользователей на Windows.</p><h2>Для рутины и создания проектов</h2><ul><li><b>Бесплатные инструменты: </b>FreeOffice, LibreOffice и WPS Office</li><li>Microsoft Office за единовременную плату $49, Office 2024 — $129</li><li><b>Заметки: </b>Notion, OneNote, Obsidian</li><li><b>Бесплатный PDF-редактор: </b>PDFsam</li><li><b>Почтовые клиенты:</b> Thunderbird, eM Client</li></ul><p>Независимо от того, пишете ли вы тексты, планируете проект, кодите или наводите порядок в цифровой жизни, правильные инструменты решают многое. Сегодня выбор топовых приложений для продуктивности и разработки — часто бесплатных — лучше, чем когда-либо.</p><p><b>Microsoft Office</b> остаётся отраслевым стандартом для профессиональной продуктивности. Подписка Microsoft 365 открывает доступ к Word, Excel, PowerPoint, Outlook и включает 1 ТБ облачного хранилища.</p><p>Среди бесплатных альтернатив LibreOffice — мощный open-source комплект с сильным сообществом (хотя интерфейс некоторым кажется старомодным). Если нужна внешне более майкрософтовская альтернатива, попробуйте<b> FreeOffice </b>или <b>WPS Office Free</b> — у них хорошая совместимость.</p><p>На macOS <b>Pages</b>, <b>Numbers</b> и <b>Keynote</b> предустановлены и более чем достаточны для большинства задач, особенно если вы в экосистеме Apple.</p><h3>Знания и ведение заметок</h3><p><b>Notion</b> стал универсальной платформой организации: заметки, базы данных, to-do, управление проектами, создания совместных рабочих пространств. Если нужны более локальные заметки с синхронизацией между устройствами и поддержкой Markdown, <b>Obsidian</b> — любимец студентов и исследователей.</p><p>Для быстрых кроссплатформенных заметок <b>OneNote</b> — крепкий бесплатный вариант от Microsoft. В качестве альтернатив — <b>Simplenote</b> или open-source <b>Joplin</b>.</p><p>Если вы занимаетесь академической работой и научными статьями, <b>Zotero</b> — отличный open-source менеджер источников с интеграцией в браузер и совместными коллекциями. <b>Milanote</b> предлагает визуальный подход к заметкам и планированию — идеально для креативных пользователей.</p><h3>Работа с PDF</h3><p>Хотя Adobe Acrobat остаётся премиальным редактором PDF, бесплатные альтернативы вроде <b>PDFsam</b> позволяют без усилий объединять, разбивать, редактировать и поворачивать страницы.</p><h2>Инструменты для дизайна и создания контента</h2><p>Для дизайна два выделяющихся приложения хорошо дополняют набор продуктивности. <b>Figma Desktop</b> — совместная платформа интерфейс-дизайна, широко используемая UI/UX-дизайнерами и фронтенд-разработчиками. Десктоп-версия работает быстрее, чем браузер, и лучше интегрируется с ОС — это удобно для сложных дизайн-систем и коллаборации в реальном времени.</p><p><b>Canva</b> с интуитивным drag-and-drop превосходно чувствует себя и как десктоп-приложение. Отлично подходит для быстрых графических материалов для соцсетей, маркетинга, постеров и презентаций. Благодаря тысячам шаблонов и совместной работе это фаворит как у профи, так и у новичков.</p><h2>Почтовые клиенты</h2><p>Если вы предпочитаете отдельный почтовый клиент, у <b>eM Client</b> много функций, бесплатный — до двух аккаунтов. <b>Mozilla</b> <b>Thunderbird</b> — мощная open-source альтернатива с удобной настраиваемостью, а <b>Mailbird</b> — вариант с упором на продуктивность для тех, кого не пугает подписка.</p><h2>Инструменты разработчика</h2><ul><li><b>Редакторы кода и текста:</b> VS Code, Cursor, Sublime Text</li><li><b>Система контроля версий:</b> SourceTree, GitHub Desktop</li><li><b>Контейнеры: </b>Docker</li><li><b>Локальные LLM: </b>Ollama</li><li><b>SFTP, загрузка файлов:</b> WinSCP, Forklift</li></ul><p>Для разработчиков <b>Visual Studio Code</b> — безусловный вариант. Бесплатный, лёгкий, но мощный, кроссплатформенный — тысячи расширений покрывают практически любой язык, фреймворк или инструмент. Набирающая популярность альтернатива — <b>Cursor</b>, редактор на базе VS Code с усиленной AI-помощью. Он подходит для связки с LLM: даёт inline-подсказки, генерирует код, рефакторит и позволяет редактировать кодовую базу.</p><p>При этом<b> Sublime Text </b>остаётся для скорости и простоты, а <b>Notepad++</b> — отличный лёгкий редактор для быстрых правок в Windows.</p><p>Для Git графические клиенты <b>SourceTree</b> и <b>SmartGit</b> дают понятный интерфейс для управления репозиториями на GitHub, GitLab и не только. <b>GitHub Desktop</b> раньше был простоват и не слишком хорош, но сейчас существенно прибавил — всё ещё простой для работы, но в хорошем смысле.</p><p>Для локальных окружений, API-тестирования или терминального воркфлоу инструментов — пруд пруди. Например, <b>Docker Desktop</b> стал стандартом для тех, кто собирает и запускает контейнеризированные приложения на разных платформах. Он упрощает настройку окружений и держит систему чистой.</p><p><b>Ollama</b> позволяет запускать большие языковые модели (LLM) локально с минимальной настройкой. Поддерживает модели вроде LLaMA, Mistral и другие open-weight альтернативы GPT, так что можно работать с ИИ прямо на своём компьютере без отправки данных в облако.</p><p>Если вы работаете с облачными хранилищами или SFTP, WinSCP (Windows) и ForkLift (macOS) — отличные клиенты с двухпанельным управлением файлами, синхронизацией и автоматизацией. На Mac также популярны <b>Commander One</b> и <b>Transmit</b> — у них есть встроенные подключения к удалённым и облачным путям.</p><h3>Безопасность</h3><p>И Windows, и macOS сегодня предлагают более чем достойную встроенную защиту. С защитой в реальном времени, интеграцией с файерволом и биометрией вроде <b>Windows Hello</b> и <b>Touch ID</b>. Для обычных пользователей, которые соблюдают гигиену безопасности: не скачивают сомнительное ПО, используют менеджеры паролей и включают 2FA — встроенной защиты часто хватает.</p><p>Для продвинутых пользователей есть дополнительные варианты.</p><p>Отличное первое дополнение — <b>Malwarebytes</b>. Это давний фаворит в обнаружении и удалении malware, adware и руткитов; бесплатная версия по-прежнему хороша для ручных сканов. В платной — защита в реальном времени без ощутимой просадки производительности.</p><p>Если не хочется ставить традиционный антивирус, есть достойные альтернативы. <b>Emsisoft Emergency Kit</b> — мощный портативный сканер, который можно запускать с флешки: идеально для редких глубоких сканов или лечения заражённых систем без установки чего-либо. Просто подключаете, когда нужно.</p><p>Ещё один отличный инструмент — <b>VirusTotal</b>: бесплатный веб-сервис, который проверяет файлы и URL через десятки антивирусных движков. Прежде чем открывать подозрительную загрузку, можно залить файл на VirusTotal.com или использовать их расширение для браузера, чтобы проверять ссылки в реальном времени. Быстро, просто и удобно для осторожных пользователей.</p><p>Мы не поклонники установки антивирусов на каждый компьютер и не полностью в курсе, какие сейчас показывают лучшие результаты. Тем не менее, <b>AV-Tes</b>t давно и регулярно оценивает популярные решения, поэтому советуем смотреть их свежие отчёты. В текущем списке высокооценённых — <b>Avast, BitDefender, ESET </b>и другие; многие из них предлагают бесплатные версии для пробы.</p><h3>Удалённый доступ и вспомогательные утилиты</h3><p><b>RustDesk</b> стал современным, ориентированным на приватность аналогом <b>TeamViewer</b>. Он с открытым исходным кодом, быстрый и работает кроссплатформенно.</p><p>Тем, кому нужны более устоявшиеся коммерческие решения, подойдёт <b>AnyDesk</b>, который остаётся лёгким и надёжным вариантом для личного и командного использования.</p><p>Превращение смартфона в пульт дистанционного управления компьютером бывает невероятно удобно — будь то презентации, потоковое видео или просто навигация с дивана.</p><p><b>Remote Mouse</b> — простой и эффективный способ эмулировать мышь и клавиатуру с телефона. Для более продвинутых сценариев можно использовать приложения вроде <b>Unified Remote.</b></p><h2>Редактирование изображений и видео</h2><ul><li><b>Профессиональный видеомонтаж:</b> DaVinci Resolve</li><li><b>Простой видеомонтаж: </b>CapCut</li><li><b>Редакторы изображений:</b> GIMP, PhotoDemon, Pixelmator Pro</li><li><b>Бесплатное улучшение изображений:</b> Upscayl</li><li><b>RAW-редактирование:</b> RawTherapee</li><li><b>Видеоконвертация:</b> HandBrake</li></ul><p>Если вам нужен бесплатный инструмент для редактирования изображений, <b>GIMP</b> — один из самых мощных вариантов. Он предоставляет профессиональные возможности, такие как слои, маски и настраиваемые плагины, что делает его идеальным для продвинутых пользователей. Если вы ищете более лёгкий редактор с чистым интерфейсом, стоит обратить внимание на <b>PhotoDemon</b>. Он работает как портативное приложение на Windows, поддерживает слои и редактирование — отличный выбор для быстрых правок или ретуши.</p><p>Если вы хотите увеличивать разрешение изображений без потери качества, <b>Upscayl</b> — мощный и бесплатный инструмент для апскейла. Он кроссплатформенный, и по нашим тестам показывает результаты на уровне платных решений вроде Topaz.</p><p>Для векторной графики — логотипы, иллюстрации — <b>Inkscape</b> является достойным open-source вариантом с полной поддержкой редактирования SVG. <b>Krita</b> — ещё один отличный бесплатный инструмент, особенно подходящий для цифровой живописи и художественного творчества.</p><p>Для редактирования RAW-фотографий, <b>Darktable</b> и <b>RawTherapee</b> — два высококлассных open-source аналога Adobe Lightroom. Их широко используют фотографы, которым нужна работа с изображениями без подписки.</p><p>Для простых GIF-анимаций <b>ScreenToGif</b> — удобная утилита, мгновенно записывающая область экрана и экспортирующая в GIF или другие форматы с оверлеями.</p><p>Среди платных фоторедакторов <b>Adobe Photoshop</b> остаётся лидером, но для macOS есть <b>Pixelmator Pro</b> — мощное приложение с разовой оплатой, а <b>Affinity Photo</b> предлагает профессиональные возможности по более доступной цене.</p><h3>Видеомонтаж и конвертация</h3><p><b>DaVinci Resolve</b> считается лучшим бесплатным профессиональным ПО. Его используют и энтузиасты, и профессионалы — от простого тримминга до цветокоррекции и сложного постпродакшена.</p><p><b>Shotcut</b> и <b>Kdenlive</b> — тоже сильные бесплатные варианты, предлагают более простой фукнционал с хорошим набором функций для новичков и продвинутых пользователей. <b>CapCut</b>, изначально мобильное приложение, теперь доступен на десктопе — идеально подходит для быстрых монтажей и роликов для соцсетей.</p><p>Для пользователей macOS <b>iMovie </b>предустановлен и остаётся надёжным вариантом для базовых видео. Если вам нужно просто конвертировать или сжимать видео в современные форматы, <b>HandBrake</b> — проверенное бесплатное решение с поддержкой и вариацией входных и выходных форматов.</p><p>Тем, кто ищет топовый профессиональный монтаж, подойдут <b>Adobe Premiere Pro</b> и<b> Final Cut Pro</b>, но там есть дорогая подписка и более высокий порог входа.</p><h2>Коммуникации и совместная работа</h2><ul><li><b>Для повседневной связи: </b>WhatsApp, Messenger и Zoom, если у вас нет FaceTime</li><li><b>Для приватности: </b>Signal</li><li><b>Для работы:</b> Slack, Teams</li><li><b>Для игр и общения: </b>Discord</li></ul><p>Выбор коммуникационных и мессенджерных приложений в первую очередь зависит от того, с кем вы общаетесь — с семьёй, друзьями, коллегами или игровым сообществом. Вот актуальная картина:</p><p>Для личной переписки <b>WhatsApp</b> и <b>Facebook Messenger</b> остаются самыми массовыми платформами по всему миру. У них есть десктопные клиенты и встроенное сквозное шифрование по умолчанию. <b>Telegram</b> также крайне популярен благодаря синхронизации между устройствами и поддержке крупных чатов. Пользователи Apple продолжают активно использовать <b>iMessage</b> для приватного, шифрованного общения в экосистеме Apple.</p><p>Из видеоконференций <b>Zoom</b> остаётся одним из лидеров для групповых звонков и онлайн-ивентов, предлагая локальные записи, демонстрацию экрана и комнаты (breakout rooms). Однако бесплатный тариф ограничивает 1:1 звонки 40 минутами, если не перейти на платный план. Zoom поддерживает сквозное шифрование, но при включении E2EE отключаются некоторые функции вроде облачной записи и комнат.</p><p><b>Google Meet</b> — отличный браузерный аналог без необходимости установки, который заметно улучшился по качеству и удобству использования. Многие компании применяют Meet в ежедневной работе и гибридных форматах. Если ваша организация использует Microsoft 365, скорее всего, вы работаете в <b>Microsoft Teams</b>, который уже заменил Skype на корпоративном уровне. Teams поддерживает большие созвоны, обмен файлами и глубоко интегрирован с Office. Сквозное шифрование доступно, но только для 1:1 звонков.</p><p><b>FaceTime</b> по-прежнему отличный для пользователей Apple, и благодаря новым обновлениям к звонку теперь могут присоединяться и пользователи Android/Windows по ссылке через браузер.</p><p>Когда приватность критична, <b>Signal</b> — один из лучших вариантов. Разработан некоммерческой организацией, бесплатен, open-source, без рекламы, использует надёжное сквозное шифрование для сообщений и звонков.</p><p>Для рабочих коммуникаций<b> Slack</b> и <b>Teams</b> продолжают использоваться в бизнес-среде. Бесплатный тариф Slack ограничивает историю 90 днями и звонки, но остаётся любимцем стартапов и малых команд благодаря интеграциям и ботам. <b>Cisco Webex</b> — также крепкий вариант, особенно популярен в корпоративной среде.</p><p>Если вы работаете с креативными командами, сообществами или геймерами, <b>Discord</b> стал явным лидером. Изначально созданный для игр, он превратился в полноценную коллаборативную платформу с текстом, голосом и видео, стримингом экрана и ботами для автоматизации. Многие комьюнити — и даже IT-компании — используют Discord как основной рабочий инструмент.</p><p>Для внутриигрового голосового чата <b>TeamSpeak </b>остаётся олдскульным достойным вариантом: можно использовать анонимно и получать полный контроль над сервером. Встроенный чат Steam лучше, чем раньше, и помогает в игровой координации, но большинство всё же выбирает Discord.</p><h2>Гейминг, моддинг и стриминг</h2><ul><li><b>Игровые платформы: </b>Steam, Epic Games, EA App, Ubisoft, GOG</li><li><b>Последние драйверы для GPU:</b> Nvidia GeForce, AMD Radeon, Intel Arc</li><li><b>Стриминг:</b> OBS Studio</li></ul><p><b>Steam</b> остаётся центром PC-игр. Это не только магазин, но и социальная платформа, лаунчер и площадка с модами, облачными сохранениями и встроенным стримингом. Регулярные распродажи, поддержка контроллеров и сообщества делают его обязательным для любого PC-геймера.</p><p>Не менее важно установить Epic <b>Games Store</b>. Хотя библиотека меньше, он регулярно раздаёт бесплатные игры, доступные любому с аккаунтом Epic. Это также must-have, если вы играете в Fortnite.</p><p>Помните: не все издатели размещают игры на Steam или Epic. Для тайтлов EA понадобится <b>EA App (ранее Origin)</b>, для Ubisoft — <b>Ubisoft Connect</b>, для Blizzard/Activision — <b>Battle.net</b>, а GOG Galaxy не только предлагает DRM-free классику, но и может агрегировать игры из других лаунчеров.</p><p>Некоторые сверхпопулярные игры распространяются отдельно: Minecraft (через Minecraft.net или Microsoft Store), Roblox, League of Legends и Valorant (через лаунчер Riot Games). Если вы новичок и ищете что-то лёгкое, можно начать с free-to-play тайтлов или классики вроде <b>Brutal Chess</b> или <b>GZDoom</b>.</p><p>Если вы играете с геймпадом, Windows поддерживает Xbox-контроллеры из коробки. PlayStation-контроллеры теперь тоже отлично работают: Steam через <b>Steam Input </b>поддерживает DualShock 4 и DualSense практически во всех играх. При необходимости глубокой кастомизации можно использовать DS4Windows, но большинству хватает возможностей Steam.</p><p>Если вас интересует моддинг, хороший менеджер модов время в этой жизни:</p><ul><li><b>Mod Organizer 2</b> — лучший для RPG Bethesda (Skyrim, Fallout).</li><li><b>Vortex (от Nexus Mods)</b> — дружелюбный к новичкам и поддерживает широкий перечень игр.</li></ul><p>Для записи геймплея или стриминга <b>Nvidia ShadowPlay</b> и <b>AMD Radeon ReLive</b> подходят для простых задач. Но для стриминга с вебкой, сценами, оверлеями или многосценовым продакшеном <b>OBS Studio</b> — безальтернативный лидер. Он бесплатный, open-source и подходит как новичкам, так и про-стримерам (Twitch, YouTube, Kick и т.д.). <b>SignalRGB</b> помогает синхронизировать весь RGB-зоопарк и задавать динамические эффекты.</p><h2>Мониторинг железа и разгон</h2><ul><li><b>Мониторинг: </b>CPU-Z, HWMonitor, HWiNFO64</li><li><b>Настройка и разгон:</b> Afterburner, FanControl, ThrottleStop, SignalRGB</li></ul><p>Одно из первых дел, которое стоит сделать после сборки ПК — убедиться, что компоненты соответствуют ожиданиям и работают корректно. К счастью, существует много инструментов, позволяющих мониторить, тестировать и настраивать железо.</p><p>Начать стоит с <b>CPU-Z</b> — классического бесплатного инструмента, показывающего информацию о CPU, материнской плате, оперативной памяти и других компонентах. Он также умеет запускать простой стресс-тест и бенчмарк для проверки стабильности.</p><p>Для более широкого мониторинга <b>HWMonitor</b> показывает температуры, напряжения и скорости вентиляторов в реальном времени. Если нужно ещё глубже и с более гибким интерфейсом — <b>HWiNFO64</b> считается одним из лучших: поддерживает логирование датчиков и интеграцию с оверлеями (например, RTSS или Rainmeter).</p><p>Чтобы проверить хранилище, <b>CrystalDiskMark</b> измеряет скорость чтения/записи SSD и HDD — это помогает понять, соответствует ли диск заявленным характеристикам. Глубже оценить здоровье накопителя можно в <b>Hard Disk Sentinel</b>, который анализирует SMART-данные, оценивает срок службы и предлагает ограниченный ремонт.</p><p>С точки зрения охлаждения, всё больше геймеров используют утилиты для настройки вентиляторов. <b>FanControl</b> — актуальный бесплатный фаворит: поддерживает сложные кривые оборотов, привязку к датчикам, и совместим с большинством современных материнских плат. На Mac одной из лучших утилит остаётся<b> Macs Fan Control.</b></p><p>Для настройки видеокарт долгое время стандартом был <b>MSI Afterburner</b> — для разгона, настройки вентиляторов и мониторинга с RTSS-оверлеем. Однако из-за замедления обновлений многие сегодня используют встроенные утилиты от <b>Nvidia (GeForce Experience/Control Panel)</b> и <b>AMD (Adrenalin Software)</b>.</p><p>Если вы меняете видеокарту или подозреваете проблемы с драйверами, обязательно используйте <b>Display Driver Uninstaller</b> (DDU) — он полностью очищает систему от старых драйверов перед переустановкой.</p><p>Если вы играете на ноутбуке или хотите снизить нагрев и повысить автономность, <b>ThrottleStop</b> остаётся одним из лучших инструментов для андервольта CPU и настройки энергопрофилей.</p><p>Тем, кто серьёзно подошёл к разгону CPU и GPU, пригодятся фирменные инструменты вроде <b>Intel XTU (для Intel) и AMD Ryzen Master</b> — они дают контроль над частотами, напряжениями и лимитами мощности.</p><h2>Управление файлами</h2><ul><li><b>Поиск больших файлов:</b> SpaceSniffer, WizTree, Disk Drill (macOS)</li><li><b>Поиск дубликатов: </b>dupeGuru</li><li><b>Архивы и ZIP: </b>PeaZip, The Unarchiver</li><li><b>Очистка: </b>BCUninstaller, CCleaner Portable, AppCleaner (macOS)</li></ul><p>Чтобы грамотно управлять файлами и освобождать место, нужно понимать, что именно занимает пространство. На Windows популярны <b>WinDirStat и WizTree </b>— быстрые бесплатные инструменты для визуализации диска. <b>SpaceSniffer</b> предоставляет динамическую схему.</p><p>На macOS — <b>GrandPerspective и Disk Drill </b>предлагают аналогичный функционал, а <b>DaisyDisk</b> — один из самых красивых платных вариантов с молниеносным сканированием.</p><p>Если дубликаты засоряют диск, <b>dupeGuru</b> (open-source) отлично справляется с поиском повторяющихся изображений и музыки, даже слегка изменённых.</p><p>Для пакетного переименования файлов (например, фоточек с камеры) существует гибкий <b>Bulk Rename Utility</b>. Если нужно что-то попроще: <b>PowerRename</b> из PowerToys (Windows) или встроенный инструмент в <b>Finder</b> (macOS) подходят большинству.</p><p>Встроенный <b>File Explorer</b> в Windows недавно получил вкладки и стал удобнее, но <b>Files</b> (open-source) — современная альтернатива с улучшенным UX. Кто-то ещё пользуется <b>Total Commander</b> или <b>Directory Opus</b>, благодаря расширяемости и скриптам, хотя новичкам они кажутся устаревшими. Для просмотра изображений по-прежнему незаменим <b>IrfanView</b>.</p><p>Для работы с архивами, если не устраивает встроенный ZIP-менеджер Windows, скачайте <b>7-Zip</b> или <b>PeaZip</b>. На Mac лучшим бесплатным инструментом остаётся <b>The Unarchiver</b>.</p><p>Для очистки системы важно выбирать надёжные утилиты. На Windows, <b>BCUninstaller (Bulk Crap Uninstaller)</b> — один из самых проверенных для удаления программ и их хвостов. <b>BleachBit</b> и <b>Wise Disk Cleaner</b> — безопасные альтернативы <b>CCleaner</b> (лучше использовать Portable-версию, так как стационарная испортила репутацию). На Mac <b>AppCleaner</b> всё ещё любим за полное удаление приложений без мусора.</p><p>Если вы организуете большую библиотеку медиа, стоит взглянуть на open-source <b>TagSpaces</b>, позволяющий тегировать файлы локально, без облака.</p><h2>Облачное хранилище и резервное копирование</h2><ul><li><b>Простая синхронизация: </b>Dropbox, Google Drive</li><li><b>Фото между устройствами:</b> Apple iCloud, Google Photos</li><li><b>Приватность: </b>pCloud, Proton Drive, Internxt</li><li><b>Полные бэкапы:</b> Backblaze, IDrive</li></ul><h3>Базовое облачное хранилище</h3><p><b>Dropbox</b> — один из самых простых в использовании, хотя бесплатных 2 ГБ мало.</p><p><b>
Google Drive</b> — 15 ГБ бесплатно, используется Gmail, Docs и Photos. Идеален для Android.</p><p><b>
OneDrive</b> — идёт в комплекте с Windows и Microsoft 365. 1 ТБ включён в большинство Office-планов. Хотя по скорости и интерфейсу уступает Dropbox/Google.</p><p><b>
iCloud Drive</b> — лучший выбор для пользователей Apple, глубокая интеграция с macOS/iOS. Бесплатно 5 ГБ, далее по планам до 2 ТБ.</p><p><b>
Proton Drive</b> — шифрованная альтернатива от создателей ProtonMail.</p><h3>Фото и видео</h3><p>На macOS приложение <b>Photos</b> автоматически создаёт альбомы по людям и локациям, синхронизирует всё через iCloud.</p><p>На Windows мы часто рекомендуем <b>Google Photos</b>, который предлагает аналогичный набор функций и автоматизацию. Для пользователей Android — это стандарт по умолчанию. Да, раньше было безлимитно, теперь фото занимают общее место Google Drive (15 ГБ), которое быстро заканчивается.</p><h3>Полные бэкапы</h3><p>Если требуется сохранять всю систему, терабайты медиа, состояние дисков используйте отдельные сервисы резервного копирования.</p><p><b>Backblaze</b> — топ в этой категории: фиксированная цена (~$8/месяц за устройство), безлимитное хранилище, минимум настроек: установил и забыл.</p><p><b>IDrive</b> — более контролируемый вариант, поддерживает несколько устройств, внешние диски и версионность файлов.</p><p>Простой для не-технарей — <b>Carbonite</b>, с возможностью быстрого восстановления и круглосуточной поддержкой.</p><p>Профессионалам — <b>Acronis Cyber Protect</b>: клон дисков, анти-вымогатель, гибридное облако.</p><h3>Для особо чувствительных данных</h3><p>Если вы храните личные финансовые документы или медицинские сведения, стоит выбрать end-to-end решений.</p><p><b>pCloud</b> предлагает клиентское шифрование (через платный «Crypto»). Даже при взломе аккаунта файлы не расшифруются без ключа.</p><p><b>Proton Drive </b>— аналогичный подход, с прозрачностью open-source.</p><h2>Прочие полезные инструменты, не вошедшие в другие разделы</h2><p><b>Google Earth</b> — для любителей карт и планировки.</p><p><b>qBittorrent</b> — лучший torrent-клиент: чистый, без рекламы, с поиском. Альтернатива — легковесный Transmission или кастомизируемый Deluge.</p><p><b> iMazing</b> — must-have для владельцев iPhone: резервные копии, экспорт медиа, проверка батареи, конвертация HEIC.</p><p><b>AirDroid</b> — аналог для Android: управление файлам, уведомления, SMS с ПК.</p><p><b>Rufus</b> — лидер по созданию загрузочных USB-дисков для Windows/Linux.</p><p><b>Open Shell </b>— возвращает классическое меню «Пуск» в стиле Windows 7.</p><p><b>Stretchly</b> — напоминает делать перерывы — полезно удалёнщикам и фрилансерам.</p><p><b>AutoHotkey</b> — скриптовый движок для Windows: переназначение клавиш, макросы, автоматизация.</p><p><b>VPN: </b>бесплатные — ProtonVPN, Windscribe, TunnelBear (с лимитом). Платные — ProtonVPN, NordVPN.</p><p><b>Calibre</b> — лучшее бесплатное решение для чтения, организации и конвертации e-book (EPUB, MOBI, PDF и др.).</p><h2>Заключение</h2><p>Итак, мы прошлись по основным категориям приложений, которые стоит установить на новый компьютер. Конечно, этот список не исчерпывающий — у каждого свои задачи и предпочтения. Но если вы установите хотя бы половину из перечисленного, ваш компьютер станет гораздо удобнее и функциональнее.</p><p>Несколько советов напоследок:</p><ol><li><b>Не захламляйте систему.</b> Устанавливайте только то, что действительно используете. Чем меньше фоновых процессов — тем быстрее работает компьютер.</li><li><b>Следите за обновлениями.</b> Большинство программ обновляются автоматически, но некоторые требуют ручного апдейта. Свежие версии — это не только новые функции, но и закрытые уязвимости.</li><li><b>Делайте резервные копии.</b> Никакие утилиты не спасут от отказа жёсткого диска. Регулярный бэкап на внешний носитель или в облако — обязательная практика.</li><li><b>Экспериментируйте. </b>Попробуйте несколько браузеров, редакторов, плееров. То, что подходит большинству, может не подойти именно вам.</li><li><b>Читайте отзывы.</b> Перед установкой незнакомого приложения загляните на форумы или Reddit. Сообщество быстро выявляет проблемы и подводные камни.</li></ol><p>Теперь ваш компьютер готов к работе, учёбе, развлечениям — и чему угодно ещё. Главное — не забывайте, что инструменты важны, но ещё важнее то, как вы их используете. Удачи!</p>]]></content:encoded>
    </item>
    <item>
      <title>Лучшие практики для ускорения фронтенда: чек-лист 2025 года</title>
      <link>https://tproger.ru/articles/luchwie-praktiki-dlya-uskoreniya-frontenda--chek-list-2025-goda</link>
      <comments>https://tproger.ru/articles/luchwie-praktiki-dlya-uskoreniya-frontenda--chek-list-2025-goda?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Татьяна Жукова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/luchwie-praktiki-dlya-uskoreniya-frontenda--chek-list-2025-goda</guid>
      <description><![CDATA[<p>Ускорьте свой сайт с помощью чек-листа по оптимизации фронтенда: от HTML и CSS до изображений и серверов. Практические советы для повышения скорости, SEO и конверсий в 2025 году.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/luchwie-praktiki-dlya-uskoreniya-frontenda--chek-list-2025-goda">Лучшие практики для ускорения фронтенда: чек-лист 2025 года</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[CSS]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[React]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 03 Oct 2025 12:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Это перевод <a href="https://crystallize.com/blog/frontend-performance-checklist">статьи</a> с сайта компании Crystallize. Можете поделиться своим мнением в комментариях!</p><h2>Почему скорость сайта так важна</h2><p>В мире, где внимание пользователей <a href="https://time.com/3858309/attention-spans-goldfish/">рассеивается</a> за восемь секунд, быстрая загрузка сайта становится критически важной. Статистика подтверждает: <a href="https://www.thinkwithgoogle.com/consumer-insights/consumer-trends/mobile-site-load-time-statistics/#:~:text=Google%20www.thinkwithgoogle.com%20%2053,statistics%20on%20Think%20with%20Google">53% мобильных пользователей покидают сайт</a>, если он грузится дольше 3 секунд, а 70% потребителей <a href="https://unbounce.com/page-speed-report/#:~:text=Nearly%2070%25%20of%20consumers%20admit%20that%20page%20speed%20influences%20their,time%20is%20slower%20than%20expected.">отмечают</a>, что скорость влияет на их решение о покупке. Walmart, например, <a href="https://wpostats.com/2015/11/04/walmart-revenue/#:~:text=Walmart%20saw%20up%20to%20a,increase%20in">зафиксировал</a> рост конверсий на 2% за каждую секунду сокращения времени загрузки.</p><p>Быстрые сайты обеспечивают:</p><ul><li>Долгое пребывание пользователей на сайте;</li><li>Больше просмотров страниц благодаря быстрой навигации;</li><li>Меньше отказов из-за медленных загрузок;</li><li>Выше конверсии и доходов, так как скорость напрямую влияет на покупки;</li><li>Лучшую удовлетворенность и удержание пользователей;</li><li>Рост органического трафика, так как Google учитывает Core Web Vitals в SEO-ранжировании;</li><li>Экономию на CDN и трафике, ведь оптимизированные сайты потребляют меньше данных;</li><li>Повышение качества рекламы в Google Ads, так как быстрые страницы снижают стоимость кликов.</li></ul><p>Оптимизация фронтенда — это не просто техническая задача, а способ повысить лояльность пользователей и бизнес-показатели.</p><h2>Как измерить производительность сайта</h2><p>Прежде чем оптимизировать, <a href="https://crystallize.com/blog/frontend-performance-measuring-and-kpis">измерьте</a> текущую производительность сайта, чтобы выявить узкие места. Используйте комбинацию лабораторных и полевых инструментов:</p><ul><li><a href="https://pagespeed.web.dev/">Google PageSpeed Insights</a>: быстрый аудит Core Web Vitals с рекомендациями.</li><li><a href="https://developers.google.com/web/tools/lighthouse">Chrome Lighthouse</a>: встроенный в DevTools инструмент для анализа производительности, SEO и лучших практик.</li><li><a href="https://www.webpagetest.org/">WebPageTest</a>: детализированные метрики, визуализация загрузки и советы по оптимизации.</li><li><a href="https://gtmetrix.com/">GTmetrix</a>: анализ скорости загрузки с рекомендациями.</li><li><a href="https://developer.chrome.com/docs/crux/methodology/tools">CrUX в Google Search Console</a>: реальные данные пользовательского опыта (Core Web Vitals) для SEO.</li></ul><p>Лабораторные инструменты дают контролируемые метрики, а мониторинг реальных пользователей (через <a href="https://github.com/GoogleChrome/web-vitals">Web Vitals JS</a>, <a href="https://www.speedcurve.com/">SpeedCurve</a> или <a href="https://calibreapp.com/">Calibre</a>) показывает, как сайт работает в реальных условиях. Это поможет определить приоритеты для оптимизации.</p><h2>Чек-лист оптимизации фронтенда 2025</h2><p>Производительность — это командная работа. Бэкенд должен быть масштабируемым, UX-дизайнеры — балансировать визуал и скорость, а фронтенд-разработчики — реализовывать оптимизированный код. Этот чек-лист подходит для любой платформы: от Next.js и Astro до WordPress и PHP. Адаптируйте его под ваш проект, уделяя внимание ключевым метрикам, таким как LCP, CLS и INP (новый показатель, заменивший FID в 2024 году).</p><h3>HTML</h3><p>HTML — основа страницы, и его оптимизация ускоряет загрузку и улучшает пользовательский опыт.</p><ul><li>Приоритизируйте критический HTML: доставляйте HTML для верхней части страницы первым, чтобы браузер начал рендеринг. Фреймворки вроде Next.js или Astro с SSR/SSG рендерят HTML на сервере, улучшая First Contentful Paint.</li><li>Удаляйте лишний код: уберите ненужные теги, комментарии и пробелы. Компактный HTML загружается быстрее, особенно в мобильных сетях.</li><li>Включите сжатие: используйте GZIP или Brotli, чтобы уменьшить размер HTML. Большинство серверов и CDN это поддерживают.</li><li>Оптимизируйте загрузку ресурсов: размещайте CSS в &lt;head&gt; для быстрого рендера, а скрипты — перед &lt;/body&gt; или с атрибутами async/defer, чтобы не блокировать разбор HTML.</li><li>Минимизируйте iframe: они загружают дополнительные страницы, замедляя сайт. Используйте loading="lazy" для iframe ниже линии сгиба или загружайте их по клику.</li></ul><p><b>Совет:</b> держите DOM компактным. Например, Astro разбивает страницы на «островки», минимизируя гидратацию JavaScript, что ускоряет рендеринг.</p><h3>CSS</h3><p>CSS может блокировать рендеринг, если не оптимизирован. Вот как сделать стили быстрее:</p><ul><li>Удаляйте неиспользуемый CSS: используйте PurgeCSS или Chrome DevTools, чтобы убрать мертвый код, особенно в проектах с Tailwind.</li><li>Модуляризуйте стили: разделяйте CSS по страницам или функциям, загружая только необходимое. Критические стили встраивайте в &lt;head&gt;, остальное загружайте асинхронно.</li><li>Избегайте @import: он создает дополнительные запросы и блокирует рендеринг. Используйте &lt;link rel="stylesheet"&gt; или объединяйте CSS при сборке.</li><li>Используйте критический CSS: встраивайте стили для верхней части страницы в HTML, а остальное загружайте позже (например, через media="print"). Инструменты вроде Critical помогут это автоматизировать.</li><li>Минимизируйте CSS: убирайте пробелы и комментарии с помощью Clean-CSS или cssnano.</li><li>Предварительно загружайте ключевые стили: используйте &lt;link rel="preload" as="style"&gt; для важных CSS-файлов.</li><li>Упрощайте селекторы: избегайте сложных вложенных цепочек, чтобы ускорить вычисления стилей. Например, .headline лучше, чем body div#main article h1.</li><li>Применяйте современный CSS: используйте content-visibility: auto для отложенного рендера контента за пределами экрана. Это ускоряет начальную загрузку и снижает потребление памяти.</li></ul><h2>JavaScript</h2><p>JavaScript часто замедляет страницы из-за объема и времени выполнения. Оптимизируйте его так:</p><ul><li>Заменяйте JS на HTML/CSS: используйте CSS-анимации, &lt;details&gt; или валидацию форм вместо JS, где возможно.</li></ul><ul><li>Минимизируйте фреймворки: избегайте тяжелых библиотек для простых задач. Проверяйте сторонние скрипты (аналитика, реклама) и удаляйте ненужные.</li><li>Разделяйте код: используйте динамический import() или возможности фреймворков для загрузки JS по необходимости.</li><li>Предварительно загружайте важные скрипты: используйте &lt;link rel="preload" as="script"&gt; для ключевых JS-файлов.</li><li>Применяйте async/defer: добавляйте эти атрибуты к &lt;script&gt;, чтобы не блокировать рендеринг. Defer сохраняет порядок выполнения, async подходит для независимых скриптов.</li><li>Минимизируйте JS: используйте UglifyJS или tree shaking для удаления неиспользуемого кода. Настраивайте сборку для ES-модулей.</li><li>Обновляйте зависимости: новые версии фреймворков (esbuild, SWC) часто быстрее. Используйте Renovate или Dependabot для автоматизации.</li><li>Выбирайте подходящий фреймворк: Next.js с React Server Components или Astro с «островковой» архитектурой сокращают объем JS на клиенте, ускоряя загрузку.</li></ul><h2>Изображения</h2><p>Изображения — один из главных факторов загрузки страниц. Оптимизируйте их так:</p><ul><li>Используйте правильный размер: не загружайте изображения больше, чем нужно для отображения. Инструменты вроде ImageMagick или Sharp помогут автоматизировать ресайз.</li><li>Применяйте адаптивные изображения: используйте &lt;img srcset&gt; или &lt;picture&gt; для доставки изображений в зависимости от устройства.</li><li>Сжимайте изображения: используйте ImageOptim, mozJPEG для JPEG, PNGQuant для PNG или SVGO для SVG.</li><li>Предварительно загружайте ключевые изображения: используйте &lt;link rel="preload" as="image"&gt; или fetchpriority="high" для баннеров, влияющих на LCP.</li><li>Откладывайте загрузку: добавляйте loading="lazy" для изображений ниже линии сгиба.</li><li>Используйте WebP/AVIF: эти форматы обеспечивают лучшее сжатие, чем JPEG/PNG. CDN и фреймворки вроде Next.js автоматизируют конвертацию.</li><li>Указывайте размеры: добавляйте width и height или CSS aspect-ratio, чтобы избежать сдвигов макета (CLS).</li><li>Автоматизируйте оптимизацию: используйте Next.js &lt;Image&gt;, Astro или CDN (Cloudinary, Imgix) для автоматической обработки изображений.</li></ul><h2>Видео</h2><p>Видео могут быть тяжелее изображений, поэтому требуют особого внимания:</p><ul><li>Сжимайте видео: используйте Handbrake для MP4/WebM, снижая битрейт или разрешение (например, 720p вместо 1080p).</li><li>Используйте современные кодеки: WebM (VP9) или AV1 обеспечивают лучшее сжатие, чем MP4 (H.264).</li><li>Настройте предварительную загрузку: используйте preload="metadata" или none для видео, чтобы не загружать лишние данные.</li><li>Откладывайте загрузку: применяйте loading="lazy" для iframe или загружайте видео по клику/прокрутке.</li><li>Удаляйте ненужное аудио: уберите звуковую дорожку из фоновых видео с помощью FFmpeg.</li><li>Используйте потоковую передачу: для длинных видео применяйте HLS или DASH для адаптивной загрузки.</li><li>Оптимизируйте сторонние видео: используйте облегченные встраивания (например, lite-youtube-embed) для YouTube/Vimeo.</li></ul><h2>Шрифты</h2><p>Пользовательские шрифты улучшают брендинг, но могут замедлить рендеринг. Оптимизируйте их так:</p><ul><li>Ограничьте количество шрифтов: используйте минимум семейств и начертаний, чтобы сократить запросы.</li><li>Применяйте WOFF2: этот формат компактнее TTF или WOFF и поддерживается всеми браузерами.</li><li>Предварительно подключайтесь к источникам: используйте &lt;link rel="preconnect"&gt; для Google Fonts или других хостов.</li><li>Используйте font-display: swap: это предотвращает FOIT (невидимый текст) и улучшает пользовательский опыт.</li><li>Избегайте сдвигов макета: подбирайте резервные шрифты с похожими метриками или используйте font-size-adjust.</li><li>Рассмотрите переменные шрифты: один файл заменяет несколько начертаний, снижая объем данных.</li><li>Используйте системные шрифты: они не требуют загрузки и работают мгновенно.</li></ul><h2>Хостинг и сервер</h2><p>Конфигурация сервера напрямую влияет на скорость загрузки:</p><ul><li>Используйте HTTPS: это не только безопасно, но и быстрее, благодаря HTTP/2+. Google учитывает HTTPS для SEO.</li><li>Сократите HTTP-запросы: удаляйте ненужные ресурсы и минимизируйте сторонние скрипты.</li><li>Перейдите на HTTP/2 или HTTP/3: HTTP/2 поддерживает мультиплексирование, HTTP/3 (QUIC) ускоряет соединение, особенно на мобильных сетях.</li><li>Используйте CDN: кэшируйте ресурсы на серверах по всему миру для снижения задержек.</li><li>Настройте кэширование: используйте Cache-Control для статических ресурсов и кэширование на уровне приложения.</li><li>Оптимизируйте сервер: держите TTFB ниже 200 мс, оптимизируя запросы к базе данных и вычисления.</li><li>Применяйте статическую генерацию: используйте SSG или ISR (Next.js) для доставки готовых HTML-страниц через CDN.</li></ul><h2>Быстрые улучшения</h2><p>Эти небольшие оптимизации дают заметный эффект:</p><ul><li>Избегайте сдвигов макета: резервируйте место для изображений, iframe и динамического контента, чтобы минимизировать CLS.</li><li>Используйте приоритеты: применяйте fetchpriority="high" для ключевых ресурсов и low для некритических.</li><li>Сократите сторонние запросы: откладывайте загрузку аналитики или рекламы до взаимодействия пользователя.</li><li>Используйте один протокол: избегайте смешанного контента (HTTP/HTTPS).</li><li>Настройте кэширование: используйте длительный max-age для статических ресурсов с хэшами в именах файлов.</li><li>Предварительно загружайте страницы: используйте &lt;link rel="prefetch"&gt; для вероятных переходов.</li><li>Применяйте Service Workers: кэшируйте ресурсы для мгновенной загрузки и оффлайн-доступа.</li></ul><p>Оптимизация фронтенда — это непрерывный процесс, который требует внимания всей команды. Скорость сайта напрямую влияет на пользовательский опыт, SEO и бизнес-показатели. Используйте этот чек-лист, чтобы выявить слабые места и сократить миллисекунды загрузки. Комбинируйте лабораторные тесты и мониторинг реальных пользователей, чтобы отслеживать прогресс. Сделайте скорость приоритетом — ваши пользователи и бизнес скажут спасибо!</p>]]></content:encoded>
    </item>
    <item>
      <title>Post-GraphQL мир: стоит ли переходить на gRPC и tRPC</title>
      <link>https://tproger.ru/articles/post-graphql-mir--stoit-li-perehodit-na-grpc-i-trpc</link>
      <comments>https://tproger.ru/articles/post-graphql-mir--stoit-li-perehodit-na-grpc-i-trpc?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/post-graphql-mir--stoit-li-perehodit-na-grpc-i-trpc</guid>
      <description><![CDATA[<p>Подробное сравнение технологий API для разработчиков. Разбираем сильные и слабые стороны GraphQL, gRPC и tRPC на реальных кейсах. Практические рекомендации по выбору технологии для вашего проекта.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/post-graphql-mir--stoit-li-perehodit-na-grpc-i-trpc">Post-GraphQL мир: стоит ли переходить на gRPC и tRPC</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Микросервисы]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Архитектура приложений]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Post-GraphQL]]></category>
      <category><![CDATA[gRPC]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 01 Oct 2025 12:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Архитектура API постоянно меняется. Несколько лет назад GraphQL казался панацеей от всех болезней REST. Сегодня всё чаще говорят о двух других технологиях — gRPC и tRPC. Это не означает, что GraphQL уже не актуален — он нашёл свою нишу и продолжает развиваться, но это уже не универсальное решение для любых задач. Фреймворки gRPC и tRPC открывают принципиально иные подходы к построению API. Они решают конкретные проблемы в конкретных контекстах.</p><p>Узнаем, что предлагает Post-GraphQL мир, в чём плюсы и минусы фреймворков gRPC и tRPC и в каких ситуациях стоит пользоваться новыми инструментами.</p><h2>От монолитов к микросервисам: как мы здесь оказались</h2><p>Чтобы понять современный ландшафт API, вернёмся на несколько лет назад. REST доминировал десятилетиями. Этот подход прост для понимания, но имеет фундаментальные проблемы.</p><p>Типичный сценарий разработки под REST выглядел так: фронтендеры постоянно просили бэкендеров добавить новые поля в ответы API или создать новые эндпоинты. Возникала тесная связь между командами, что замедляло разработку.</p><p>GraphQL решил эти проблемы, предоставив клиентам возможность запрашивать именно те данные, которые им нужны. Один запрос вместо десятков, строгая типизация, интроспекция — всё это сделало GraphQL популярным.</p><p>Но идеальных технологий не существует. GraphQL принёс свои сложности:</p><ul><li>кэширование на клиенте стало нетривиальной задачей;</li><li>сложные запросы создавали нагрузку на сервер;</li><li>необходимость изучать новый язык запросов отпугивала разработчиков.</li></ul><p>Эволюция продолжилась. Сегодня мы видим, как экосистема разделилась на два основных направления: высокопроизводительные межсервисные коммуникации (gRPC) и бесшовную разработку полного стека на TypeScript (tRPC).</p><h2>gRPC: высокопроизводительная связность для микросервисов</h2><p>gRPC — не просто ещё один протокол, а полноценная экосистема для построения эффективных распределённых систем. Технология создана Google для внутренних нужд, где критически важны производительность и надёжность.</p><p>gRPC использует Protocol Buffers (protobuf) в качестве языка описания интерфейсов и формата сериализации. Это бинарный формат, который значительно эффективнее текстового JSON. Сообщения занимают меньше места и быстрее обрабатываются.</p><p>HTTP/2 — ещё один козырь gRPC. Этот протокол поддерживает мультиплексирование запросов, server push и двунаправленные потоки. В отличие от традиционных HTTP-запросов, gRPC может работать с постоянными соединениями и потоковой передачей данных в реальном времени.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-09-30/ca6ce939-89ec-4b24-b4e4-dbccf40845cd.png" alt="" /></figure><h2>Когда gRPC действительно сияет</h2><p>gRPC идеально подходит для микросервисных архитектур, где сервисы общаются друг с другом внутри защищенной сети. Финансовые системы, телекоммуникационные платформы, игровые серверы — везде, где важны эффективность и минимальное время отклика.</p><p>Сильная сторона gRPC — потоковая передача данных. Представьте систему мониторинга, где сервер постоянно отправляет метрики, или чат-приложение с тысячами одновременных соединений. gRPC справляется с такими задачами лучше REST или GraphQL благодаря встроенной поддержке потоков на уровне протокола HTTP/2.</p><p>В отличие от REST, который требует постоянного установления новых HTTP-соединений, gRPC поддерживает двунаправленные потоки в рамках одного соединения, что снижает накладные расходы и позволяет эффективнее использовать сетевые ресурсы.</p><p>Межъязыковое взаимодействие — ещё одно преимущество. У вас могут быть сервисы на Go, Python, Java и C++, которые легко общаются между собой благодаря сгенерированному коду из protobuf-файлов.</p><h2>Ограничения gRPC</h2><p>Браузерная поддержка требует дополнительных усилий. Нативные gRPC-клиенты в браузерах не работают, нужен прокси gRPC-Web. Это добавляет сложности в настройке.</p><p>Человекочитаемость сообщений оставляет желать лучшего. Бинарный формат protobuf неудобен для отладки без специальных инструментов. Разработчики часто используют JSON-эквиваленты для разработки, жертвуя производительностью.</p><p>gRPC требует кодогенерации. При каждом изменении API нужно обновлять protobuf-файлы и перегенерировать код для всех языков. Это добавляет лишний шаг в процесс разработки.</p><h2>tRPC: типобезопасность без схем и кодогенерации</h2><p>tRPC занимает противоположную нишу. Это технология для полного стека на TypeScript, где важны скорость разработки и типобезопасность.</p><p>Философия tRPC — минимализм. Не нужны схемы, кодогенерация, сложные настройки. Вы определяете процедуры (запросы и мутации) на TypeScript, а клиент автоматически получает информацию о типах.</p><p>tRPC использует обычный HTTP поверх HTTP/1.x, что делает его совместимым с любым браузером. Транспортный формат — JSON, который легко отлаживать с помощью стандартных инструментов разработчика.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-09-30/f029279a-d51f-4666-bb04-1f409c22b18f.jpg" alt="" /></figure><h2>Сильные стороны tRPC</h2><p>Скорость разработки — главный плюс tRPC. Изменения на сервере сразу отражаются в типах на клиенте. Не нужно ждать кодогенерации или вручную синхронизировать типы.</p><p>Идеальная интеграция с экосистемой TypeScript. Если ваш стек — Next.js, React, Prisma и TypeScript, то tRPC станет естественным выбором. Разработка напоминает работу с монолитом, но с распределённой архитектурой.</p><p>tRPC отлично работает в монорепозиториях. Один репозиторий содержит и клиент, и сервер, что упрощает синхронизацию версий и рефакторинг.</p><h2>Когда tRPC не подходит</h2><p>tRPC привязан к экосистеме TypeScript. Если у вас мультиязычная архитектура или вы планируете публичное API для клиентов на разных языках, tRPC — не лучший выбор.</p><p>Отсутствие схемы может быть ограничением. GraphQL-схема служит документацией и основой для инструментов вроде Apollo Studio. tRPC не предоставляет аналогичных возможностей для интроспекции API.</p><p>tRPC не решает проблему over-fetching на том же уровне, что GraphQL. Клиент не может точно указать, какие поля нужны в ответе — он получает всю структуру данных, определённую процедурой.</p><h2>Сравнительная таблица: gRPC vs GraphQL vs tRPC</h2><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-09-30/94988143-b27a-40e5-a33a-f84a3c5a8013.png" alt="" /></figure><h2>GraphQL рано списывать со счетов</h2><p>Несмотря на рост популярности gRPC и tRPC, GraphQL остаётся сильным игроком на рынке API. Технология развивается, появляются новые инструменты и практики:</p><ul><li><b>GraphiQL 2.0.</b> Не просто обновление, а полный редизайн официального инструмента для разработки запросов. Новая версия, разрабатываемая GraphQL Foundation, предлагает модульную архитектуру с поддержкой плагинов для расширения функциональности.</li><li><b>Apollo MCP Server.</b> Адаптация GraphQL к новейшим технологическим трендам, в частности — к интеграции с искусственным интеллектом. Apollo MCP Server позволяет подключать большие языковые модели (LLM) и AI-системы к вашим API через GraphQL, выступая для них стандартизированным и безопасным интерфейсом. Это решает такие проблемы AI, как необходимость детерминированного выполнения запросов и контроля политик доступа.</li><li><b>Автоматические постоянные запросы</b> (Automatic Persisted Queries, APQ). Клиент может отправлять на сервер не текст запроса, а его хэш. Сервер, заранее получивший полный запрос, выполняет его, найдя по хэшу. Это значительно сокращает объем передаваемых данных и ускоряет работу, особенно в мобильных сетях.</li></ul><p>GraphQL незаменим, когда у вас множество клиентов с разными требованиями к данным. Мобильное приложение, веб-интерфейс, партнерские интеграции — каждый может запросить именно те данные, которые нужны, без изменения серверной логики.</p><p>Эволюция GraphQL продолжается. Подходы вроде GraphQL Federation позволяют распределить схему между разными командами, что решает проблему монолитной схемы в больших организациях.</p><p>Инструменты вроде graphql-tada и Grats улучшают процесс разработки с GraphQL, приближая его к удобству tRPC. Они обеспечивают типобезопасность без потерь в гибкости.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-09-30/05238f17-ec27-4483-90d6-4340e984d173.png" alt="" /></figure><h2>Как выбрать: практические рекомендации</h2><p>Выбор технологии зависит от конкретного контекста. Не следуйте трендам вслепую — это приводит к архитектурным ошибкам. Вместо вопроса «Что сейчас модно?» спросите: «Какую проблему я решаю?».</p><p>Проанализируйте свой проект по нескольким ключевым параметрам. Ответы помогут принять взвешенное решение.</p><h2>Вопрос первый: какую проблему вы решаете?</h2><p>Разные технологии созданы для разных сценариев. Определите основную боль вашего проекта:</p><ul><li>Нужна высокая производительность для внутренней коммуникации микросервисов → gRPC. Бинарный протокол и HTTP/2 дают преимущество в скорости при частых вызовах между сервисами.</li><li>Хотите дать клиентам гибкость в запросах данных → GraphQL. Разные потребители API могут запрашивать только нужные поля без изменения серверной логики.</li><li>Разрабатываете full-stack приложение на TypeScript и хотите максимальной типобезопасности → tRPC. Единая типовая система от бэкенда до фронтенда ускоряет разработку и снижает количество ошибок.</li></ul><h2>Вопрос второй: какая у продукта архитектура?</h2><p>Технологический стек определяет доступные опции. Оцените текущую и планируемую инфраструктуру:</p><ul><li>Один язык программирования по всему стеку (TypeScript) → tRPC. Тесная интеграция с экосистемой TypeScript становится приоритетом.</li><li>Несколько языков (Go, Python, Java, etc.) → gRPC или GraphQL. gRPC обеспечивает эффективную коммуникацию между разнородными сервисами, а GraphQL подходит для публичного API.</li><li>Планируете масштабирование на разные платформы → GraphQL. Единая схема API работает с любым клиентом, независимо от языка или платформы.</li></ul><h2>Вопрос третий: кто потребители вашего API?</h2><p>Проанализируйте, кто будет использовать ваш API:</p><ul><li>Внутренние сервисы → gRPC. Высокая производительность и эффективность важнее человекочитаемости.</li><li>Внешние клиенты (мобильные приложения, партнеры) → GraphQL. Возможность точного запроса данных снижает нагрузку на сеть и упрощает интеграцию.</li><li>Собственный фронтенд на TypeScript → tRPC. Максимальная скорость разработки и типобезопасность окупают ограничения по браузерной поддержке.</li></ul><h2>Вопрос четвертый: каковы требования к инструментарию?</h2><p>Разработка не заканчивается на написании кода. Оцените важность сопутствующих инструментов:</p><ul><li>Важна интроспекция API и полноценная экосистема инструментов → GraphQL. Встроенная интроспекция и инструменты вроде Apollo Studio предоставляют мощные возможности для отладки и мониторинга.</li><li>Нужна максимальная производительность и минимальные накладные расходы → gRPC. Бинарный формат и HTTP/2 обеспечивают эффективную передачу данных.</li><li>Приоритет — скорость разработки и минимальная конфигурация → tRPC. Отсутствие схем и кодогенерации ускоряет итерации.</li></ul><h2>Дополнительные практические соображения</h2><p>Командная экспертиза играет важную роль. Любая новая технология требует времени на освоение. Оцените готовность команды изучать новые инструменты.</p><p>Операционные расходы — ещё один фактор. gRPC требует инфраструктуры для мониторинга бинарных протоколов. GraphQL нуждается в инструментах для анализа запросов и защиты от перегрузки.</p><p>Рассмотрите возможность гибридного подхода. Крупные проекты часто используют разные технологии для разных задач. Внутренняя коммуникация — gRPC, публичное API — GraphQL, админ-панель — tRPC.</p><p>Проведите пилотные испытания. Реальные нагрузки могут преподнести сюрпризы. Протестируйте выбранную технологию на критически важных сценариях перед полным внедрением.</p><h2>Почему гибридные подходы набирают популярность</h2><p>Современные приложения редко бывают простыми. Один продукт может включать мобильное приложение, веб-интерфейс, админ-панель и интеграции с партнерами. Каждый компонент имеет уникальные требования к API.</p><p>Монолитная архитектура API часто не справляется с разнородными нагрузками. Один протокол пытается угодить всем, но в итоге не идеален ни для кого. Гибридный подход признает это разнообразие и предлагает адресные решения.</p><p>Технологическая зрелость инструментов позволяет легко комбинировать разные подходы. Контейнеризация, сервисная сетка и API-гейтвеи упрощают интеграцию разнородных компонентов.</p><h2>Реальные сценарии комбинирования технологий</h2><p>Рассмотрим типичный пример e-commerce платформы. Система состоит из нескольких логических частей, каждая со своими требованиями.</p><p>Микросервисы инвентаризации и платежей общаются через gRPC. Здесь важна низкая задержка и эффективность сети. Бинарный протокол и HTTP/2 идеально подходят для частых внутренних вызовов.</p><p>Публичное API для мобильных приложений и партнеров использует GraphQL. Разные клиенты могут запрашивать только нужные данные без переразработки серверной логики. Это снижает нагрузку на сеть и упрощает поддержку API.</p><p>Админ-панель и внутренние инструменты построены на tRPC. Разработчики работают в единой TypeScript-экосистеме, что ускоряет итерации. Типобезопасность от backend до frontend снижает количество ошибок.</p><h2>Техническая реализация гибридной архитектуры</h2><p>Ключевой элемент гибридной системы — API-шлюз. Он маршрутизирует запросы к соответствующим бэкендам, преобразует форматы данных и обеспечивает единую точку входа.</p><p>Шлюз принимает HTTP-запросы и определяет, куда их направить. GraphQL-запросы идут к GraphQL-серверу, gRPC-вызовы — к микросервисам, а tRPC-запросы — к соответствующим процедурам.</p><p>Преобразование протоколов происходит прозрачно для клиента. Например, мобильное приложение отправляет GraphQL-запрос, который шлюз может преобразовать в gRPC-вызов к внутренним сервисам.</p><p>Сервисная сеть (service mesh) упрощает управление гибридной инфраструктурой. Она обеспечивает обнаружение сервисов, балансировку нагрузки и мониторинг независимо от используемых протоколов.</p><h2>Организационные аспекты смешанного подхода</h2><p>Гибридная архитектура влияет на структуру команд. Вместо единой бэкенд-команды появляются специализированные группы:</p><ul><li>Команда платформы отвечает за базовую инфраструктуру: API-шлюз, сервисную сеть, мониторинг. Они обеспечивают совместимость различных технологий и единые стандарты качества.</li><li>Команды продукта фокусируются на конкретных функциональных областях. Они выбирают оптимальные технологии для своих задач в рамках установленных стандартов.</li></ul><p>Такое разделение требует чётких интерфейсов между командами. Контракты API становятся критически важными — они определяют точки взаимодействия между различными частями системы.</p><h2>Проблемы и решения при внедрении</h2><p>Гибридный подход не лишён сложностей. Основная проблема — высокая операционная нагрузка. Каждая технология требует специфических знаний и инструментов мониторинга.</p><p>Единая система мониторинга обязательна. Нельзя иметь отдельные дашборды для gRPC, GraphQL и tRPC. Нужен агрегированный взгляд на всю систему, который показывает взаимосвязи между компонентами.</p><p>Стандартизация практик разработки становится критически важной. Разные команды должны следовать единым принципам документирования, версионирования и тестирования API.</p><p>Обучение разработчиков — еще один вызов. Программисты должны понимать несколько технологий, а не специализироваться на одной. Это требует инвестиций в обучение и обмен знаниями.</p><h2>Когда гибридный подход оправдан</h2><p>Переход к смешанной архитектуре требует дополнительных ресурсов. Он не всегда целесообразен для небольших проектов или стартапов на ранней стадии.</p><p>Проекты с явно выраженными разнородными требованиями к API получают максимальную выгоду. Если у вас есть и высоконагруженные внутренние сервисы, и публичное API с разнообразными клиентами — гибридный подход может быть оптимальным.</p><p>Системы, которые эволюционируют из монолита в микросервисы, часто естественным образом приходят к гибридной архитектуре. Постепенное внедрение новых технологий менее рискованно, чем полный рефакторинг.</p><p>Команды с сильной DevOps-культурой лучше справляются со сложностью гибридных систем. Автоматизация развёртывания, мониторинга и масштабирования снижает операционную нагрузку.</p><h2>Эволюция вместо революции</h2><p>Гибридный подход — не про выбор одной технологии, а про использование сильных сторон каждой. Это признание того, что современные системы слишком сложны для универсальных решений.</p><p><b>Начинайте с простого.</b> Если ваш проект небольшой, одной технологии API может быть достаточно. По мере роста вы сможете постепенно вводить дополнительные протоколы там, где они дают максимальный эффект.</p><p><b>Измеряйте результаты.</b> Внедрение новой технологии должно решать конкретные проблемы: снижать задержки, ускорять разработку или улучшать пользовательский опыт. Без измеримых целей гибридная архитектура превращается в ненужное усложнение.</p><p>Главное — сохранять архитектурную гибкость. Технологии продолжат меняться, и ваша система должна быть готова адаптироваться к новым вызовам.</p><h2>Итоги: не следуйте трендам, решайте задачи</h2><p>GraphQL не умер — он занял свою нишу в мире API. gRPC и tRPC не заменят его полностью, а дополнят экосистему, предлагая решения для конкретных сценариев.</p><p>Выбирайте технологию исходя из потребностей проекта, а не модных трендов. Иногда простое REST API может оказаться лучшим решением, если ваши требования минимальны.</p><p>Технологии продолжат развиваться. Важно сохранять архитектурную гибкость и не замыкаться на одном стеке. Умение выбрать правильный инструмент для задачи — навык, который останется актуальным независимо от появления новых технологий.</p><p>Главное — решать реальные проблемы, а не создавать себе новые в погоне за модными фреймворками.</p>]]></content:encoded>
    </item>
    <item>
      <title>Гайд по 2FA и MFA: как правильно внедрить многофакторную аутентификацию</title>
      <link>https://tproger.ru/articles/gajd-po-2fa-i-mfa--kak-pravilno-vnedrit-mnogofaktornuyu-autentifikaciyu</link>
      <comments>https://tproger.ru/articles/gajd-po-2fa-i-mfa--kak-pravilno-vnedrit-mnogofaktornuyu-autentifikaciyu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Вадим Егорцев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/gajd-po-2fa-i-mfa--kak-pravilno-vnedrit-mnogofaktornuyu-autentifikaciyu</guid>
      <description><![CDATA[<p>Полное руководство по внедрению многофакторной аутентификации для защиты бизнеса и личных данных. Эксперты рассказали про типичные ошибки и технические нюансы 2FA.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/gajd-po-2fa-i-mfa--kak-pravilno-vnedrit-mnogofaktornuyu-autentifikaciyu">Гайд по 2FA и MFA: как правильно внедрить многофакторную аутентификацию</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[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 24 Sep 2025 12:00:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>По данным IBM, компрометация учётных данных <a href="https://newsroom.ibm.com/2024-07-30-ibm-report-escalating-data-breach-disruption-pushes-costs-to-new-highs">стала</a> топ-вектором атак со средней ценой ошибки $4,81 млн. Verizon <a href="https://www.polymerhq.io/blog/verizon-dbir-2024-key-takeaways/">фиксирует</a>, что 74% утечек данных происходит из-за человеческого фактора. Ослабла связка «пароль + код из СМС»:</p><ul><li>CISA официально <a href="https://www.cisa.gov/sites/default/files/publications/fact-sheet-implementing-phishing-resistant-mfa-508c.pdf">относит</a> их к уязвимым факторам,</li><li>Microsoft <a href="https://www.microsoft.com/en-gb/security/security-insider/intelligence-reports/10-essential-insights-from-the-microsoft-digital-defense-report-2024">описывает</a>, как их обходят AiTM, SIM‑swap и кража токенов.</li></ul><p>Почти половина компаний <a href="https://blog.hypr.com/press-releases/hypr-2024-state-of-passwordless-identity-assurance-report">пережила</a> взлом в 2024 году — в 9 из 10 случаев атакующие сначала пробивались в корпоративные аккаунты. Вместе с экспертами рассказываем, как правильно внедрить многофакторную аутентификацию, чтобы не пополнить список взломанных компаний.</p><h2>Что такое двухфакторная аутентификация и чем она отличается от многофакторной</h2><p><b>Двухфакторная аутентификация (2FA)</b> <a href="https://tproger.ru/articles/odin-raz-nedostatochno--dvuhfaktornaya-autentifikaciya-kak-norma-bezopasnosti">встречает</a> на входе в банковские приложения. Сначала вводите пароль, потом указываете код из СМС.</p><p>При обычном входе вы используете только пароль. При 2FA добавляется второй шаг проверки:</p><ul><li>код из СМС или приложения,</li><li>отпечаток пальца,</li><li>USB-ключ,</li><li>пуш-уведомление на телефон.</li></ul><p><b>Многофакторная аутентификация (MFA)</b> <a href="https://tproger.ru/articles/podtverdite-lichnost--kak-rabotaet-mnogofaktornaya-autentifikaciya-v-multifactor">работает</a> также, но проверок может быть больше двух. Например, банк запросит пароль, потом код из СМС, затем ответ на секретный вопрос.</p><p><i>Анна Храмцова, старший руководитель направления разработки продукта Dion, соавтор тг-канала </i><a href="https://t.me/DiagnosisAnalyst">Диагноз:Аналитик</a><i>:</i></p><blockquote>2FA — это частный, самый распространённый случай MFA. Когда говорят «MFA», часто подразумевают именно 2FA. А когда говорят о «более чем двух факторах» (3FA+), то имеют в виду системы с экстремально высоким уровнем риска. Для большинства сценариев, включая банковские приложения, 2FA выступает «золотым стандартом» и достаточной мерой.</blockquote><h2>Почему СМС-коды больше не гарантируют безопасность</h2><p>В 2025 году мошенники чаще обходят 2FA, где используются коды из СМС.</p><p>Самый распространённый способ — подмена SIM-карты. Злоумышленник приходит в салон связи с поддельными документами и восстанавливает вашу SIM-карту. Оператор блокирует симку, выдаёт новую мошеннику, и все СМС приходят ему. В России такие случаи <a href="https://ria.ru/20250425/rossija-2013313630.html">происходят</a> регулярно.</p><p>Второй способ — перехват СМС через уязвимости в протоколе SS7, который используют операторы связи для маршрутизации звонков и сообщений между сетями.</p><blockquote>SMS-коды — ненадежный 2-ой фактор аутентификации. Сегодня операции с копированием номеров и перехватом сообщений не столько редки и невозможны, как, скажем, 5 лет назад.</blockquote><p>Третий — социальная инженерия. Мошенники звонят от имени  техподдержки с просьбой продиктовать код из СМС для «проверки безопасности» или «отмены подозрительной операции».</p><p><b>Какие методы защиты работают</b></p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-09-23/3de07d0b-08bb-43f7-9a53-992b7de35025.jpg" alt="" /></figure><p><b>Приложения-аутентификаторы</b> генерируют временные коды. Google Authenticator, Яндекс.Ключ обновляют комбинации каждые 30 секунд. Перечисленные сервисы работает по TOTP — код синхронизирован между телефоном и сервером через общий секретный ключ. Перехватить код невозможно, потому что он не передаётся по сети.</p><p><b>Физические ключи безопасности</b> — это USB-устройства размером с флешку. YubiKey, Google Titan Key подключаются к компьютеру или телефону и подтверждают личность. Взломать такую защиту практически невозможно. Ключ проверяет подлинность сайта, поэтому не сработает на фишинговой копии.</p><p><b>Пуш-уведомления</b> отправляют запрос на подтверждение входа в мобильное приложение.</p><p><b>Биометрия </b>— отпечатки пальцев, распознавание лица. Смартфоны хранят эти данные в защищённом чипе.</p><p><i>Александр Шибаловский, CTO:</i></p><blockquote>В исключительных случаях используется 4 фактора: например, логин + динамический код + физический носитель ЭП + биометрия. Только ключ в замке провернуть не хватает для верности 🙂</blockquote><h2>Делать самим или купить готовое решение</h2><p>Разработка системы 2FA с нуля займёт минимум полгода работы команды из 3-4 человек. Это зарплаты, тестирование, исправление ошибок и постоянные обновления. Ответственность за каждую уязвимость ляжет на вас.</p><p>Анна Храмцова комментирует:</p><blockquote>Моя рекомендация для большинства организаций: начать с оценки готовых решений на рынке. Фокус следует сместить с вопроса «разрабатывать или подключать?» на вопросы:<br />1. Какой сторонний сервис лучше всего соответствует нашим техническим требованиям и бюджету?<br />2. Как правильно интегрировать его в нашу ИТ-инфраструктуру?<br />3. Как его плавно внедрить для пользователей, чтобы повысить безопасность, а не создать барьеры?</blockquote><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-09-23/94d6e310-3078-4bd8-971c-7cf2ee823e82.jpg" alt="" /></figure><blockquote>Интеграция 2FA/MFA — это в подавляющем большинстве случаев использование стороннего сервиса, а не разработка с нуля. Создание собственной защиты требует огромных ресурсов, глубокой экспертизы в безопасности и постоянного сопровождения. Также в России есть риски, связанные с возможным отключением облачных сервисов, поэтому преимущество на стороне on-premise решений.<br />Разрабатывать своё решение имеет смысл только в очень специфических случаях. Например, если работаете в закрытой инфраструктуре, где запрещено подключение к внешним сервисам, или у вас уникальные требования, которые ни один вендор не покрывает. Но даже тогда лучше брать open-source библиотеки вроде privacyIDEA или Keycloak и дорабатывать их, чем писать всё с нуля.</blockquote><p>Готовые решения делятся на три типа:</p><ul><li><b>SaaS </b>(Software as a Service — программа как услуга) работает через интернет на серверах разработчика. Вы платите за подписку, подключаете сервис за пару дней и забываете про технические вопросы.</li><li><b>On-premise</b> (на вашей территории) устанавливается на серверы компании. Вы полностью контролируете данные, но нужны свои администраторы для поддержки системы.</li><li><b>Open-source</b> (открытый код) можно скачать бесплатно и доработать под свои нужды.</li></ul><p>Большинству компаний подходят SaaS-решения: быстрый старт, предсказуемые расходы и команда профессионалов, которая следит за безопасностью 24/7. On-premise имеет смысл при жёстких требованиях регуляторов или работе с гостайной.</p><p>Александр Шибаловский считает:</p><blockquote>Для крупных систем с высокими требованиями к безопасности целесообразнее не отдавать данные пользователей за контур компании, соответственно возможные варианты — разработать свой модуль или установить стороннее решение on-premises. Для быстрого запуска и небольших систем удобнее использовать SaaS.</blockquote><h2>Типичные ошибки при внедрении MFA и как их не допустить</h2><p>Проблемы чаще возникают у компаний, которые подключают 2FA только потому, что так требуют регуляторы или партнёры. Ставят галочку в отчёте и успокаиваются.</p><p>Распространённые ошибки:</p><ul><li><b>Нет запасных вариантов входа</b>. Сотрудник разбил телефон с приложением-аутентификатором, и всё — он не может войти в рабочие системы.</li><li><b>Один метод для всех</b>. Директору и стажёру предлагают одинаковую защиту. Хотя у директора доступ к финансам, а у стажёра — только к корпоративному чату.</li><li><b>Сложность вместо удобства</b>. Сотрудники вводят три разных пароля и ждут СМС по пять минут.</li><li><b>Забыли про гостевые аккаунты</b>. Подрядчики заходят в систему по старинке через логин-пароль, пока постоянный персонал мучается с токенами.</li></ul><blockquote>Про ошибки можно отдельную статью написать. Из очевидных: использование СМС, недостаточная энтропия при генерации секретов, неограниченное число попыток входа, игнорирование защиты сессии, слабые или однотипные резервные коды, отсутствие резервных способов восстановления доступа.</blockquote><h2>Когда два фактора достаточно, а когда нужно больше</h2><p>Двухфакторной защиты достаточно для личной почты и соцсетей. Уперевшись в 2FA, взломщики пойдут искать жертву попроще. Добавьте к паролю код из приложения — и спите спокойно.</p><blockquote>Выбор 2FA или MFA зависит от нескольких факторов:<br />Первый — стандарты и регуляторные требования (ГОСТы по идентификации и авторизации, финансовому сектору + требования ФСТЭК РФ + стандарты NIST SP 800 и др.). Второй — решение компании-поставщика услуги. Третий — решение пользователя (если компания-поставщик решила предоставить ему возможность выбора).<br />Для массовых пользователей (Госуслуги, банки, почта, соцсети) стандартом остаётся 2FA. Защита 3+ факторами встречаются преимущественно в сфере критичной инфраструктуры и крупных корпоративных решений. <br /><br /></blockquote><p>Компании часто перегибают палку с безопасностью. Например, бухгалтер заходит в систему раз в день посмотреть остатки и каждый раз проходит три проверки. В итоге сотрудники начинают искать обходные пути.</p><blockquote>Самая частая ошибка — внедрять 2FA как формальность, не продумывая пользовательский опыт, из-за чего пользователи саботируют систему. Часто забывают про резервные методы аутентификации, и когда пользователь теряет телефон или токен, компания теряет доступ к критичным системам на часы или дни.</blockquote><h2>Что делать, если пользователи саботируют защиту</h2><p>Сотрудники обходят двухфакторную защиту через общие аккаунты, записывают резервные коды на стикерах или просят коллег войти под их учёткой. Люди саботируют MFA не из вредности — им просто неудобно.</p><p>Анна Храмцова комментирует:</p><blockquote>Внедрение второго фактора ради второго фактора — это частая ошибка. Приступая к интеграции 2FA-решения, необходимо озадачиться вопросами потребностей бизнеса, требований ИБ и распространённых векторов атаки.</blockquote><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-09-23/3578adf4-2f95-4beb-a056-826a551a5b10.jpg" alt="" /></figure><p><b>Как сделать безопасность удобной</b></p><p><b>1.</b> Начните с малого.</p><p>Включите 2FA сначала для критичных систем — почты руководства, доступа к финансам, админки сайта. Когда сотрудники привыкнут, расширяйте охват.</p><p><b>2.</b> Дайте выбор</p><p>Кто-то предпочитает приложения-аутентификаторы, кому-то проще с пуш-уведомлениями. Предложите 2-3 варианта — люди охотнее используют то, что выбрали сами.</p><p><b>3.</b> Упростите вход для доверенных устройств</p><p>Настройте систему так, чтобы с рабочего компьютера в офисе второй фактор запрашивался раз в неделю, а не при каждом входе.</p><p><b>4.</b> Объясните выгоду</p><p>Вместо «компания требует» скажите «ваш аккаунт защищён от взлома, даже если пароль украдут».</p><p><b>5.</b> Решите технические проблемы заранее.</p><p>Выдайте резервные способы входа, настройте синхронизацию времени для кодов, подготовьте инструкции с картинками.</p><p>Чем меньше человек тратит времени на борьбу с системой, тем охотнее её использует.</p><blockquote>При выборе важно смотреть не только на функционал, но и на соответствие требованиям вашей отрасли — например, наличие сертификата SOC2, ISO 27001, поддержка GDPR. Также стоит учитывать удобство для конечных пользователей: если система слишком сложная, её будут обходить или отключать. Не забудьте проверить, как сервис ведёт себя при масштабировании и какие есть варианты восстановления доступа — это критично при сбоях.</blockquote><h2>Чек-лист для успешного внедрения 2FA и MFA</h2><p><b>Подготовка</b>:</p><ul><li>Составьте список всех систем, где нужна защита (почта, CRM, админка сайта).</li><li>Проверьте, какие методы 2FA поддерживает каждая система.</li><li>Определите критичность доступа: где хватит СМС, где нужен аппаратный ключ.</li></ul><p><b>Тестирование</b>:</p><ul><li>Настройте 2FA сначала для одного отдела.</li><li>Проверьте работу резервных кодов — распечатайте и сохраните в сейфе.</li><li>Убедитесь, что служба поддержки умеет сбрасывать 2FA.</li></ul><p><b>Запуск</b>:</p><ul><li>Начните с добровольного подключения — дайте бонусы первым пользователям.</li><li>Настройте автоматическое напоминание тем, кто не включил защиту через месяц.</li></ul><p>После запуска отслеживайте процент подключивших 2FA, фиксируйте проблемы пользователей и дорабатывайте инструкции. Через 1-2 месяца сделайте 2FA обязательной.</p>]]></content:encoded>
    </item>
    <item>
      <title>Вопросы на собеседовании по дизайну систем и ответы на них + список обучающих материалов</title>
      <link>https://tproger.ru/articles/voprosy-na-sobesedovanii-po-dizajnu-sistem-i-otvety-na-nih---spisok-obuchayushhih-materialov</link>
      <comments>https://tproger.ru/articles/voprosy-na-sobesedovanii-po-dizajnu-sistem-i-otvety-na-nih---spisok-obuchayushhih-materialov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даровская Маша]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/voprosy-na-sobesedovanii-po-dizajnu-sistem-i-otvety-na-nih---spisok-obuchayushhih-materialov</guid>
      <description><![CDATA[<p>Готовитесь к собеседованию по системному дизайну? Разбираем популярные вопросы, эталонные ответы и лучшие ресурсы для подготовки.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/voprosy-na-sobesedovanii-po-dizajnu-sistem-i-otvety-na-nih---spisok-obuchayushhih-materialov">Вопросы на собеседовании по дизайну систем и ответы на них + список обучающих материалов</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[DevOps]]></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[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 22 Aug 2025 10:00:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>Это вторая часть перевода <a href="https://dev.to/somadevtoo/system-design-basics-load-balancing-algorithms-2559">статьи</a> автора <a href="https://dev.to/somadevtoo">Сома</a> с
портала Dev.to с комментариями экспертов. В этот раз тема — вопросы по проектированию систем, которые могут поджидать на собеседовании.</p><h2>Какой алгоритм балансировки
нагрузки вы будете использовать для обработки запросов в масштабе крупной
инфраструктуры?</h2><p>Для крупномасштабной инфраструктуры можно выбрать Weighted Round Robin.</p><p>Почему:</p><ul><li>Этот алгоритм сочетает простоту классического Round Robin с возможностью учитывать разные мощности серверов.</li><li>Он особенно полезен в гетерогенных кластерах, где сервера отличаются по вычислительным ресурсам, пропускной способности и производительности.</li></ul><p>Как это работает:</p><ol><li>Каждому серверу назначается вес — числовой коэффициент, отражающий его производительность. Пример: Сервер A — вес 5, Сервер B — вес 3, Сервер C — вес 2. <b>Виктор Карпов, Software Engineer &amp; Educator</b>, автор канала <a href="https://t.me/coding_interviews">coding_interviews</a>, отмечает, что в реальной жизни веса часто определяются либо по CPU/памяти, либо по результатам бенчмарков.</li><li>Алгоритм формирует очередь распределения запросов пропорционально весам: A, A, A, A, A, B, B, B, C, C.</li><li>Запросы распределяются по этой очереди в цикле.</li><li>После последнего сервера очередь повторяется.</li></ol><p>Плюсы:</p><ul><li>Простая реализация и настройка.</li><li>Эффективное распределение нагрузки с учётом мощности серверов.</li></ul><p>Минусы:</p><ul><li>Не учитывает текущую загрузку серверов, поэтому в динамических сценариях его лучше комбинировать с мониторингом и адаптивными алгоритмами.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-08-15/efb7522c-52cf-4238-800b-1272bcd4f248.png" alt="" /></figure><p>Однако выбор алгоритма балансировки нагрузки
всегда определяется спецификой архитектуры, типом трафика и целями системы.</p><p>Например, Least Connections отлично подходит,
если важно учитывать текущую активность серверов и избегать перегрузки
отдельных узлов, а адаптивные алгоритмы на основе метрик в реальном времени
позволяют динамически перераспределять нагрузку, реагируя на изменения в
производительности.</p><p>На практике, в крупных инфраструктурах часто применяется гибридный подход:</p><ul><li>Глобальная балансировка нагрузки (Global Load Balancing) используется для распределения трафика по географическим регионам и дата-центрам.</li><li>На следующем уровне — локальные балансировщики с алгоритмами вроде Weighted Round Robin, Least Connections, Consistent Hashing или наименьшего времени отклика для распределения запросов внутри конкретного кластера.</li></ul><p>Такой многоуровневый дизайн позволяет объединить производительность, устойчивость и масштабируемость, а также снизить риск единичных точек отказа.</p><h2>В чём разница между методом наименьшего количества соединений и циклическим алгоритмом? В каких случаях следует выбрать один из них?</h2><p>Методы Least Connections и Round Robin — два популярных подхода к балансировке нагрузки, но они решают задачу по-разному.</p><p>Round Robin распределяет входящие запросы по серверам поочередно, циклически проходя весь пул. Он предполагает, что все серверы обладают одинаковой производительностью, а запросы требуют примерно одинакового времени на обработку. Такой алгоритм прост, предсказуем, и отлично подходит для однородных инфраструктур.</p><p>Least Connections, напротив, направляет новый запрос на сервер с наименьшим количеством активных соединений в данный момент. Это позволяет более гибко реагировать на неравномерную нагрузку, и особенно полезно, если время обработки запросов сильно варьируется или есть длительные соединения.</p><p>Виктор Карпов, Software Engineer &amp; Educator, автор канала <a href="https://t.me/coding_interviews">coding_interviews</a>, комментирует: «<i>Least Connections хуже работает при очень коротких запросах и
высокой скорости создания/закрытия соединений</i>».</p><p>Когда использовать:</p><ul><li>Если нагрузка и мощности серверов однородны — выбирайте Round Robin.</li><li>Если нагрузка переменная или есть долгоживущие соединения — лучше подойдёт Least Connections, так как он помогает избежать перегрузки отдельных серверов.</li></ul><h2>Что такое липкие сессии (sticky sessions) в балансировке нагрузки?
Каковы их преимущества и недостатки?</h2><p>Липкие сессии или <i>sticky sessions</i> (также известные как привязка сессий), — это метод
балансировки нагрузки, при котором все запросы от конкретного клиента
направляются на один и тот же сервер, обрабатывающий его первый запрос.</p><p>Виктор Карпов, Software Engineer &amp;
Educator, автор канала <a href="https://t.me/coding_interviews">coding_interviews</a>, советует не забывать о cookie-based stickiness и IP
hash: «<i>sticky sessions плохо работают при использовании
auto-scaling — новые ноды не получают трафик от существующих пользователей</i>».</p><p>Обычно это реализуется с помощью
уникального идентификатора сеанса, который связывается с конкретным сервером.
Таким образом, сервер «запоминает» пользователя и обслуживает его до завершения
сессии.</p><p>Преимущества:</p><ul><li>Поддержка состояния для приложений, которые не рассчитаны на работу в stateless-режиме.</li><li>Стабильный и предсказуемый пользовательский опыт для сеансов, которые полагаются на серверные данные.</li><li>Особенно полезно, если данные сеанса хранятся в памяти сервера, а не в общей базе данных.</li></ul><p>Недостатки:</p><ul><li>Возможность неравномерного распределения нагрузки, если у некоторых пользователей сеансы длительные или ресурсоёмкие.</li><li>Сложности с масштабированием и отказоустойчивостью — при падении сервера все закреплённые за ним сессии прерываются.</li><li>Увеличение зависимости от конкретного сервера, что снижает гибкость архитектуры.</li></ul><p>При этом, как прокомментировал руководитель разработки RacingTech команды — Moshim Racing Владислав Масунов, sticky sessions — не всегда проблема:</p><blockquote>Мы использовали sticky sessions в большом продакшне, и никаких проблем не испытывали с auto-scaling или выходом из строя серверов из-за сбоя или отключением их от трафика  из-за необходимых работ. <br /><br />В API gateway просто добавили «session router», который перераспределял текущий трафик между серверами, бесшовно</blockquote><p>Современный подход — минимизировать использование sticky sessions, переходя на stateless-приложения с хранением данных в распределённых кэшах или базах данных. Это позволяет балансировщикам гибко распределять трафик и повышает устойчивость системы.</p><p>Как отмечает <a href="https://t.me/dmazaytsev">Дмитрий Зайцев</a>, CTO Flocktory, программный директор DevOpsConf:</p><blockquote>Несмотря на то, что знать и понимать надо практически весь ландшафт, скорее всего вы будете разговаривать про какой-то конкретный кусочек в большой системе. В моём опыте это обычно либо проектирование системы и её API, либо проектирование отказоустойчивого решения уровня “несколько датацентров”. <br /><br />В проектировании API важно обозначать рамки, в которых вы работаете, ваши ограничения. Какие данные, сколько их, какие юзкейсы для системы. Не забыть про нефункциональные требования — какая нагрузка, какие цели по доступности. Потом уже идти к конкретным сервисам и их контрактам. <br /><br />При проектировании отказоустойчивого решения уделите основное внимание вашим данным, которые нужно разложить по датацентрам и как-то их читать — консистентно и быстро. Вспомните основные базы данных для таких решений, какие у них гарантии и какие ограничения. Это точно поможет в собеседованиях.</blockquote><h2>Лучшие ресурсы для подготовки к собеседованиям по системному проектированию</h2><p>Ниже — подборка проверенных книг, курсов и онлайн-платформ, которые помогут глубоко изучить темы системного проектирования и успешно пройти технические собеседования.</p><p>1. <a href="https://www.designgurus.io/?aff=84Y9hP">DesignGuru — Grokking System Design</a>. Интерактивная обучающая платформа с практическими упражнениями и разбором реальных сценариев. Один из самых популярных курсов по системному проектированию, который структурировано объясняет подходы, паттерны и архитектурные решения.</p><p>2. <a href="http://codemia.io">Codemia.io</a>. Отличная платформа для тренировки навыков проектирования систем. Содержит более 120 задач, включая бесплатные, с чёткой структурой и возможностью пошагового решения.</p><p>3. <a href="https://www.amazon.de/dp/B08CMF2CQF?linkCode=gg2&amp;tag=javamysqlanta-20">Алекс Сю — Собеседование по проектированию систем</a>. Книга, которая разъясняет ключевые концепции, стратегии и часто встречающиеся сценарии на интервью, а также даёт практические советы по подготовке.</p><p>4. <a href="https://www.amazon.de/dp/1449373321?linkCode=gg2&amp;tag=javamysqlanta-20">Мартин Клеппманн — Проектирование приложений с большими объёмами данных</a> (Designing Data-Intensive Applications). Глубокое руководство по созданию масштабируемых, надёжных и отказоустойчивых систем с упором на архитектурные принципы. Виктор Карпов, Software Engineer &amp; Educator, автор канала <a href="https://t.me/coding_interviews">coding_interviews</a>, отмечает, что эта книга — сложная, и больше подойдёт тем, кто уже имеет опыт в дизайн-системах.</p><p>5. <a href="https://leetcode.com/explore/learn/card/system-design">LeetCode — раздел System Design</a>. Известная платформа для подготовки к техническим собеседованиям. Раздел по системному проектированию содержит подборку практических задач и обсуждений.</p><p>6. <a href="https://github.com/donnemartin/system-design-primer">System Design Primer на GitHub</a>. Открытый и постоянно обновляемый репозиторий с огромным количеством ссылок на статьи, книги, схемы и видео по системному проектированию.</p><p>7. <a href="https://bit.ly/3Mnh6UR">Educative — курсы по системному проектированию</a>. Интерактивное обучение с возможностью практиковаться прямо в браузере. Предлагают кейсы, паттерны и архитектурные задания для закрепления материала.</p><p>8. <a href="https://highscalability.com/">High Scalability Blog</a> — Блог с разборами архитектур высоконагруженных систем и примеров из практики крупных веб-платформ.</p><p>9. YouTube-каналы:</p><ul><li>Gaurav Sen — понятные визуализации архитектурных решений и алгоритмов.</li><li>Tech Dummies — подробные разборы сценариев системного проектирования.</li></ul><p>Дмитрий Зайцев также советует посмотреть такие русскоязычные видео:</p><p><a href="https://www.youtube.com/watch?v=9_8ShTF6aQA">https://www.youtube.com/watch?v=9_8ShTF6aQA</a></p><p><a href="https://www.youtube.com/watch?v=Wh5Ya6UFG1k">https://www.youtube.com/watch?v=Wh5Ya6UFG1k</a></p><p><a href="https://www.youtube.com/watch?v=jUbOm0B-eKQ">https://www.youtube.com/watch?v=jUbOm0B-eKQ</a></p><p><a href="https://www.youtube.com/watch?v=RAMWRgt-3G0">https://www.youtube.com/watch?v=RAMWRgt-3G0</a></p><p><a href="https://www.youtube.com/watch?v=popkBBjbAv8">https://www.youtube.com/watch?v=popkBBjbAv8</a></p><p>10. <a href="https://bytebytego.com/?fpr=javarevisited">ByteByteGo</a>. Книга и видеокурс от Алекса Сю, охватывающие материал из его предыдущих томов и дополняемые новыми главами. Один из лучших ресурсов для структурированной подготовки.</p><p>11. <a href="https://www.tryexponent.com/?ref=javinpaul2">Exponent</a>. Платформа для целенаправленной подготовки к собеседованиям в крупных IT-компаниях (FAANG). Предлагает курсы по системному проектированию, мок-интервью и разборы кейсов.</p>]]></content:encoded>
    </item>
    <item>
      <title>Систем дизайн: алгоритмы балансировки нагрузки</title>
      <link>https://tproger.ru/articles/sistem-dizajn--algoritmy-balansirovki-nagruzki</link>
      <comments>https://tproger.ru/articles/sistem-dizajn--algoritmy-balansirovki-nagruzki?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даровская Маша]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/sistem-dizajn--algoritmy-balansirovki-nagruzki</guid>
      <description><![CDATA[<p>Готовитесь к собеседованию? Узнайте все об алгоритмах балансировки нагрузки — основе горизонтального масштабирования и высоконагруженных систем. Перевод статьи с Dev.to с экспертными комментариями.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/sistem-dizajn--algoritmy-balansirovki-nagruzki">Систем дизайн: алгоритмы балансировки нагрузки</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[5g]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 22 Aug 2025 08:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>Мы подготовили перевод <a href="https://dev.to/somadevtoo/system-design-basics-load-balancing-algorithms-2559">статьи</a> автора <a href="https://dev.to/somadevtoo">Сома</a> с портала Dev.to с комментариями экспертов.</p><p>Если вы готовитесь к собеседованиям по системному проектированию, обязательно уделите внимание изучению алгоритмов балансировки нагрузки. Наряду с API Gateway, кэшированием, ограничением скорости запросов и распределёнными очередями сообщений, это одна из ключевых основ системного проектирования, которую стоит освоить в совершенстве.</p><p>В современном мире облачных вычислений, распределённых систем и сетевых архитектур балансировка нагрузки играет критически важную роль, обеспечивая оптимальную производительность, надёжность и масштабируемость сервисов.</p><p>Это также одно из обязательных условий горизонтального масштабирования: чтобы реализовать его, нужен балансировщик нагрузки, распределяющий трафик между несколькими узлами или серверами.</p><p>Хотя многие разработчики в целом представляют, что такое балансировка нагрузки, далеко не все понимают, как именно она работает и что собой представляет алгоритм балансировки нагрузки. Например, не каждый знает про простой алгоритм циклического перебора (round robin), при котором одно сообщение отправляется на один сервер, а следующее — на другой. Между тем существуют и более сложные методы балансировки, о которых большинство и не догадывается. В этой статье мы подробно разберём их.</p><p>Это также одна из ключевых тем на собеседованиях по системному проектированию. Интервьюер может задать вам вопросы о базовых концепциях или попросить продемонстрировать, как вы применяете балансировщики нагрузки и алгоритмы балансировки при проектировании масштабируемых систем — например, таких, как YouTube или Netflix.</p><p>Если вы готовитесь к таким собеседованиям и хотите глубже погрузиться в системное проектирование, стоит обратить внимание на ресурсы ByteByteGo, Design Guru, Exponent, Educative, Codemia.io и Udemy — на них есть множество качественных курсов и материалов.</p><p>Кроме того, существует отличный шаблон проектирования системы, в котором наглядно показаны ключевые компоненты архитектуры программного обеспечения — такие как API Gateway и Load Balancer. Его можно использовать в качестве основы при проектировании практически любой системы.</p><p>Виктор Корейша, автор подкаста <a href="https://t.me/kodakodacast">«Кода Кода»</a> комментирует:</p><blockquote>На схеме и далее говорится о балансировке нагрузки, только как о распределении входящих унарных запросов. Это важная тема, которую стоит разобрать. Но для полноты картины отмечу, что если вы будете выстраивать систему, балансирующую нагрузку, которая представляет собой установку долгоживущих стримов, то есть ещё ряд особенностей, которые не упоминаются в статье. Кроме того, когда мы говорим о межсервисном взаимодействии, у нас появляется гораздо больше инструментов и гораздо больше требований, которые я также рекомендую изучить отдельно.</blockquote><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-08-22/90c61e90-079d-4b9c-b1ad-04687c63bc0b.png" alt="" /></figure><h2>8 алгоритмов балансировки нагрузки, которые необходимо знать
на собеседованиях по проектированию систем</h2><h2>1. Round Robin (Круговая
система)</h2><p>Алгоритм Round Robin циклически и равномерно
распределяет входящие запросы между серверами в пуле. Он проходит по списку
серверов последовательно — начиная с первого и заканчивая последним — а затем
повторяет цикл, обеспечивая справедливое распределение трафика.</p><p>Преимущества:</p><ul><li>Простая реализация.</li><li>Равномерное распределение запросов.</li><li>Хорошо подходит для серверов одинаковой мощности.</li><li>Предсказуемое поведение.</li></ul><p>Недостатки:</p><ul><li>Не учитывает текущую загрузку серверов или сложность отдельных запросов, что может привести к дисбалансу в реальных сценариях.</li></ul><p>Когда использовать: Round Robin наиболее эффективен в однородных серверных средах, где оборудование одинаковое, а входящие запросы примерно равны по сложности и требованиям к ресурсам.</p><p>Вот наглядная диаграмма, демонстрирующая работу алгоритмов Round Robin:</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-08-22/86bbc07a-ba54-4540-8885-2502393fc57c.png" alt="" /></figure><p>Виктор Корейша, Руководитель направления Managed Services в Ozon и автор подкаста <a href="https://t.me/kodakodacast">«Кода Кода»</a>:</p><blockquote>При проектировании систем всегда важно смотреть не только на работу системы в стабильном состоянии, но и на ситуации сбоев. Или наоборот, обсуждать, как работает система при масштабировании — увеличении количества серверов. <br /><br />Если вы используете RR при увеличении количества серверов, то они просто встают «в конец очереди» и новые запросы начинают лететь туда. Это значит, что если запросов не много, но они «тяжелые», а новые сервера не сразу станут такими же нагруженными, как старые.<br /><br />Пример: каждый из трёх серверов обрабатывает сейчас 10 запросов (долгих). В нашу систему приходит 4 новых запроса в секунду. Мы добавляем четвёртый сервер. После первой секунды распределение нагрузки станет 11-11-11-1. Это может показаться пустяком при большом количестве запросов, но если есть зависимость, то мы получим цикл, в котором «старые» сервера всегда будут более нагружены, чем новые. <br /><br />Другая проблема нас ожидает при ретраях — каждая новая попытка клиента отправить тот же самый запрос попадет на случайный сервер. А это значит, что мы не гарантируем, что один и тот же запрос не попробует обработаться одновременно на двух серверах. Это может вызывать проблемы в некоторых кейсах.</blockquote><h2>2. Least Connections (Наименьшее количество соединений)</h2><p>Алгоритм Least Connections направляет входящие запросы на сервер, у которого в данный момент меньше всего активных соединений. Такой подход помогает распределять нагрузку более равномерно и предотвращает перегрузку отдельных узлов.</p><p>Преимущества:</p><ul><li>Учитывает текущее число соединений на сервере, а значит, гибче, чем простой Round Robin.</li></ul><p>Недостатки:</p><ul><li>Не оценивает фактическую нагрузку в реальном времени и не учитывает сложность самих запросов.</li></ul><p>Как отмечает Виктор Карпов, Software Engineer &amp; Educator, автор канала <a href="https://t.me/coding_interviews">coding_interviews</a>: «<i>в случае долгоживущих соединений (например, WebSocket) метрика "число соединений" может вводить в заблуждение</i>».</p><p>Когда использовать: метод подходит для неоднородных серверных инфраструктур (разные мощности серверов), если входящие запросы примерно равны по сложности.</p><p>Вот наглядная диаграмма, показывающая, как алгоритмы наименьшего количества соединений распределяют нагрузку:</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-08-22/1f2172b0-0a40-4de1-b589-a695f875232c.png" alt="" /></figure><p>Виктор Корейша, Руководитель направления Managed Services в
Ozon и автор подкаста <a href="https://t.me/kodakodacast">«Кода Кода»</a>:</p><blockquote>Существенное значение имеет то, как именно считаются соединения. При использования этого алгоритма у вас могут быть проблемы с горизонтальным масштабированием самого балансировщика. Потому что если каждый балансировщик считает соединения независимо, то такой красивой картинки как выше уже не получится. Обычно это решается тем, что информацию о количестве соединений передают сами сервера. Важно, что тут учитываются только соединения, но не их параметры. <br /><br />Например, если к одному из серверов пришёл один запрос, ответ на который выжирает всю сеть, то вы всё равно будете стараться отправлять туда новые запросы. В худшем случае это может привести к ситуации, когда все новые запросы летят в один сервер, который не может на них ответить.</blockquote><h2>3. Weighted Round Robin (Взвешенная круговая система)</h2><p>Алгоритм Weighted Round Robin учитывает разную
производительность серверов, присваивая каждому вес в зависимости от его
мощности или доступных ресурсов.</p><p>Запросы распределяются пропорционально этим
весам, что позволяет более мощным серверам обрабатывать большую долю трафика, а
менее производительным — меньшую.</p><p>Преимущества:</p><ul><li>Учитывает различную производительность серверов.</li><li>Прост в реализации и предсказуем в работе.</li><li>Подходит для масштабирования без сложных расчётов.</li></ul><p>Недостатки:</p><ul><li>Не учитывает динамическую загрузку в реальном времени.</li><li>При резком изменении нагрузки возможна временная разбалансировка.</li></ul><p>Когда использовать: подходит для инфраструктур
с неоднородными серверами, где нужно учитывать их разную мощность, но нагрузка
относительно предсказуема.</p><p>Виктор Корейша, Руководитель направления Managed Services в
Ozon и автор подкаста <a href="https://t.me/kodakodacast">«Кода Кода»</a>:</p><blockquote>Если вы расскажите об этом алгоритме на собеседовании, то, вероятно, последует вопрос — а как вы будете определять эти веса. И ответ на него очень не тривиален, потому что механизм определения зависит не только от типа нагрузки, но и от статистики ее распределения, как по запросам, так и по времени.</blockquote><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-08-22/fd61138c-ac3e-4540-86ad-c8a0c2d66684.png" alt="" /></figure><h2>4. Weighted Least Connections (Взвешенные наименьшие связи)</h2><p>Алгоритм Weighted Least Connections сочетает в себе подходы Least
Connections и Weighted Round Robin. Он направляет входящие
запросы на сервер с наименьшим отношением числа активных соединений к его весу,
где вес отражает производительность или доступные ресурсы узла.</p><p>Это позволяет одновременно учитывать текущую
загрузку и мощность сервера, добиваясь более точного распределения трафика.</p><p>Преимущества:</p><ul><li>Балансирует нагрузку с учётом как мощности, так и текущего состояния серверов.</li><li>Более эффективно использует ресурсы в неоднородных средах.</li><li>Подходит для динамически меняющейся нагрузки.</li></ul><p>Недостатки:</p><ul><li>Реализация сложнее, чем у простых алгоритмов.</li><li>Требует точных данных о весах и активных соединениях.</li></ul><p><b>Когда
использовать</b>: идеален для инфраструктур с разной
мощностью серверов и неравномерным распределением запросов, особенно если
нагрузка часто меняется в реальном времени</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-08-22/cb006279-41c0-4aa8-891a-ad5476d118ac.png" alt="" /></figure><h2>5. IP Hash (IP-хэш)</h2><p>Алгоритм IP Hash используется для балансировки
нагрузки с сохранением постоянного соответствия между клиентом и сервером. Он
вычисляет хэш на основе IP-адреса клиента (или комбинации IP-адреса клиента и
назначения) и по результату хэш-функции выбирает сервер, на который будет
отправлен запрос.</p><p>Это гарантирует, что все запросы от одного и
того же клиента будут направляться на один и тот же сервер, что особенно важно
для приложений, которые хранят состояние сессии на стороне сервера.</p><p>Важно замечание от CTO клиентского сервиса
СберСтрахование Жизни Максима Чернухина: «<i>Для микросервисов это скорее антипаттерн, поэтому я бы не рекомендовал использовать этот алгоритм без
понимания, что он вам даёт</i>».</p><p>Преимущества:</p><ul><li>Обеспечивает устойчивое закрепление клиента за сервером (session persistence).</li><li>Упрощает работу с приложениями, где нельзя или неудобно хранить сессии централизованно.</li><li>Простая реализация, не требует отслеживания соединений в реальном времени.</li></ul><p>Недостатки:</p><ul><li>Возможна перегрузка отдельных серверов, если большое количество клиентов находится в одном диапазоне IP-адресов.</li><li>При смене IP у клиента закрепление нарушается.</li><li>Изменение пула серверов (добавление или удаление) может перераспределить клиентов, что приведёт к потере сессий.</li></ul><p>Когда использовать: подходит, если важно
закрепить клиента за конкретным сервером, а IP-адреса пользователей стабильны.
Часто применяется в приложениях с отслеживанием состояния, например,
интернет-магазинах или банковских сервисах.</p><p>Виктор Корейша, Руководитель направления Managed Services в
Ozon и автор подкаста <a href="https://t.me/kodakodacast">«Кода Кода»</a>:</p><blockquote>При изменении количества доступных серверов хеш будет пересчитан для всех. Почему-то, это часто не учитывают. А если наша система хранит какие-то состояния, то это может стать большой проблемой. <br /><br />Представим, что мы выбрали такой алгоритм, т.к. при первом обращении клиента выкачиваем какие-то данные из базы и дальше приравниваем их в памяти. И чтобы минимизировать нагрузку на базу, мы придумали отправлять запросы одного и того же клиента (по IP) в один и тот же сервер. Но это значит, что при «мигании» сервера или сети мы как-минимум дважды должны будем пересоздать все сессии, для всех активных клиентов. То есть получить ту самую нагрузку, которую мы пытались избегать, но внезапно. То есть сэкономить на серверах для БД мы уже не можем — мы всегда должны держать полный запас. <br /><br />Это только один из примеров того, что этот алгоритм часто не решает тех проблем, из-за которых на него переходили. Я не говорю о том, что так всегда, но чем сложнее алгоритм балансировки, тем больше корнер-кейсов нам важно учесть</blockquote><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-08-22/933f40f2-ece8-45de-bda5-7550fccda9aa.png" alt="" /></figure><h2>6. Наименьшее время отклика (Least Response Time)</h2><p>Алгоритм Least Response Time выбирает сервер
для нового запроса, основываясь сразу на двух показателях:</p><ol><li>Количество активных подключений на сервере.</li><li>Среднее время отклика сервера.</li></ol><p>Балансировщик нагрузки отдает приоритет тем серверам, которые обрабатывают запросы быстрее и при этом менее загружены по количеству соединений. Это делает алгоритм особенно полезным для оптимизации производительности и повышения качества обслуживания пользователей.</p><p>Преимущества:</p><ul><li>Учитывает не только загруженность по соединениям, но и фактическую скорость работы сервера.</li><li>Повышает отзывчивость системы, улучшая пользовательский опыт. Хорошо подходит для динамических сред с неоднородными серверами.</li></ul><p>Недостатки:</p><ul><li>Более сложная реализация по сравнению с простыми алгоритмами вроде Round Robin или Least Connections.</li><li>Требует постоянного мониторинга метрик времени отклика, что может увеличить нагрузку на балансировщик.</li></ul><p>Когда использовать: идеален для систем, где скорость реакции критична, например, в стриминговых сервисах, финансовых приложениях, онлайн-играх или e-commerce-платформах, где задержки напрямую влияют на удовлетворенность пользователей.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-08-22/8ae8d9d1-a56b-433f-b2b9-c0e0d297d2a0.png" alt="" /></figure><p>Виктор Корейша, Руководитель направления Managed Services в
Ozon и автор подкаста <a href="https://t.me/kodakodacast">«Кода Кода»</a>:</p><blockquote>Посчитать время отклика — не такая тривиальная задача, как
кажется. Если смотреть на время, например, последнего успешного запроса, то мы
можем получить какой-нибудь выброс, после которого большое количество запросов
пойдет на сервер, который единожды ответил быстро. Если смотреть, например, на
p99, то тут вмешивается другая проблема — окно, по которому мы собираем эту
статистику. Чем оно больше, тем хуже мы реагируем на всплески; а чем меньше,
тем менее точную статистику мы получаем. <br /><br />Другая
сложность — сбор и хранение этой статистики. А еще тот факт, что статистика
всегда будет «запаздывать» — мы же смотрим не нагрузку в моменте, а то, какие
были ответы в некотором прошлом.</blockquote><h2>7. Случайный (Random)</h2><p>Алгоритм Random распределяет входящие запросы
случайным образом между серверами в пуле, без учета их текущей нагрузки,
мощности или времени отклика.</p><p>Подход прост в реализации и не требует сбора
метрик о состоянии серверов. Он часто используется как резервная стратегия или
в случаях, когда система должна работать с минимальной логикой распределения.</p><p>Преимущества:</p><ul><li>Очень простая и быстрая реализация.</li><li>Не требует мониторинга серверов или хранения статистики.Может быть полезен как временное решение или fallback-алгоритм при сбое основной логики балансировки.</li></ul><p>Недостатки:</p><ul><li>Не учитывает текущую загруженность серверов, что может привести к перегрузке отдельных узлов.</li><li>Эффективность сильно зависит от равномерности случайного распределения и однородности серверов.</li></ul><p>Когда использовать: подходит для небольших систем с одинаковыми по характеристикам серверами, тестовых сред или как запасной механизм при отказе более сложных алгоритмов.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-08-22/119f7ddb-4e3d-4615-87be-9952a4f98784.png" alt="" /></figure><p>Виктор Корейша, Руководитель направления Managed Services в
Ozon и автор подкаста <a href="https://t.me/kodakodacast">«Кода Кода»</a>:</p><blockquote>При большом количестве запросов и едином балансировщике
работает почти так же, как RR. Но вот если балансировщиков много или запросов
мало, то статистика может быть весьма неожиданной.</blockquote><h2>8. Наименьшая
пропускная способность (Least Bandwidth)</h2><p>Алгоритм Least Bandwidth предназначен для
распределённых систем, где ключевым фактором выступает не только вычислительная
нагрузка, но и сетевые ресурсы. Он направляет новые запросы на сервер, который
в данный момент потребляет минимальную долю доступной пропускной способности
сети.</p><p>Такой подход особенно полезен в
высоконагруженных системах с интенсивной передачей данных — например, в
видеостриминге, CDN, системах онлайн-игр и облачных сервисах хранения.</p><p>Виктор Карпов, Software Engineer &amp; Educator, автор канала <a href="https://t.me/coding_interviews">coding_interviews</a>: «<i>Least Bandwidth подходит для балансировщиков
L7, где есть доступ к информации о размере передаваемых данных</i>».</p><p>Преимущества:</p><ul><li>Учитывает сетевую нагрузку, а не только вычислительные ресурсы.</li><li>Помогает предотвратить узкие места в сети и задержки передачи данных.</li><li>Обеспечивает более стабильную работу при пиковых нагрузках на канал.</li></ul><p>Недостатки:</p><ul><li>Требует постоянного мониторинга сетевой статистики, что усложняет реализацию.</li><li>Может быть избыточен для систем с небольшими объёмами передаваемых данных.</li></ul><p>Когда использовать: применяется в проектах, где качество соединения и скорость передачи данных критичны для работы сервиса, например:</p><ul><li>Потоковое видео и аудио</li><li>Онлайн-гейминг</li><li>Сервисы облачного бэкапа</li><li>Системы передачи больших файлов</li></ul><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-08-22/07f8f058-884b-48df-901d-c856419ff564.png" alt="" /></figure><h2>Выводы</h2><p>Балансировка нагрузки — один из ключевых
инструментов системного проектирования, который напрямую влияет на
производительность, надёжность и масштабируемость приложений. Знание различных
алгоритмов помогает инженерам подбирать оптимальную стратегию распределения
трафика под конкретные условия и требования бизнеса.</p><p>CTO клиентского сервиса СберСтрахование Жизни
Максим Чернухин отмечает, что почти все из данных методов будут успешно работать на HTTP
1.1:</p><blockquote>Но необходимо помнить, что если в вашем случае протокол HTTP
2.0 нужно реализовывать подобными алгоритмами на уровне L7, вам
придётся расшифровывать трафик TLS, чтобы получить больше информации о
запросах.<br /><br />Так происходит потому, что для HTTP 1 для каждого запроса
создаётся новое соединение. И в момент создания этого соединения можно
предусмотреть работу с выбором сервера, на который будет отправлен запрос. А
вот в случае HTTP 2, новый запрос отправляется в рамках существующего
соединения. <br /><br />Это значит: раскрыв само соединение, мы не сможем увидеть,
что один клиент отправляет 1000 запросов в рамках него, а другой клиент
отправляет в рамках своего соединения всего 10 запросов.</blockquote><p><b>Простые алгоритмы</b> (Round Robin, Random)
подходят для однородных сред и минимальных требований к производительности.</p><p>Как отмечает <a href="https://t.me/dmazaytsev">Дмитрий Зайцев</a>,
CTO Flocktory, программный директор DevOpsConf, чаще всего встречается всё-таки
Round
Robin:</p><blockquote>На самом деле, даже системы, где есть неоднородные среды и
большие требования к производительности — тысячи и сотни тысяч запросов в
секунду — живут с  Round Robin. Ну или
его взвешенной версией и не
переживают. Другие подходы нужны скорее для решения каких-то конкретных проблем
с трафиком и балансировкой.</blockquote>]]></content:encoded>
    </item>
    <item>
      <title>Почему японские сайты такие странные</title>
      <link>https://tproger.ru/articles/pochemu-yaponskie-sajty-takie-strannye</link>
      <comments>https://tproger.ru/articles/pochemu-yaponskie-sajty-takie-strannye?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Светлана Гринь]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/pochemu-yaponskie-sajty-takie-strannye</guid>
      <description><![CDATA[<p>Почему в Японии до сих пор делают сайты, от которых рябит в глазах? Разбираемся, что стоит за этим культурным и технологическим феноменом.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/pochemu-yaponskie-sajty-takie-strannye">Почему японские сайты такие странные</a>»</p>]]></description>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Веб-дизайн]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 14 Aug 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Зашли на японский сайт и подумали, что вернулись в интернет начала 2000-х? Действительно, веб-страницы кажутся странными, перегруженными и устаревшими, особенно если сравнить с минималистичным западным дизайном. Почему в стране высоких технологий до сих пор делают сайты, от которых рябит в глазах? Разбираемся, что стоит за этим культурным и технологическим феноменом.</p><h2>Что не так с японскими сайтами</h2><p>Рассмотрим основные особенности, которые кажутся нам непривычными.</p><p>Визуальный перегруз: много текста, мало воздуха. Японские сайты часто выглядят нагроможденными. Баннеры, всплывающие окна, ссылки создают ощущение хаоса. Блоки плотно прижаты друг к другу, нет «воздуха». Для пользователей, привыкших к минимализму и чистому интерфейсу, это может показаться устаревшим или даже нечитабельным.</p><figure><img src="https://media.tproger.ru/user-uploads/115279/2025-08-08/76df2df5-4380-46d2-87b1-f6c7b374529d.png" alt="" /><figcaption>Пример японского сайта</figcaption></figure><p>Доминирование вертикального и текстового форматов. В отличие от западных сайтов, где акцент на изображения и визуальный сторителлинг, японские веб-страницы строятся вокруг текста. Вертикальные блоки информациии заголовки вместо карточек и иконок отсылают к вёрстке газет и журналов, где содержание всегда превыше формы.</p><p>Устаревшие технологические решения. Немало сайтов всё ещё работают на старых CMS, не адаптированы под мобильные устройства и используют элементы флеш-дизайна или устаревший HTML-код. Это может объясняться консерватизмом в разработке, а также тем, что многие компании по-прежнему ориентируются на десктопный трафик.</p><p>Яркие цвета и изображения низкого качества. В палитре японских сайтов часто используются резкие и контрастные цвета. Вместо профессиональных фото и современных иллюстраций можно увидеть сжатые .jpg, пиксельные иконки, клипарты. Это придаёт сайту винтажный стиль или даже китч, по крайней мере, в глазах западного пользователя.</p><figure><img src="https://media.tproger.ru/user-uploads/115279/2025-08-08/be6018cf-6e89-46bb-9708-d49fcb3997dc.png" alt="" /><figcaption>Пример японского сайта</figcaption></figure><h2>Ключевые факторы и причины</h2><p>Лингвистические. Японский язык сильно отличается от западных языков по структуре и визуальному восприятию. Иероглифы позволяют выразить больше смысла в меньшем количестве знаков, поэтому текст кажется более сжатым. Это приводит к высокой плотности контента: на небольшой площади страницы можно разместить гораздо больше информации, чем на латинице. Пользователи привыкли к плотным, насыщенным блокам текста и не ощущают перегрузки так, как это воспринимают, например, носители английского или русского языков.</p><p>Ещё в японском языке нет заглавных букв, поэтому приходится применять другие средства для создания визуальной иерархии: цветовое выделение, изменение размера шрифта, подчёркивание, рамки.</p><p>Культурные. В японской культуре ценится предсказуемость, поэтому часто применяют устаревшие визуальные шаблоны, ведь они привычнее для пользователей. В условиях высокой плотности населения и ограниченного пространства в буквальном смысле японцы стараются рационально использовать каждое доступное место. На переулках размещены вывески, повсюду расклеены рекламные листовки. Такие подходы применяются и на сайтах. Кроме того, когда интернет только появился среди японцев, раскладной телефон был популярнее компьютера. Поэтому вся важная информация должна помещаться на маленьком экране.</p><figure><img src="https://media.tproger.ru/user-uploads/115279/2025-08-08/2c1647cb-1517-48d0-bca4-908d0160edc2.png" alt="" /><figcaption>Пример японского сайта</figcaption></figure><p>По <a href="https://youtu.be/3NztatoPx-g?feature=shared">словам</a> автора YouTube-канала «Японец Коки», японцы предпочитают, чтобы 70% сайта составлял текст, а 30% — изображения, в то время как европейцы привыкли к обратной ситуации: 70% картинок и 30% текста. Когда же японцы видят западные минималистичные сайты, они относятся к ним с недоверием, так как им нужно максимум информации о товаре или услуге.</p><p>Кроме того, <a href="https://www.wired.com/2008/03/japanese-more-s/">исследования</a> показывают, что японцы воспринимают информацию более целостно, а американцы, как правило, выбирают одну точку фокуса, на которую нужно направить свое внимание.</p><figure><img src="https://media.tproger.ru/user-uploads/115279/2025-08-08/5d2dddeb-8343-45ec-915e-c0fa03bb896d.png" alt="" /><figcaption>Пример японского сайта</figcaption></figure><p>Технологический сектор Японии испытывает серьёзный кадровый голод, <a href="https://www.bloomberg.com/news/articles/2024-02-06/tech-firms-in-japan-are-scouring-for-talent-amid-labor-shortage">пишет</a> Bloomberg. Поэтому часто за сайт отвечает один человек. Это приводит к тому, что приоритет отдаётся функциональности и информативности, а не эстетике.</p><p>Технические. Веб-разработка в стране часто опаздывает за мировыми трендами. Причина — в приверженности к старым системам: до сих пор нередки случаи использования Internet Explorer 6 и Windows XP в государственных или корпоративных структурах. Поддержка современных фреймворков и адаптивной вёрстки внедряется медленно, особенно на сайтах, ориентированных на внутреннюю аудиторию.</p><p>Ещё одна техническая проблема — ограниченность шрифтов для нелатинских языков. Стандартный набор для шрифтов английского языка содержит около 230 глифов, то есть графических представлений символов. Для японского языка из-за трех различных систем письма и бесчисленных кандзи — китайских иероглифов, которые используют в современной японской письменности. — нужны 7000-16 000 глифов или даже больше. Поэтому создание нового шрифта на японском языке требует гораздо больше времени, чем для шрифтов на латинице. Кроме того, японские шрифты весят в разы больше латинских, поэтому медленно загружаются. В итоге на выбор есть на так уж много шрифтов. Часто дизайнеры вообще используют текст в виде изображений. Это нарушает адаптивность сайта и увеличивает вес страницы.</p><h2>Сравнение японских и российских сайтов</h2><p>Сайты из Японии и России отличаются не только визуально, но и логикой построения, пользовательскими привычками и техническими особенностями. Эти различия обусловлены культурным контекстом, уровнем развития IT-инфраструктуры и ожиданиями аудитории.</p><p>Российские сайты, особенно в последние годы, активно перенимают западные UX/UI-тренды. Часто преобладают минимализм, широкие отступы, крупные изображения, четкая иерархия информации. Интерфейс строится вокруг интуитивной навигации и акцента на мобильную адаптацию. Основная цель — быстро донести суть и не перегрузить пользователя. Информация тщательно структурируется и подается порционно.</p><figure><img src="https://media.tproger.ru/user-uploads/115279/2025-08-08/8528001a-6ccc-482b-8954-3130c103ccce.png" alt="" /><figcaption>Сайт иммерсивного арт-пространства LuminarX</figcaption></figure><p>Японские сайты, напротив, содержат плотные текстовые блоки, несколько типов шрифтов, десятки ссылок и баннеров на одном экране. Навигация может быть менее очевидной для западного или российского пользователя, так как вместо горизонтальных меню встречаются длинные вертикальные списки или отдельные страницы с десятками опций. Однако локальные пользователи не теряются в этом потоке информации, они к нему привыкли.</p><p>С технологической точки зрения Россия быстрее адаптирует современные инструменты: прогрессивные фреймворки, анимацию, одностраничные лендинги адаптивный дизайн.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-08-14/7a514602-11a0-4cb1-9a15-93a99fecf0f1.png" alt="" /><figcaption>Сайт студии Chipsa использует анимацию при прокрутке</figcaption></figure><p>Японские государственные органы и корпорации всё ещё применяют неадаптивные макеты, устаревшие элементы интерфейса, низкое разрешение изображений. Так, некоторые сайты до сих пор используют HTML 4.01 и табличную вёрстку.</p><p>Есть и различия в тональности: российские сайты все чаще делают акцент на эмоциональной вовлечённости, для чего используют человечные тексты, юмор, креатив.</p><figure><img src="https://media.tproger.ru/user-uploads/115279/2025-08-08/69e142a6-3546-4b62-b695-51aeec97da8e.png" alt="" /><figcaption>Сайт «Вкусно — и точка»‎  обращается к аудитории «на ты»</figcaption></figure><p>Японские тексты обычно формальны, используют клише и уважительный язык, даже если речь идёт о молодёжной аудитории.</p><figure><img src="https://media.tproger.ru/user-uploads/115279/2025-08-08/ccee5ea2-ff28-435d-bfa9-bc20a0bdfa18.png" alt="" /><figcaption>Перевод: Кимоно остаются любимыми на протяжении веков. За их традиционной, но непреходящей привлекательностью кроется тонкое чувство японской эстетики. Вместо того, чтобы претерпевать серьёзные изменения в угоду моде, они отдают дань уважения красоте, заложенной их предшественниками, при этом совершенствуя детали. В этом и заключается передовой опыт японской красоты. На этот раз Судзуноя предложит модели кимоно, идеально подходящие для официальных случаев.</figcaption></figure><h2>Что стоит российским сайтам позаимствовать у японских</h2><p>Несмотря на очевидные технологические и визуальные недостатки, некоторые особенности японских сайтов могут быть полезны и российским разработчикам и дизайнерам, а именно — принципы, основанные на внимании к деталям и уважении к пользователю.</p><p>Японские сайты часто дают пользователю максимум информации на одной странице. Это удобно в сервисах, где важно знать расписание, контакты, прайс-лист или условия доставки. Например, если это интернет-магазин, то у товара будет максимально подробное описание. С точки зрения дизайна это не всегда эстетично, но, с другой стороны, у пользователя остаётся меньше вопросов и сомнений.</p><p>Японские сайты демонстрируют уважение к привычкам и времени пользователя и не пытаются быть модными. Там редко встретишь радикальные редизайны без объяснения. Платформы развиваются медленно, но стабильно, с минимальными потрясениями для пользователей.</p><h2>Вместо заключения</h2><p>Японцы привыкли к функциональности и стабильности. В этом отражается их культура: уважение к рутине, постоянству, стремление не мешать, а помогать. Для российских сайтов это хороший повод взглянуть на себя со стороны. Да, сейчас в моде минимализм, но если он не наполнен смыслом и пользой, то это просто пустота. Возможно, нам стоит перенять у японцев идею о том, что сайт — это не арт-объект, а рабочий инструмент.</p>]]></content:encoded>
    </item>
    <item>
      <title>Убивает ли AI фронтенд? Как искусственный интеллект меняет роль пользовательских интерфейсов</title>
      <link>https://tproger.ru/articles/ubivaet-li-ai-frontend--kak-iskusstvennyj-intellekt-menyaet-rol-polzovatelskih-interfejsov</link>
      <comments>https://tproger.ru/articles/ubivaet-li-ai-frontend--kak-iskusstvennyj-intellekt-menyaet-rol-polzovatelskih-interfejsov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Игорь Никитин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/ubivaet-li-ai-frontend--kak-iskusstvennyj-intellekt-menyaet-rol-polzovatelskih-interfejsov</guid>
      <description><![CDATA[<p>AI-агенты трансформируют фронтенд-разработку: чат-боты, голосовые ассистенты и гибридные интерфейсы становятся новым стандартом. Узнайте, как искусственный интеллект влияет на роль UI/UX и что ждёт фронтенд-разработчиков в будущем.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/ubivaet-li-ai-frontend--kak-iskusstvennyj-intellekt-menyaet-rol-polzovatelskih-interfejsov">Убивает ли AI фронтенд? Как искусственный интеллект меняет роль пользовательских интерфейсов</a>»</p>]]></description>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Как улучшить интерфейс]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 03 Aug 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Введение</h2><p>За последние десятилетия фронтенд-разработка прошла путь от простых HTML-страниц до сложных, динамических приложений с богатым пользовательским интерфейсом. Мы привыкли к тому, что любой бизнес-инструмент — будь то CRM, ERP, таск-трекер или аналитическая панель — обязательно сопровождается визуальным интерфейсом, который помогает пользователю работать с данными, принимать решения и управлять процессами.</p><p>Однако с появлением и развитием искусственного интеллекта, особенно в виде AI-агентов, ситуация начинает меняться. Всё чаще звучит мнение: “AI убивает фронтенд”. Действительно ли это так? Давайте разберёмся, как AI влияет на роль фронтенда, и что ждёт разработчиков и пользователей в ближайшем будущем.</p><h2>Как всё начиналось: от таблиц к дашбордам</h2><p>Исторически большинство бизнес-процессов начиналось с работы с таблицами. Excel, Access, простые базы данных — всё это было основой для хранения и обработки информации. Но по мере роста объёмов данных и усложнения процессов стало очевидно: работать напрямую с таблицами неудобно, неэффективно и зачастую небезопасно.</p><p>Так появились первые специализированные интерфейсы — сначала десктопные, затем веб-приложения. Их задача была проста: сделать работу с данными удобной, наглядной и безопасной. Фронтенд стал неотъемлемой частью любого IT-решения. С развитием технологий интерфейсы становились всё сложнее: появились интерактивные графики, дашборды, визуализация метрик, drag-and-drop, коллаборативные инструменты.</p><h2>Появление AI-агентов: новая парадигма</h2><p>С развитием искусственного интеллекта, особенно в области обработки естественного языка (NLP), появилась возможность создавать интеллектуальных агентов, которые могут:</p><ul><li>Анализировать большие объёмы данных;</li><li>Делать выводы и строить прогнозы;</li><li>Автоматически формировать отчёты и визуализации;</li><li>Оповещать пользователя о важных событиях;</li><li>Получать задачи в свободной форме и выполнять их.</li></ul><p>Всё это — без необходимости вручную “копаться” в интерфейсах, фильтрах и графиках. Достаточно просто задать вопрос или поставить задачу агенту в чате, и он сам найдёт нужную информацию, проанализирует её и предоставит результат в удобной форме.</p><h2>AI против фронтенда: конфликт или симбиоз?</h2><h3>Аргументы "за" смерть фронтенда</h3><ol><li><b>AI-агенту не нужен UI </b>Агент работает напрямую с данными, минуя визуальный слой. Он может анализировать таблицы, базы данных, API — и возвращать результат в виде текста, отчёта или даже готового решения.</li><li><b>Человеку достаточно чата</b><br />Если агент достаточно умён, чтобы понять задачу и выдать релевантный ответ, зачем нужен сложный интерфейс? Всё можно делать через чат-бота или голосового ассистента.</li><li><b>Автоматизация рутины</b><br />Большинство действий, которые раньше требовали ручного взаимодействия с UI (поиск, фильтрация, построение графиков), теперь может выполнять агент.</li></ol><h3>Аргументы "против"</h3><ol><li><b>Чат — это тоже фронтенд</b><br />Даже если взаимодействие происходит через чат, это всё равно пользовательский интерфейс, просто другой парадигмы. Чат-боты, голосовые ассистенты, мобильные приложения — всё это фронтенд, хоть и менее “визуальный”.</li><li><b>Визуализация всё ещё важна</b><br />Не все задачи удобно решать текстом. Иногда проще увидеть график, схему, дашборд. AI может генерировать визуализации “по запросу”, но их всё равно нужно где-то отобразить.</li><li><b>Сложные сценарии требуют UI</b><br />Массовые операции, сложные настройки, работа с несколькими объектами — всё это зачастую проще и быстрее делать через специализированный интерфейс.</li><li><b>UX и доступность</b><br />Не все пользователи готовы работать только через чат. Для некоторых категорий пользователей визуальный интерфейс остаётся предпочтительным.</li></ol><h2>Как меняется роль фронтенда</h2><p>AI не убивает фронтенд, а трансформирует его. Вот основные направления изменений:</p><h3>1. Фронтенд становится "умнее"</h3><p>Интерфейсы всё чаще интегрируются с AI-агентами, которые подсказывают пользователю, автоматизируют рутину, предлагают готовые решения. Пример — Copilot в Microsoft 365: AI-ассистент помогает работать с документами, но интерфейс Word/Excel никуда не делся.</p><h3>2. Появляются гибридные интерфейсы</h3><p>Часть задач решается через чат, часть — через визуальные компоненты. Например, пользователь может попросить агента “построить график продаж за прошлый месяц”, и агент сгенерирует интерактивную визуализацию прямо в чате.</p><h3>3. Интерфейс становится контекстным</h3><p>Вместо нагромождённых панелей и кнопок — минималистичный UI, который появляется только тогда, когда это действительно нужно. Остальное время пользователь общается с агентом.</p><h3>4. Новые паттерны UX</h3><p>Появляются голосовые ассистенты, чат-боты, интерфейсы на основе естественного языка. Пользователь может “разговаривать” с системой, а не изучать сложные инструкции.</p><h2>Примеры из практики</h2><h3>Copilot в Microsoft 365</h3><p>AI-ассистент интегрирован в привычные офисные приложения. Он помогает писать тексты, анализировать таблицы, строить графики — но интерфейс Word, Excel, PowerPoint остаётся.</p><h3>AI-ассистенты в CRM</h3><p>Многие современные CRM-системы интегрируют AI-агентов, которые анализируют сделки, подсказывают менеджерам, автоматизируют рутину. Но для сложных операций по-прежнему используется классический UI.</p><h3>Чат-боты для BI и аналитики</h3><p>Пользователь может задать вопрос в чате (“Покажи продажи по регионам за май”), и бот сгенерирует нужный отчёт или график. Но для глубокого анализа всё равно нужен визуальный интерфейс.</p><h2>Архитектура гибридных решений</h2><p>Современные системы всё чаще строятся по гибридной архитектуре:</p><ul><li><b>Backend</b>: хранит данные, бизнес-логику, AI-агентов.</li><li><b>AI Layer</b>: обрабатывает запросы на естественном языке, анализирует данные, генерирует ответы и визуализации.</li><li><b>Frontend</b>: предоставляет несколько каналов взаимодействия — чат, голос, визуальные компоненты.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/116015/2025-06-29/66d201cb-6ef4-4dce-8459-50dd98c771f3.png" alt="" /><figcaption>Пример гибридной архитектуры</figcaption></figure><h2>Что ждёт фронтенд-разработчиков?</h2><ol><li><b>Рост спроса на интеграцию с AI</b><br />Всё больше задач будет связано с интеграцией AI-агентов в интерфейсы, построением гибридных UI, генерацией визуализаций “по запросу”.</li><li><b>Смещение фокуса на UX</b><br />Важно не только “рисовать кнопки”, но и проектировать сценарии взаимодействия с AI, обеспечивать удобство и доступность.</li><li><b>Новые инструменты и фреймворки</b><br />Появляются библиотеки для генерации UI на основе естественного языка, интеграции с LLM (Large Language Models), построения чат-ботов и голосовых ассистентов.</li><li><b>Востребованность специалистов по визуализации</b><br />Даже если AI генерирует графики, их нужно правильно отобразить, обеспечить интерактивность и адаптивность.</li></ol><h2>Заключение</h2><p>AI-агенты действительно меняют роль фронтенда, но не убивают его. Скорее, они освобождают пользователя от рутины и делают интерфейсы проще, умнее и гибче. Фронтенд становится менее “визуальным” и более “интерактивным”, а роль человека смещается от работы с данными к постановке задач и принятию решений на основе рекомендаций агента.</p><p>Для разработчиков это открывает новые возможности: проектировать гибридные интерфейсы, интегрировать AI, создавать новые сценарии взаимодействия. Фронтенд не умирает — он эволюционирует.</p><p><b>А как вы считаете, изменится ли роль фронтенда в ближайшие 5-10 лет? Готовы ли вы к этим изменениям? Делитесь мнением в комментариях!</b></p>]]></content:encoded>
    </item>
    <item>
      <title>Как будет выглядеть новый интерфейс Apple? Исследуем iOS 26 и всё, что за ней стоит</title>
      <link>https://tproger.ru/articles/kak-budet-vyglyadet-novyj-interfejs-apple--issleduem-ios-26-i-vsyo--chto-za-nej-stoit</link>
      <comments>https://tproger.ru/articles/kak-budet-vyglyadet-novyj-interfejs-apple--issleduem-ios-26-i-vsyo--chto-za-nej-stoit?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Диана Тажетдинова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-budet-vyglyadet-novyj-interfejs-apple--issleduem-ios-26-i-vsyo--chto-za-nej-stoit</guid>
      <description><![CDATA[<p>Apple представила iOS 26 с интерфейсом Liquid Glass, встроенным ИИ и новыми приложениями. Разбираем, как изменится пользовательский опыт, поведение интерфейсов, дизайн и разработка под новую реальность Apple.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-budet-vyglyadet-novyj-interfejs-apple--issleduem-ios-26-i-vsyo--chto-za-nej-stoit">Как будет выглядеть новый интерфейс Apple? Исследуем iOS 26 и всё, что за ней стоит</a>»</p>]]></description>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 01 Aug 2025 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>На конференции WWDC в июне 2025 года мы узнали, что в iOS 26 элементы интерфейса переливаются как стекло, иконки обновились, а стандартные приложения стали умнее. Появилось Apple Games, а в систему органично встроили собственный искусственный интеллект — Apple Intelligence.</p><p>Кроме визуального апгрейда, iOS 26 готовит платформу к будущим устройствам и меняет логику взаимодействия с интерфейсом. Разбираемся, зачем Apple полностью переосмысляет дизайн и как это повлияет на пользователей, разработчиков и рынок.</p><h2>Когда ждать релиз iOS 26 и кто её получит</h2><p>Первая бета-версия для разработчиков стала доступна 9 июня, сразу после WWDC. Публичная бета ожидается с 14 по 21 июля 2025 года. Финальный стабильный релиз запланирован на сентябрь, одновременно с выходом линейки iPhone 17.</p><p>iOS 26 получат устройства, начиная с iPhone 11 и новее. Владельцы iPhone XR, XS и XS Max останутся на iOS 18.</p><figure><img src="https://media.tproger.ru/user-uploads/114509/2025-06-30/a7320ac7-33db-49ac-9687-f773cb8029eb.png" alt="" /><figcaption>Ждать ли подобных мемов про iPhone 17 — узнаем в сентябре</figcaption></figure><h2>Что такое Liquid Glass</h2><p>Это новый визуальный стиль интерфейса, который Apple представила в iOS 26. Он основан на полупрозрачности, размытии фона и эффекте глубины. Панели, кнопки и другие элементы теперь выглядят как стеклянные поверхности с лёгким свечением и размытым фоном.</p><figure><img src="https://media.tproger.ru/user-uploads/114509/2025-06-30/0acf893b-88ac-4ed5-8b64-186e716b69bf.jpg" alt="" /><figcaption>Apple заявляет: главный экран стал динамичным, чтобы подстраиваться под рутину пользователя.</figcaption></figure><p>Такой подход уже знаком пользователям: похожие эффекты применялись в Windows Vista (Aero Glass) и Android с Material You. В iOS 26 они выполнены в более адаптивной форме. Анимации теперь стали контекстно-зависимыми, а сама система — динамичнее. Интерфейс реагирует на поведение пользователя вместо выполнения команд.</p><figure><img src="https://media.tproger.ru/user-uploads/114509/2025-06-30/b2dc28ad-1362-47da-801c-725baa1f7f2e.png" alt="" /><figcaption>В сети шутят, что Apple тоже хочет вернуть 2007-ой</figcaption></figure><p>Резюмируем, какими будут визуальные особенности:</p><ul><li>Полупрозрачные и размытые элементы UI</li><li>Плавные переходы и анимации с физическим моделированием</li><li>Динамическая реакция интерфейса на фокус, жесты и состояние экрана</li></ul><p>С технической точки зрения Liquid Glass требует больше ресурсов, и поэтому iOS 26 недоступна на устройствах до iPhone 11.</p><h2>Как обновление влияет на дизайн и разработку</h2><p>Редизайн iOS заставит пересмотреть подход к проектированию интерфейсов и логике разработки мобильных продуктов.</p><h3>Для разработчиков</h3><p>Система получила обновленные UIKit и SwiftUI, в которых появились новые параметры для настройки анимаций и поведения элементов интерфейса. Теперь вместо ручной отрисовки переходов разработчик может задать жесткость, скорость, инерцию. Система сама просчитает анимацию с помощью физического движка.</p><blockquote>Разработчикам теперь достаточно задать числовые параметры, и система автоматически создаст натуральные переходы и микровзаимодействия.</blockquote><p>Также появляются механизмы для адаптации UI под разные форм-факторы — это важно на фоне слухов о складных устройствах. Девелоперам придется проявить гибкость мышления в работе с переменными размерами экранов.</p><h2>Для дизайнеров</h2><p>Дизайнерам предстоит адаптироваться к концепции живого, полупрозрачного интерфейса. В iOS перекочевал подход для AR-сред. Теперь важно подстраивать поведение UI в разных состояниях и сценариях.</p><p>В то же время появляются ограничения. Пока ни Figma, ни Sketch, ни другие инструменты не поддерживают эффект Liquid Glass или физику взаимодействий. Прототипировать и тестировать дизайны станет сложнее.</p><blockquote>Пользователи начнут ждать таких же гибких интерфейсов от всех приложений. Это особенно сложно для кроссплатформенных решений.</blockquote><h2>Apple Intelligence: ИИ без ассистента</h2><p>Компания представила искусственный интеллект как набор функций, встроенных в повседневную рутину. ИИ анализирует ваши действия, чтобы предложить помощь в нужный момент. Большая часть операций выполняется на устройстве, что важно для конфиденциальности. С разрешения пользователя система может обращаться к ChatGPT для сложных запросов. По умолчанию она работает локально.</p><p>Apple подчеркивает, что не сохраняет и не читает ваши данные. Все процессы происходят на устройстве или через Private Cloud Compute. Это промежуточный вариант, где запрос обрабатывается в облаке, но без сохранения истории.</p><blockquote>iPhone сам предлагает решение, когда нужно, оставаясь при этом практически невидимым. Apple превращает саму систему в умного ассистента.</blockquote><p>Где работает ИИ-ассистент:</p><ul><li><b>Сообщения и письма </b>— обобщает длинные переписки, предлагает автоматические ответы, сортирует уведомления по приоритетности</li><li><b>Звонки </b>— транскрибирует разговоры и выдает краткое содержание</li><li><b>Снимки экрана</b> — распознаёт контент и предлагает действия: добавить встречу в календарь, найти товар по изображению и т.д.</li><li><b>Переходы между приложениями</b> — связывает действия: например, превратить голосовую заметку в текст и сразу отправить её в мессенджер.</li><li><b>Персонализированные действия Siri</b> — на основе контекста и привычек пользователя.</li></ul><p>Такой подход позволяет системе действовать проактивно, не отвлекая пользователя голосовыми интерфейсами. Это делает UX более органичным.</p><blockquote>Пользователю важен не чат с ИИ, а то, что интерфейс сам понимает контекст. Apple внедряет ИИ как часть UX — это зрелый подход.</blockquote><p>ИИ-ассистент работает не на всех устройствах — только iPhone 15 Pro и новее, iPad и Mac на M-чипах. Некоторые функции появятся не сразу, а будут добавляться в течение 2025–2026 года.</p><h2>Новые и обновлённые приложения</h2><p>В iOS 26 обновились практически все ключевые приложения. Карты стали визуально легче и получили мягкие переходы между уровнями. В Wallet добавили новые сценарии отображения карт и улучшили доступ к билетам и кодам. Apple Music изменилась визуально: обложки больше, плеер — плавнее, появились первые элементы персонализации на основе ИИ.</p><p>Сообщения и Телефон теперь адаптируются под сценарии использования — от отображения звонков до плавных анимаций при переходе между чатами. Интерфейс стал чуть менее предсказуемым, но более живым.</p><p>Появилось и совершенно новое приложение — Apple Games. Это не просто каталог, а игровой хаб: там собраны достижения, рекомендации и челленджи с друзьями. Похоже, Apple решила снова попробовать зайти в гейминг, но уже с упором на персонализацию.</p><p>CarPlay тоже не остался в стороне: теперь в нём работают виджеты и живые данные. Входящие звонки и уведомления стали компактнее, а интерфейс — адаптивнее и ближе к мобильной iOS. В некоторых машинах CarPlay теперь может управлять климатом и другими системами авто.</p><h2>Универсальность экранов и складной iPhone</h2><p>В последние пару лет Apple оформила множество патентов на устройства со складными конструкциями. Среди них:</p><ul><li>раскладушка,</li><li>гибкие шарниры,</li><li>дисплей с защитой от падения,</li><li>экраны с гибкой текстурой,</li><li>система компенсации цвета и яркости на складном экране.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/114509/2025-06-30/16999756-c031-4753-b6fe-196c54ebf489.png" alt="" /><figcaption>Встроенный датчик предотвратит центральную часть экрана от удара при падении. А если ускорение превысит заданный предел, устройство спрячет экран</figcaption></figure><p>Американские <a href="https://www.gearnews.com/apple-foldable-displays-tech/">СМИ</a> отмечают, что в свежих патентах компания пытается сочетать технологичность и приятный глазу дизайн. Потенциально новые складные дисплеи для планшетов, телефонов и ноутбуков могут иметь диагональ до 18 дюймов.</p><figure><img src="https://media.tproger.ru/user-uploads/114509/2025-06-30/a35cd921-5a90-47d3-94ae-c59b213b62bf.png" alt="" /><figcaption>Инженерный механизм с зацепами-пальцами и фигурными пазами стабилизирует угол раскрытия и обеспечивает плавность сгиба</figcaption></figure><p>По мнению экспертов, многие нововведения в iOS 26 говорят о подготовке к устройствам следующего поколения — AR-гарнитурам и складным телефонам.</p><blockquote>Когда интерфейсы на всех устройствах будут базироваться на одних принципах, переход в очки AR станет бесшовным и интуитивным. Liquid Glass — связующее звено.</blockquote><h2>Возможные проблемы и ограничения</h2><p>Как и любое масштабное обновление, iOS 26 не обошлась без шероховатостей. Однако некоторые блогеры на YouTube отмечают, что бета-версия содержит уж слишком много багов по сравнению с бетами ранних iOS.</p><p>Пользователи массово жалуются на подтормаживания, вылеты стандартных приложений, зависания интерфейса и артефакты при переключении между экранами. Особенно это касается моделей iPhone 11–12 — устройства тянут Liquid Glass, но не без усилий.</p><figure><img src="https://media.tproger.ru/user-uploads/114509/2025-06-30/4efae4f6-78ea-4272-9b04-e6e69407bfc1.png" alt="" /><figcaption>Глюки графики отмечаются даже на более мощном iPhone 14</figcaption></figure><p>Эффект жидкого стекла как визуальная фича тоже вызывает очень много споров и баталий. На Reddit считают, что Apple превратила классную идею просто в запотевший экран. Чтобы получить действительно красивый эффект, нужны минималистичные обои и центр управления. Тем, кто привык к многоцветным картинкам и множеству иконок, сложно воспринимать заблюренные значки.</p><blockquote>В профессиональном сообществе уже обсуждаются два слабых места Liquid Glass. Это снижение читаемости на пёстрых фонах и сбои в работе VoiceOver — экранной озвучки для слабовидящих пользователей. В бета-версии iOS 26 фокус может «прыгать», а чтение — прерываться на полуслове.</blockquote><figure><img src="https://media.tproger.ru/user-uploads/114509/2025-06-30/b88db7c3-b04f-48b5-bd3f-734c8cfbc394.png" alt="" /><figcaption>Многие баги в бете можно починить перезагрузкой телефона или сбросом настроек — но в конце концов, пользователь устанет так делать</figcaption></figure><h2>Сравнение основных функций старой и новой iOS</h2><p>Собрали в таблицу, что изменилось в интерфейсе Apple.</p><figure><img src="https://media.tproger.ru/user-uploads/114509/2025-06-30/ac5d154c-eab6-41b0-8eef-f23f6c2ce0b4.jpg" alt="" /></figure><h2>Выводы</h2><ul><li>iOS 26 — переход к новой логике интерфейса: гибкой, адаптивной, контекстной</li><li>ИИ работает в фоновом режиме — незаметно встраивается в рутину</li><li>Обновления системы затронули все составляющие: от базовых приложений до архитектуры UI</li><li>Новые подходы повлияют на разработку и дизайн: возрастут требования к адаптивности, контексту и микровзаимодействиям</li><li>Обновления получат модели iPhone 11 и выше</li><li>Apple создает задел на будущее: интерфейс постепенно подстраивается под человека, под аксессуары AR и под возможные «раскладушки»</li></ul><p>Стоит ли ждать осени? Если любите стабильность, лучше подождать. Если нравится тестировать сырой продукт и отлавливать баги — вперёд в публичную бету в июле.</p><blockquote>ИИ теперь — такое же базовое свойство платформы, как графический движок. Мы свидетели начала новой эры эволюции iOS.</blockquote><blockquote>Теперь система как бы живёт вместе с пользователем. Это уже не просто оболочка, а сопроцесс.</blockquote>]]></content:encoded>
    </item>
    <item>
      <title>Эволюция компьютерного зрения в автоматизации тестирования</title>
      <link>https://tproger.ru/articles/evolyuciya-kompyuternogo-zreniya-v-avtomatizacii-testirovaniya</link>
      <comments>https://tproger.ru/articles/evolyuciya-kompyuternogo-zreniya-v-avtomatizacii-testirovaniya?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Марианна Юдина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/evolyuciya-kompyuternogo-zreniya-v-avtomatizacii-testirovaniya</guid>
      <description><![CDATA[<p>Как технологии компьютерного зрения и нейросети меняют подход к UI-тестированию? Рассказываем, почему Vision-Language модели вытесняют классические автотесты, и как они помогают автоматизировать тестирование на естественном языке.

</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/evolyuciya-kompyuternogo-zreniya-v-avtomatizacii-testirovaniya">Эволюция компьютерного зрения в автоматизации тестирования</a>»</p>]]></description>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Компьютерное зрение]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 27 Jul 2025 10:00:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Автоматизация тестирования пользовательских интерфейсов прошла долгий путь — от простых скриптов с локаторами до современных методов на базе искусственного интеллекта. Изначально тесты писались вручную с помощью инструментов вроде Selenium: тестировщики указывали, какие элементы на странице найти (например, кнопки или поля ввода) с помощью <b>локаторов </b>— уникальных идентификаторов, XPath или CSS-селекторов. Позднее, чтобы упростить проверку интерфейсов, в дело стало вступать <b>компьютерное зрение</b> — анализ скриншотов с помощью OpenCV и подобных библиотек. Сегодня же на передний план выходят <b>Vision-Language модели (VLM)</b> — нейросети, которые умеют одновременно «видеть» содержимое экранов и понимать текстовые описания.</p><p>В этой статье рассмотрим технические детали каждого этапа эволюции: как работают классические локаторы, как применяются алгоритмы компьютерного зрения и как современные VLM и AI-агенты позволяют автоматизировать тестирование на естественном языке. Также обсудим плюсы и минусы этих подходов на практике и объясним, почему традиционная автоматизация уже не так эффективна по сравнению с новыми методами.</p><h2>Классическая автоматизация: локаторы и код</h2><p><b>Что такое локаторы</b>. Традиционная автоматизация UI опирается на поиск элементов в DOM-дереве страницы с помощью локаторов. Локатор — это указание браузеру, как найти нужный HTML-элемент. Существуют различные стратегии локаторов: по ID, имени, классу, XPath, тексту, а в случае мобильных приложений даже свои собственные механизмы, как UiSelector в Android, например.</p><p>В зависимости от платформы и инструмента, эти стратегии могут использовать различные способы поиска: от простого сопоставления атрибутов до навигации по иерархии элементов. Но все они опираются на представление интерфейса в виде структурированных данных — DOM в вебе или XML-дерево в мобильных приложениях.</p><p>Например, кнопку сабмита формы можно найти по уникальному атрибуту id="submit" или по CSS-классу .btn. Инструменты вроде Selenium WebDriver или современные фреймворки (Playwright, Cypress) позволяют записывать шаги теста, обращаясь к элементам через такие локаторы. Ни один GUI-тест не обходится без этой механики. <i>Какой бы инструмент вы ни выбрали для автоматизации, все они будут искать элементы с помощью локаторов</i>.</p><p><b>Как это работает</b>. Автоматизированный тест-приложение (скрипт на Java, Python, JavaScript и т.д.) взаимодействует с браузером через специальный драйвер. На каждом шаге скрипт отправляет команду: найти элемент по указанному селектору и выполнить действие (клик, ввод текста, чтение свойства). Например, Selenium, получив команду findElement(By.id("login")), просматривает DOM-структуру страницы, находит элемент с <i>id="login"</i> и затем может выполнить <i>click()</i>.</p><p>Локаторы привязаны к HTML-разметке, поэтому их надежность зависит от того, насколько стабильно разработчики поддерживают идентификаторы. Практика выработала некоторые правила: желательно использовать уникальные статические атрибуты (например, data-test), избегать сложных XPath, проверять, что локатор не изменится при перезагрузке или смене языка страницы.</p><p>Тем не менее, Web-интерфейсы со временем эволюционируют — меняются классы и ID элементов, верстка усложняется динамическими компонентами. <i>Автоматизация тестирования веб требует учитывать динамическую природу UI, скорость тестов и устойчивость локаторов</i>. Иначе говоря, традиционные автотесты хрупки: малейшее изменение в коде фронтенда (например, переименовали кнопку или перестроили раздел HTML) может сломать множество тестовых сценариев.</p><p><b>Проблемы и поддержка</b>. Главный недостаток локаторного подхода — дорогая поддержка тестов. При активной разработке приложения авто-тесты требуют постоянного обновления: исправлять селекторы, ждать загрузки динамических элементов, добавлять задержки. По опыту индустрии, на сопровождение тестовых скриптов уходит едва ли не больше усилий, чем на их изначальную разработку. Как признавался Кит Поуи, вице-президент по инжинирингу IDT: <i>«Мы тратили столько времени на поддержку тестов на Selenium, ... а теперь тратим почти ноль времени, используя testRigor»</i> [<a href="https://testrigor.com/case-study-idt/">testrigor.com</a>].</p><p>Иными словами, классические UI-тесты грозят превратиться в постоянную гонку за изменяющимся интерфейсом. Появлялись частичные решения, например, <b>Self-healing</b> («самоисцеление» локаторов) с помощью ИИ. Такие механизмы пытаются автоматически подобрать альтернативный селектор, если старый перестал работать. Но как отмечают разработчики CodeceptJS: <i>«AI-healing решает ровно одну проблему: если локатор элемента изменился, и действие не удалось, он подбирает новый локатор, повторяет команду и продолжает тест»</i> [<a href="https://codecept.io/ai/">codecept.io</a>]. Это снимает часть боли, но не меняет принципа: тест все так же опирается на предопределенные селекторы.</p><p>Кроме того, написание самих тестовых сценариев требует навыков программирования и знаний фреймворка, что создает высокий порог входа для неспециалистов.</p><p><b>Вывод</b>: Классическая автоматизация через локаторы была революционна для своего времени и до сих пор остается основой для многих команд. Она хорошо работает при стабильном UI и правильной стратегии локаторов (уникальные ID, атрибуты для тестов и т.п.). Плюсы такого подхода: высокая скорость выполнения (обращение к DOM напрямую), интеграция с CI/CD, детерминизм сценариев. Однако минусы перевешивают в быстро меняющихся продуктах: хрупкость, большие затраты на поддержку и необходимость вовлечения опытных автоматизаторов. Это подтолкнуло индустрию к поиску более гибких и «умных» решений.</p><h2>Компьютерное зрение: поиск элементов по изображению</h2><p>Следующим шагом стало привлечение технологий компьютерного зрения для распознавания элементов интерфейса так, как это делает человек. Вместо того чтобы полагаться на скрытые в коде страницы идентификаторы, тест можно проводить по <b>скриншотам</b>: видеть интерфейс и находить нужные кнопки/иконки по их графическому виду.</p><p>Один из первых популярных инструментов такого рода — <b>Sikuli </b>(MIT, ~2010 год). Sikuli позволил <a href="https://roborabbit-labs.com/2015/02/09/ui-testing-with-sikuli-and-opencv-computer-vision-api/#:~:text=This%20week%20I%E2%80%99ll%20be%20zooming,currently%20maintained%20by%20Raimund%20Hocke">автоматизировать </a>действия, <i>используя скриншоты GUI для поиска и кликов</i>. Внутри он <a href="https://roborabbit-labs.com/2015/02/09/ui-testing-with-sikuli-and-opencv-computer-vision-api/#:~:text=An%20interesting%20characteristic%20of%20Sikuli,page%20for%20a%20nice%20overview">задействовал </a>OpenCV — мощную библиотеку компьютерного зрения с сотнями алгоритмов для обработки изображений и распознавания объектов.</p><p>Принцип работы прост: тестировщик делает снимок элемента (например, кнопки «Поиск»), а Sikuli затем находит на экране участок, совпадающий с этим образцом, и симулирует нажатие. <i>«SikuliX </i><a href="https://wilsonmar.github.io/opencv-sikulix-robot/#:~:text=coordinates%20of%20objects%20it%20recognizes,in%20pictures">использует OpenCV</a><i>, чтобы найти местоположение указанного изображения... и выполняет клик мыши или ввод с клавиатуры по найденной координате»</i>. Таким образом, можно автоматизировать почти всё, что видит пользователь — хоть веб-страницу, хоть настольное приложение или игру — не обращаясь к внутреннему устройству программы.</p><p><b>Как это выглядит на практике</b>. Вместо текстовых селекторов тестер оперирует картинками. Сценарий на Sikuli или похожих фреймворках состоит из последовательности команд: «найти изображение X», «кликнуть по нему», «ввести текст Y», «убедиться, что изображение Z появилось на экране» и т.д.</p><p>По сути, тест <b>имитирует ручную проверку</b>: мы проверяем интерфейс глазами (через алгоритм сравнения изображений) и совершаем действия как пользователь. Этот подход приближает автотест к мануальному тестированию. Как <a href="https://roborabbit-labs.com/2015/02/09/ui-testing-with-sikuli-and-opencv-computer-vision-api/#:~:text=This%20week%20I%E2%80%99ll%20be%20zooming,currently%20maintained%20by%20Raimund%20Hocke">отметила</a> тестировщик Thosha Moodley: <i>«Sikuli... максимально близок к роли ручного тестировщика, который визуально проверяет интерфейс и позволяет автоматизировать тесты без серьёзных навыков разработки»</i>. Другими словами, порог входа снижается: не нужен глубокий кодинг, достаточно понимать, как выглядит нужный элемент.</p><p>Компьютерное зрение также открывает возможность ловить <i>чисто визуальные баги</i>, которые трудны для классических скриптов. Например, традиционный тест может проверить текст сообщения, но не заметит, что он вылез за границы кнопки или обрезан. А визуальный тест легко сравнит скриншот с эталоном и обнаружит искажения в рендеринге. Недаром появилось направление <b>visual testing</b> — сравнение скриншотов для выявления неожиданных изменений.</p><p>Инструменты вроде Applitools Eyes стали лидерами рынка в этой нише: их ИИ-алгоритмы анализируют два изображения (ожидаемый дизайн и фактический) и подсвечивают отличия, игнорируя незначительные артефакты. Такой пассивный подход <a href="https://software-testing.ru/library/testing/testing-automation/4318-how-to-write-visual-ui-automation-tests-using-graphics-instead-of-complex-locator-strings#:~:text=Applitools%20%E2%80%93%20%D0%BB%D0%B8%D0%B4%D0%B5%D1%80%20%D1%80%D1%8B%D0%BD%D0%BA%D0%B0%20%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2,%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%20%D0%B2%20%D1%83%D0%B6%D0%B5%20%D0%B8%D0%BC%D0%B5%D1%8E%D1%89%D0%B8%D1%85%D1%81%D1%8F%20%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D0%B4%D1%83%D1%80%D0%B0%D1%85">полезен </a>для регрессионного тестирования UI — он фокусируется на том, <i>как страница выглядит</i>, а не только на её коде.</p><p><b>Проблемы визуального подхода</b>. Несмотря на перспективность, у визуального тестирования нашлось немало минусов. Прямое сравнение скриншотов чувствительно к любым пиксельным изменениям — сменился оттенок или шрифт, и тест «падает».</p><p>Нужно настраивать допуски, писать сложные алгоритмы сравнения, иначе будут ложные срабатывания. Бесплатные инструменты часто <a href="https://software-testing.ru/library/testing/testing-automation/4318-how-to-write-visual-ui-automation-tests-using-graphics-instead-of-complex-locator-strings#:~:text=%D0%92%20%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B5%20%D0%BE%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B0%D0%BB%D0%BE%D1%81%D1%8C%20%D0%BF%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%BD%D0%BE%D0%B5%20%D0%B8,%D0%B0%20%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%B0%D0%BC%D0%B8%20%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2%20%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%20%D0%B1%D1%83%D0%B4%D0%B5%D1%82">грешат </a>излишней чувствительностью или требуют ручной настройки сравнения изображений.</p><p>С другой стороны, слишком грубая настройка может пропустить реальный баг. Балансировать на грани довольно трудно. Кроме того, сами операции с изображениями <a href="https://software-testing.ru/library/testing/testing-automation/4318-how-to-write-visual-ui-automation-tests-using-graphics-instead-of-complex-locator-strings#:~:text=%D0%92%20%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%B8%D0%BD%D1%81%D1%82%D0%B2%D0%B5%20%D0%BA%D0%BE%D0%BC%D0%BC%D0%B5%D1%80%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85%20%D0%B1%D0%B5%D1%81%D0%BA%D0%BE%D0%B4%D0%BE%D0%B2%D1%8B%D1%85%20%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%85,Tricentis%20Tosca">ресурсозатратны</a>: <i>«манипуляции с картинками требовательны к вычислениям... сложные алгоритмы могут сильно замедлить тесты, поэтому их стараются применять только в исключительных случаях»</i>. Поэтому на практике визуальные проверки либо пускают отдельным шагом (например, финальный скриншот страницы сравнить с эталоном), либо используют маленькие шаблоны для критичных элементов.</p><p>Второй крупный недостаток — <b>обслуживание тестов на картинках</b>. Нужно хранить библиотеку образов для каждого элемента, обновлять их при малейшем редизайне. Представьте, дизайнер поменял иконку корзины — теперь все тесты, которые искали старую иконку, упадут, и QA-инженеру придется записывать новый образ и заменять в сценариях.</p><p>Наконец, <b>масштабируемость</b>: для разных разрешений, устройств, темной/светлой темы возможно потребуются разные эталонные скриншоты или шаблоны. В веб-тестировании это частично решается за счет унифицированности браузеров, но все же добавляет сложностей.</p><p><b>Современные решения и переходный этап</b>. Несмотря на перечисленные сложности, визуальные подходы не исчезли — наоборот, они эволюционировали. Коммерческие инструменты стараются абстрагировать хранение образов и минимизировать ложные срабатывания за счет ML. Например, Applitools <a href="https://software-testing.ru/library/testing/testing-automation/4318-how-to-write-visual-ui-automation-tests-using-graphics-instead-of-complex-locator-strings#:~:text=Applitools%20%E2%80%93%20%D0%BB%D0%B8%D0%B4%D0%B5%D1%80%20%D1%80%D1%8B%D0%BD%D0%BA%D0%B0%20%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2,%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%20%D0%B2%20%D1%83%D0%B6%D0%B5%20%D0%B8%D0%BC%D0%B5%D1%8E%D1%89%D0%B8%D1%85%D1%81%D1%8F%20%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D0%B4%D1%83%D1%80%D0%B0%D1%85">применяет</a> ИИ для сравнения скриншотов, чтобы отличать существенные изменения от незначительных.</p><p>Многие codeless-платформы (Katalon, Tricentis Tosca, TestComplete и др.) включили в свой функционал поиск элементов по изображениям, но чаще как вспомогательную опцию. Нередко это реализовано через визуальный рекордер: пользователь сам кликает по интерфейсу, инструмент делает снимки элементов и генерирует тестовые шаги. Так, показательный пример —<a href="http://testup.io/"> testup.io</a>, где вся концепция построена вокруг изображений: точки взаимодействия задаются относительно визуальных маркеров, а на скриншоте шагов видно миниатюры элементов.</p><p>В итоге, хотя классическое компьютерное зрение приблизило автотесты к пользовательскому восприятию, ему не хватало «интеллекта». В 2020-х стало ясно, что нужен качественно новый уровень: использовать достижения современных нейросетей, чтобы научить машину понимать интерфейс не хуже человека.</p><h2>Vision-Language модели: тестирование на естественном языке</h2><p><b>От компьютерного зрения к мультимодальным моделям</b>. Vision-Language Models (VLM) — это класс нейросетей, который объединяет распознавание изображений и обработку естественного языка. Идея состоит в том, чтобы обучить модель, способную <b>видеть картинку и описывать её словами</b>, а также <b>понимать слова и искать соответствие на картинке</b>.</p><p>Большинство VLM устроены как две части: <i>визуальный энкодер</i> (обычно нейросеть на основе ResNet или Vision Transformer), который преобразует изображение в семантическое представление, и <i>языковой декодер/энкодер</i> (крупная языковая модель GPT или BERT), который <a href="https://dev.to/aairom/what-are-vision-language-models-vlms-and-how-do-they-work-4hl5#:~:text=linguistic%20information,descriptive%20image%20captions%20and%20answering">понимает текст</a>. Обучая эти модули на огромных наборах пар «картинка–описание», они добиваются того, что сеть начинает устанавливать связь между визуальными объектами, их названиями и свойствами.</p><p><b>Пример</b>: модель видит изображение с котом на кресле и подпись «кошка лежит на кресле», и со временем учится понимать, что на картинке кот, что «лежит» — это определенное положение, что диван — это что-то мягкое на чем можно лежать и т.д. В результате такие модели способны решать задачи <i>мульти-модального понимания</i>: генерировать текст по изображению (описание, подписи), отвечать на вопросы по картинке, находить по текстовому запросу нужный объект на изображении и пр.</p><p>Другими словами, VLM обладает зрением и речью одновременно, что открывает совершенно новые возможности для тестирования.</p><p><b>Применение VLM для тестирования UI</b>. Как VLM помогает автоматизировать тестирование? Проще всего это понять на примере: допустим, у нас есть скриншот веб-страницы или мобильного приложения. Ранее, чтобы проверить его содержимое, нам нужен был или человек-тестировщик, или набор проверок конкретных элементов (по DOM или по эталонным изображениям). Теперь же мы можем задать вопрос модели на естественном языке о содержимом UI, и она постарается ответить на основании картинки.</p><p>В блоге Smartesting <a href="https://www.smartesting.com/en/the-future-of-software-testing-harnessing-vision-language-models/#:~:text=%E2%80%9CHere%20is%20a%20screenshot%20of,a%20shirt%3F%20At%20what%20price%3F%E2%80%9C">показан кейс</a>: модели Claude 3.5 дали скриншот интернет-магазина и запрос на английском: <i>«Что изображено на странице? Найди, есть ли рубашка, и какая у нее цена»</i>. Модель проанализировала скриншот и выдала структурированный ответ - перечислила несколько товаров (платье, куртка, брюки, Checked Slim Fit Shirt - $48.99 и т.д.), а затем прямо ответила: мол, да, на картинке есть рубашка (Checked Slim Fit Shirt) по цене $48.99. Ранее такой сценарий потребовал бы либо проверки текста в DOM (искать слово Shirt и парсить цену), либо ручного взгляда. Vision-Language модель выполнила его <i>«с нуля»</i>, просто получив изображение и вопрос.</p><h2>Заключение</h2><p>Развитие методов автоматизации UI-тестирования — наглядный пример того, как технологии ИИ трансформируют привычные практики. Классический подход с локаторами и кодом, хотя и служил десятилетиями, начинает буксовать на требованиях гибкости и скорости.</p><p>Использование компьютерного зрения добавило тестам человеческого восприятия, позволило ловить визуальные дефекты и упростить взаимодействие с нестандартными интерфейсами — но полностью заменить код не смогло из-за ограничений старых алгоритмов.</p><p><b>Vision-Language модели в связке с AI-агентами</b> сделали следующий шаг: они фактически научили компьютер «думать» о том, что он видит на экране, и понимать наши инструкции почти как опытный тестировщик. Это позволило создать системы, где <i>шаги тест-кейса становятся его же автоматизацией.</i></p><p><i></i> Тестировщики и менеджеры могут описывать проверки простыми шагами на естественном языке, а умная платформа сама найдет нужные элементы по описанию, выполнит действия и сравнит ожидаемое с действительным. Такой подход сокращает время на подготовку автотестов, резко снижает расходы на поддержку (ИИ адаптируется к изменениям UI) и расширяет охват проверок за счет контекстных интеллектуальных ассертов.</p><p><b>Будущее автоматизации тестирования принадлежит умным, обучаемым системам</b>, которые совмещают зрение и интеллект. Тестировщики постепенно превращаются в наставников таких систем — формулируют проверки в человеческом формате, а ИИ берет на себя рутинное исполнение. Это повышает эффективность QA-процессов и позволяет сфокусироваться на действительно сложных, творческих задачах тестирования.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как я ушёл от REST и начал жить проще с Inertia.js</title>
      <link>https://tproger.ru/articles/kak-ya-uwyol-ot-rest-i-nachal-zhit-proshhe-s-inertia-js</link>
      <comments>https://tproger.ru/articles/kak-ya-uwyol-ot-rest-i-nachal-zhit-proshhe-s-inertia-js?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Сергей Чивирда]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-ya-uwyol-ot-rest-i-nachal-zhit-proshhe-s-inertia-js</guid>
      <description><![CDATA[<p>Как упростить процесс создания веб-приложений, отказавшись от REST в пользу Inertia.js. В статье объясняется, как Inertia позволяет соединить Laravel и Vue без API, убрать дублирование кода, ускорить разработку и сохранить все плюсы SPA без лишней сложности. </p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-ya-uwyol-ot-rest-i-nachal-zhit-proshhe-s-inertia-js">Как я ушёл от REST и начал жить проще с Inertia.js</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Веб-дизайн]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Vue]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 26 Jul 2025 12:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Привет! Меня зовут Сергей Чивирда, я PHP-разработчик в digital-агентстве <a href="https://www.ibrush.ru/">IBRUSH</a>. Мы в основном занимаемся дизайном и веб-разработкой. И сегодня я расскажу, как упростил себе жизнь, отказавшись от REST.</p><h2>Как всё устроено обычно и что в этом не так</h2><p>Если вы хоть раз писали современное веб-приложение, то наверняка шли по классической схеме: фронт на Vue или React, бэк на Laravel, Express или чем-то подобном. Между ними REST API. Иногда вместо REST используют GraphQL. Вроде всё по канону, но на практике возникает куча лишних проблем.</p><p>Первое, что раздражает — дублирование логики. Маршруты, валидация, обработка ошибок — всё приходится делать и на фронте, и на бэке. Получаются два мира, два набора кода, две точки отказа.</p><p>Плюс техническая возня. CORS, токены, CSRF-защита — всё это надо настраивать, поддерживать и отлаживать. А ещё ведь хочется, чтобы проект нормально индексировался поисковиками. Тогда подключаются Nuxt, Next, пререндеринг, мета-теги и куча других инструментов.</p><h2>Inertia.js — простое решение, которое сработало</h2><p>В какой-то момент я наткнулся на Inertia.js, и это был очень приятный сюрприз. Inertia — это не библиотека или фреймворк в привычном смысле. Это клей, который соединяет Laravel и Vue (или React), позволяя строить полноценные интерфейсы без отдельного API.</p><p>Фронтенд работает как обычное SPA, а бэк продолжает жить как Laravel-приложение: маршруты, контроллеры, middleware — всё привычно. Вместо return view() используем Inertia::render(), передаём данные, и они попадают напрямую во Vue-компонент как props.</p><p>То есть вы работаете в едином стеке. Валидация, авторизация и маршрутизация на сервере, без дублирования. Нет проксей, CORS и прочих сложностей. Просто Laravel отдаёт Vue-компоненты, и всё это отлично работает вместе. Интерфейс ведёт себя как SPA, но архитектура проще.</p><p>Если сравнивать с Livewire, то подход другой. В Livewire основной акцент на рендеринг HTML на сервере и обмен данными через AJAX. В случае с Inertia весь интерфейс строится на Vue или React, но без отдельной REST-инфраструктуры.</p><h2>Пример на практике</h2><p>Вот как это выглядит в реальном коде.</p><p>В контроллере Laravel просто пишем:</p><p>На фронте есть компонент Users/Index.vue, который принимает данные как props. Это всё. Не нужно писать отдельный API, сериализовывать данные, обрабатывать запросы вручную. Просто работаем с контроллером и компонентом.</p><p>Адреса страниц остаются стандартными, как в Laravel. Например, по маршруту /users Laravel отдаёт страницу, где Vue-компонент рендерит список пользователей. Переходы происходят быстро и без перезагрузки, как в SPA.</p><h2>Что я получил в реальной работе</h2><p>Когда я впервые использовал Inertia в боевом проекте, первым делом заметил, насколько сократилось количество кода. Не нужно писать отдельные контроллеры и для фронта, и для бэка, соединять их, думать о форматах данных и обрабатывать ошибки с двух сторон.</p><p>API как таковой просто исчез. А вместе с ним исчезли и проблемы с CORS, CSRF, токенами и заголовками. Всё работает как в монолите. Если возникает ошибка, ты сразу видишь, где именно она произошла. Не нужно прыгать между фронтом и бэком, выискивая источник бага.</p><p>Разработка стала быстрее. Когда фронт и бэк находятся в одном проекте, они не конфликтуют. Не нужно ждать, пока кто-то сделает API. Просто открываешь редактор и сразу реализуешь всю страницу целиком. Это особенно удобно, если ты один или в небольшой команде.</p><p>С SEO и SSR тоже стало проще. Поскольку рендер идёт на сервере, контент виден поисковикам, а настройка метатегов и пререндеринг выполняются привычными средствами Laravel.</p><p>И, пожалуй, главный плюс — всё работает единообразно. Авторизация, сессии, валидация, ошибки — всё в одной системе, без дублирования. Это упрощает отладку и снижает количество багов.</p><h2>Когда Inertia может не подойти</h2><p>Как и любой инструмент, Inertia не универсален. Он отлично показывает себя, когда фронт и бэк разрабатываются вместе, в рамках одного репозитория и одной команды. В таком случае он просто идеален.</p><p>Но если у вас фронтенд и бэкенд разделены по командам и живут в разных проектах — лучше выбрать REST или GraphQL. Inertia для такой архитектуры не подходит.</p><p>Также он не заменяет полноценный API. Если вам нужен мобильный клиент или вы планируете отдавать данные сторонним приложениям — API придётся реализовать отдельно.</p><p>И ещё один момент. Если вы собираетесь использовать Nuxt или Next.js для SSR — Inertia здесь не поможет. У него свой подход, который не интегрируется с этими фреймворками.</p><p>Так что всё зависит от задач.</p><h2>Итог</h2><p>Если вы фуллстек-разработчик и работаете в Laravel, очень советую попробовать Inertia. Он позволяет писать фронт и бэк в одном стеке, без лишней головной боли. Вы продолжаете использовать привычные инструменты Laravel — контроллеры, middleware, сессии, валидацию — но при этом создаёте интерфейс с Vue или React. Компоненты, реактивность, быстрые переходы — всё это на месте.</p><p>И главное — не нужно прыгать между двумя мирами. Порог входа очень низкий. Начать можно хоть с одной страницы.</p><p>Мой совет: попробуйте Inertia на небольшом проекте. Например, сделайте личный кабинет, блог или список задач. Скорее всего, вам понравится. Мне — точно зашло.</p>]]></content:encoded>
    </item>
    <item>
      <title>Дизайн интуитивного интерфейса: как простота и удобство повышают лояльность клиентов</title>
      <link>https://tproger.ru/articles/dizajn-intuitivnogo-interfejsa--kak-prostota-i-udobstvo-povywayut-loyalnost-klientov</link>
      <comments>https://tproger.ru/articles/dizajn-intuitivnogo-interfejsa--kak-prostota-i-udobstvo-povywayut-loyalnost-klientov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Маргарита Савченко]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/dizajn-intuitivnogo-interfejsa--kak-prostota-i-udobstvo-povywayut-loyalnost-klientov</guid>
      <description><![CDATA[<p>Продуктовый дизайнер клиентских приложений Flowwow расскажет, как минимизировать пользовательский путь, создавать понятные интерфейсы и балансировать между функциональностью и эстетикой в фичах</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/dizajn-intuitivnogo-interfejsa--kak-prostota-i-udobstvo-povywayut-loyalnost-klientov">Дизайн интуитивного интерфейса: как простота и удобство повышают лояльность клиентов</a>»</p>]]></description>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 30 Jun 2025 16:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Привет! Я Маргарита Савченко, продуктовый дизайнер клиентских приложений маркетплейса Flowwow. Сегодня поговорим о том, какие принципы и инструменты помогают сделать интерфейс интуитивно понятным.</p><p>Ни для кого не секрет, что люди по-разному взаимодействуют с одним и тем же сайтом или приложением. Кто-то сразу находит нужную функцию, а кому-то приходится блуждать по меню часами. Это не случайность, а результат работы команды дизайна над простотой и логикой интерфейса. Создание интуитивного UX начинается не с выбора цвета кнопок, а с анализа целевой аудитории и ее потребностей. Задача дизайнера — сделать взаимодействие с приложением понятным: минимизировать лишние действия и при этом найти баланс между функциональностью и эстетикой продукта. Именно об этом расскажу сегодня в статье.</p><h2>Анализ пользователей — фундамент эффективного интерфейса</h2><p>Понимание того, как мыслит и действует пользователь, — основа для понятного и эффективного интерфейса. Важно знать, на что аудитория обращает внимание, что цепляет ее больше всего, а также как она проходит путь от открытия приложения до совершения покупки. Наша команда использует четыре основных инструмента, чтобы понять все тонкости взаимодействия клиента с продуктом. Перейдем к ним.</p><ul><li><b>Внутренний и командный груминг. </b>Дизайнеры сначала испытывают фичи сами: абстрагируются от реальности и представляют себя на месте пользователя. А потом проводят груминг-встречи, на которых с командой обсуждают идеи и на уровне небольшой фокус-группы проверяют гипотезы.</li><li><b>Коридорное тестирование.</b> В этом случае мы показываем новый интерфейс коллегам и просим дать короткую обратную связь. Важно собирать отзывы в моменте, а не давать время на обдумывание. Цель коридорного исследования — понять, что нравится или отталкивает в продукте в первые минуты пользования.</li><li><b>A/B-тесты.</b> Это довольно дорогой метод, поэтому мы применяем его только для масштабных изменений в функционале. Например, новую категорию «Премиум» с товарами от 20 000 рублей мы вводили обособленно для пользователей из пяти городов, включая Москву, Санкт-Петербург и Екатеринбург, чтобы протестировать фичу на узкой аудитории. Сперва оценили, стали ли люди покупать больше из новой категории, увеличился или упал их средний чек и как изменилось поведение. Только после того, как мы убедились, что функция полезная и помогает пользователям, внедрили ее на всех остальных.</li><li><b>Аналитика поведения пользователей. </b>Для построения CJM (Customer Journey Map) — карты пути клиента можно использовать разные инструменты. Например, «вебвизор» — это бесплатный инструмент, который позволяет «подсмотреть» за действиями человека на сайте. На видеозаписи можно увидеть, на какие страницы пользователь переходит, чему он уделяет больше внимания, а в какой момент он закрывает вкладку. Единственный минус — для мобильных приложений опция недоступна.</li></ul><p>Поэтому мы изучаем поведение пользователя по данным аналитики наших платформ, а именно «навешиваем» события на кнопки, переходы и определенные действия и экраны, которые нам важны. После анализируем собранные данные и делаем выводы, например, сколько людей из тех, кто добавил товар в корзину в итоге совершили покупку. Также мы изучаем отзывы и на основании полученной информации строим CJM. Карта помогает увидеть реальные сценарии взаимодействия, определить узкие места и точки неудобства, а также понять, где пользователи сталкиваются с трудностями или уходят, чтобы затем сделать путь максимально простым и логичным.</p><p>Это не финальный список, для каждого продукта важно находить свои способы аналитики. Во Flowwow мы уделяем особое внимание обратной связи от клиентов. Это связано с особенностью маркетплейсов: люди часто оставляют отзывы на товары и активно общаются со службой поддержки. И иногда в их фидбэке можно найти ценные данные, которые не покажет ни одно исследование.</p><h2>Пользователи знают лучше: как мы работаем с обратной связью</h2><p>Мы внимательно собираем и анализируем обратную связь от клиентов, чтобы сделать продукт удобным и понятным для них. При этом далеко не все комментарии сразу же переходят в работу. Важно помнить, что продукт создается под запрос большинства, а не одного клиента.</p><p>Рассмотрим пример из нашей практики: в прошлом году мы внедряли опцию переключения на самовывоз в приложении в процессе оформления заказа. Фича была создана для случаев, когда клиентам удобнее забрать заказ самостоятельно. Казалось бы, удобный функционал, однако не всем было легко в нем разобраться. Некоторые люди по ошибке нажимали не те кнопки, путались в экранах, в частности, могли отменить и заново повторить заказ. Такое произошло, потому что функционал переключения на самовывоз вводился в сжатые сроки перед пиковым периодом в работе маркетплейса. Поэтому интерфейс новой фичи дорабатывался уже после понимания, что проблема взаимодействия с переключением массовая, а не единичная, как казалось сначала.</p><p>Почти все изменения, даже незначительные, могут потребовать времени на адаптацию пользователя. Некоторые действия выполняются по уже привычному сценарию, у клиентов нет времени вникать в подробности использования приложения. Поэтому даже новый цвет иконки может оттолкнуть, поскольку первое время ее придется долго искать на экране.</p><p>Кроме того, в работе с фидбэком пользователей дизайнеру важно снимать верхние слои эмоций и мыслить рационально. Например, мы не будем менять расположение кнопки или добавлять дополнительный текст, если об этом попросили несколько человек. Прежде всего мы оцениваем, проблема единичная или повторяющаяся. Для этого мы заходим в чаты с клиентами и смотрим, как много людей жалуются на неудобства. Далее приоритизируем задачу. Так, баги, которые влияют на общее впечатление о бренде мы исправляем в первую очередь.</p><p>Мы всегда исходим от рационального вопроса «зачем?». Это помогает понять, что изменение в интерфейсе даст продукту и как оно ускорит путь клиента. Если ответа нет, значит, опция не нужна. Также необходимо сверяться с цифрами. Если мы видим, что неудобное расположение кнопки не просто огорчает пользователей, а снижает покупки, то также повысим приоритет запроса и исправим ошибку.</p><h2>Интуитивно понятный интерфейс: психология и принципы</h2><p>Комфорт и понятность интерфейса зависят не только от визуальных решений, но и от того, как человек воспринимает информацию. На основе психологических закономерностей, в частности, на особенностях восприятия визуальной информации, строится большинство удачных интерфейсов.</p><p>Например, прежде всего дизайнер учитывает культурные особенности аудитории. В русскоязычном пространстве мы привыкли к чтению слева направо, но при адаптации интерфейса для арабских стран потребуется зеркальное отражение всех элементов, так как там принято обратное направление чтения.</p><p>Однако существуют фундаментальные правила, которые работают независимо от культуры:</p><ol><li><a href="https://habr.com/ru/companies/cloud4y/articles/347444/">Принципы гештальта</a> (их около 7), описывающие, как человек группирует и разделяет визуальную информацию, чтобы получить простую для понимания форму. Например, принцип близости: элементы, расположенные рядом, воспринимаются как связанные. Это может быть заголовок и подзаголовок.</li><li><a href="https://ux-journal.ru/teoriya-tsveta-dlya-dizajnerov-chast-1-znachenie-tsveta.html">Цветовые ассоциации</a>: красный — для ошибок, зеленый — для успешных действий.</li></ol><p>Хотя цвет действительно влияет на восприятие, не стоит переоценивать его значение. Фиолетовый может ассоциироваться и с депрессией, и с творчеством — все зависит от контекста. Мы создаем простые и понятные интерфейсы, где каждый элемент служит конкретной цели, а не становится предметом для интерпретации.</p><p>Главное правило нашей команды: дизайн должен быть интуитивным и функциональным, а не требовать от пользователя расшифровки скрытых смыслов.</p><p>Кроме того, внедряя обновления в интерфейс, важно учитывать и скорость восприятия изменений у пользователей. Масштабные изменения могут вызвать негативные эмоции у аудитории, даже если новые фичи удобные и обоснованные.</p><ol><li>Необходимо постепенно внедрять новые элементы. Например, такой опыт постепенных обновлений мы прошли во время масштабного ребрендинга Flowwow. Мы начали с внедрения нового онбординга (последовательности первых экранов), обновили экран загрузки и баннерную сетку. Только после этого заменили основные цвета, шрифты и изображения.</li><li>Важно сохранить удобные для пользователя шрифты. Кажется, что для консистентности в брендинге важно использовать одинаковые шрифты во всех продуктах, но это не всегда так. Важнее учитывать особенности площадки. Поэтому для Android- и iOS-приложений в процессе ребрендинга мы будем использовать системные шрифты, которые помогают плавно перейти из интерфейса телефона в приложение. Для Android это Roboto Flex, а для iOS — San Francisco.</li></ol><h2>Чем меньше действий, тем лучше</h2><p>Идеальный интерфейс — тот, в котором человеку достаточно нажать одну или две кнопки, чтобы получить результат. Но этого добиться практически невозможно. Однако важно стремиться к тому, чтобы минимизировать путь пользователя. Это возможно в не перегруженном информацией интерфейсе. У пользователя возникает запрос, и через пару кликов экран дает на него ответ. Например, таким решением может стать ссылка на подборку подарков к 8 Марта, список популярных товаров или кнопка повтора заказа.</p><p>Главное правило при создании интерфейса, где минимизируется путь пользователя, — делать акцент на действительно важном. Например, в карточке магазина мы не станем выделять огромным шрифтом его название — вместо этого на первый план выведем ассортимент товаров. Точно так же на странице товара мы покажем только ту информацию, которая влияет на решение о покупке.</p><p>Ключ к удобному интерфейсу — понимание, на чем именно нужно сделать акцент. Для этого мы:</p><ol><li>анализируем поведение пользователей с помощью различных инструментов;</li><li>постоянно задаемся вопросом: как можно сделать еще проще?</li></ol><p>Второй из них, кстати, прописан в нашем регламенте для дизайнеров и продуктовых команд. Если приходится добавлять десятки подсказок и баннеров, чтобы пользователь нашел нужную кнопку, проблема скорее всего не в кнопке, а в неочевидной логике всего интерфейса.</p><p>Так, интуитивный интерфейс строится на умении слышать и понимать потребности пользователей. А оправданность каждого элемента становится основой для простых и рациональных решений. Такой подход обеспечивает удобный пользовательский опыт и способствует естественному росту лояльности к продукту.</p>]]></content:encoded>
    </item>
    <item>
      <title>Black Box Testing — ищем баги не смотря в код</title>
      <link>https://tproger.ru/articles/black-box-testing---ishhem-bagi-ne-smotrya-v-kod</link>
      <comments>https://tproger.ru/articles/black-box-testing---ishhem-bagi-ne-smotrya-v-kod?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Анна Ельцова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/black-box-testing---ishhem-bagi-ne-smotrya-v-kod</guid>
      <description><![CDATA[<p>Как понять, работает ли программа правильно, не зная, как она устроена изнутри? В статье расскажем, что такое Black Box Testing, как и когда его применять, а главное — как не ошибиться, проверяя то, чего не видно.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/black-box-testing---ishhem-bagi-ne-smotrya-v-kod">Black Box Testing — ищем баги не смотря в код</a>»</p>]]></description>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 18 Jun 2025 15:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Тестирование программного обеспечения — это не просто поиск багов. Безусловно, обнаруживать ошибки важно, но самое главное — выпустить полезный для пользователя продукт. Всегда помните: функция, которая кажется очевидной вам или кажется логичной с вашей точки зрения, может не быть такой для конечного пользователя. Увидели <a href="https://dev.to/gablemathias/black-box-testing-53fd">эту</a> статью и теперь рассказываем, как тестировать ПО с помощью Black Box.</p><h2>Что такое black box</h2><p>Black-box тестирование — подход, в котором тестировщик смотрит на продукт глазами обычного пользователя. Другими словами, вы тестируете приложение как конечный юзер, который не имеет ни малейшего представления, что у него под капотом. Зато он может оценить, хорошо ли оно работает и насколько удобно в использовании.</p><p>Здесь нет анализа кода и внутренних схем — только входы, выходы и реальный пользовательский опыт.</p><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-06-17/714fc0c6-33a6-45f8-b7c7-ed7f6ee0466a.png" alt="" /></figure><p>Тестировщик проверяет функциональность ПО, не вникая в детали реализации. Он вводит данные (имитируя действия пользователя) и наблюдает за результатом (время отклика, удобство, надежность).</p><h2>Знайте ваших пользователей</h2><p>Очень важно понимать, кто будет пользоваться системой — лучше всего даже поговорить с конечными пользователями. Знание их целей и задач критично: без этого можно упустить важные детали.</p><p>Тестировщику необязательно быть разработчиком, главное — разбираться в требованиях. Но, например, если речь об ERP-системе, а пользователь работает только с одной ее частью, то спецификаций может быть недостаточно. Если не знать контекста, легко принять нормальное поведение интерфейса за ошибку — просто потому, что оно выглядит непривычно.</p><h2>Когда применять</h2><p>Black-box тестирование может включать:</p><ul><li>Функциональное тестирование</li><li>UI-тестирование</li><li>Юзабилити-тестирование</li><li>Ad-hoc тестирование</li></ul><p>Они обеспечивают всестороннее покрытие и уменьшают риски: проверяются границы, моделируются реальные сценарии.</p><h2>Техники Black‑Box тестирования</h2><ul><li><b>Эквивалентное разбиение. </b>Вход разбивается на классы допустимых и недопустимых данных.</li><li><b>Анализ граничных значений. </b>Проверяются пограничные значения диапазона. <i>Пример: если допустимое количество товаров от 1 до 100, стоит протестировать 0, 1, 100, 101. </i></li><li><b>Тестирование по решающей таблице. </b>Таблица с комбинациями входов и ожидаемыми выходами. <i>Пример: авторизация по email и паролю:</i></li></ul><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-06-17/3b4fae40-fd6e-42db-8d17-91f486f69cde.png" alt="" /></figure><ul><li><b>Другие методы: </b>тестирование переходов состояний (state transition), исследовательское тестирование (exploratory), тестирование догадками (error guessing).</li></ul><p>Black-box тестирование помогает посмотреть, как система работает снаружи — без знания внутренней логики. Это помогает проверить поведение приложения и UX/UI, чтобы выпустить качественный продукт.</p>]]></content:encoded>
    </item>
    <item>
      <title>Что показали на WWDC 25: обновление дизайна всех платформ, усиление ИИ и появление живых действий на Mac</title>
      <link>https://tproger.ru/news/--apple-obnovila-dizajn-vseh-platform--usilila-ii-i-dobavila-zhivye-dejstviya-na-mac---chto-pokazali-na-wwdc-25</link>
      <comments>https://tproger.ru/news/--apple-obnovila-dizajn-vseh-platform--usilila-ii-i-dobavila-zhivye-dejstviya-na-mac---chto-pokazali-na-wwdc-25?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/--apple-obnovila-dizajn-vseh-platform--usilila-ii-i-dobavila-zhivye-dejstviya-na-mac---chto-pokazali-na-wwdc-25</guid>
      <description><![CDATA[<p>Apple представила iOS 26, macOS Tahoe и прочие обновления: редизайн, ИИ-функции, живые действия и полную интеграцию устройств</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/--apple-obnovila-dizajn-vseh-platform--usilila-ii-i-dobavila-zhivye-dejstviya-na-mac---chto-pokazali-na-wwdc-25">Что показали на WWDC 25: обновление дизайна всех платформ, усиление ИИ и появление живых действий на Mac</a>»</p>]]></description>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[macOS]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 09 Jun 2025 18:11:00 GMT</pubDate>
      <content:encoded><![CDATA[<h2>iOS 26: новая эстетика и умные функции</h2><p>Apple представила iOS 26 с крупнейшим редизайном за историю платформы.</p><p>Интерфейс выполнен в новом стиле Liquid Glass — полупрозрачный материал, адаптирующийся к окружению. Он применяется повсеместно: от иконок и кнопок до «Центра управления» и экрана блокировки.</p><p>Apple Intelligence получила развитие: теперь ИИ может переводить звонки и сообщения в реальном времени, предлагать действия по контексту на экране, а также создавать изображения и эмодзи через Image Playground.</p><p>Messages обзавелись фоновыми изображениями и голосованием, а в CarPlay появились живые виджеты и новые элементы управления.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-06-09/75dfd396-1278-47a6-b6ab-1e8fd5985eea.jpeg" alt="" /></figure><h2>macOS 26 Tahoe: Spotlight и звонки с iPhone</h2><p>macOS 26 (Tahoe) перенял Liquid Glass-дизайн и получил полную переработку Dock, меню и иконок. Впервые на Mac появился полноценное приложение «Телефон», позволяющее принимать и совершать звонки, включая функции Call Screening и Hold Assist.</p><p>На панель меню теперь выводятся Live Activities с iPhone, а Spotlight позволяет не только искать, но и выполнять сотни действий прямо из поиска.</p><p>Новое приложение Apple Games стало хабом для всех игр, а Metal 4 обещает улучшенную графику и производительность.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-06-09/6cc87add-7495-4ef3-9e5d-b3b3273c5719.jpeg" alt="" /></figure><h2>iPadOS 26: управление окнами и мощь iPad</h2><p>iPad также получил редизайн и полноценную оконную систему. Теперь окна можно свободно размещать, изменять их размер и группировать.</p><p>Впервые на iPad появился Preview для работы с PDF, а Files получил продвинутые фильтры и возможность закреплять папки в Dock.</p><p>Apple Intelligence помогает обрабатывать заметки, создавать изображения и упрощать рутину с помощью умных Shortcuts. Появились новые аудиовозможности, включая выбор микрофона для каждого приложения и запись звонков с транскрипцией.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-06-09/861758ba-e72c-4e7a-8a10-e7972cef52e8.jpeg" alt="" /></figure><h2>watchOS 26: фитнес с ИИ и управление жестами</h2><p>watchOS 26 получил поддержку Liquid Glass в интерфейсе, обновленную компоновку приложения тренировок и новую функцию Workout Buddy — голосового ассистента, подсказывающего ход тренировки.</p><p>Siri стал умнее, а уведомления теперь можно закрыть жестом запястья.</p><p>Также добавлены переводы в сообщениях, фоны для чатов, поддержка Notes и новое управление музыкой во время тренировок.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-06-09/5a84c1f2-2b81-4815-809a-1a6adbc12857.jpeg" alt="" /></figure><h2>visionOS 26: новые сцены и взаимодействие в пространстве</h2><p>Apple Vision Pro получил поддержку пространственных виджетов, новых сцен для фото с генеративной глубиной, обновленных персон и возможность совместной работы с другими пользователями Vision Pro в одной комнате.</p><p>Также появилась поддержка контроллеров PlayStation VR2, Look to Scroll и поддержка звонков с iPhone.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-06-09/789a1892-730b-4011-9cc8-33028680781a.jpeg" alt="" /></figure><p>Посмотреть презентацию можно по <a href="https://www.youtube.com/live/0_DjDdfqtUE?si=lj5it2u1AEk0xCjj">ссылке</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Это не шутка: чем «Аврора» уже круче Android</title>
      <link>https://tproger.ru/articles/smewno--gde-aurora-uzhe-obognala-android</link>
      <comments>https://tproger.ru/articles/smewno--gde-aurora-uzhe-obognala-android?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/smewno--gde-aurora-uzhe-obognala-android</guid>
      <description><![CDATA[<p>«Аврора» уверенно выходит из тени Android: где российская мобильная ОС уже впереди, а где ей ещё предстоит догонять — разбор Tproger.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/smewno--gde-aurora-uzhe-obognala-android">Это не шутка: чем «Аврора» уже круче Android</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Оптимизация]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Samsung]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Xiaomi]]></category>
      <category><![CDATA[Flutter]]></category>
      <category><![CDATA[Смартфоны]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 07 May 2025 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>С 2023 года российские гаджеты на ОС Аврора стали активно внедрять в государственные IT-системы, чтобы заменить Android и iOS. Правда, в айтишных кругах она вызывает споры: она защищена и номинально считается российской, но при этом построена на ядре Linux и технологиях Nokia. Сейчас уже умеет запускать привычные приложения для Android.</p><p>В нашей статье разберем, чем система реально хороша, где еще сырая — и сможет ли она стать полноценной заменой Android в российских реалиях.</p><h2>Что за ОС Аврора — главное</h2><p>Когда по причине санкций возникла опасность, что смартфоны российских граждан в один прекрасный момент могут превратиться в кирпичи, работа над отечественным аналогом ОС, которая неторопливо велась с 2016 года, существенно ускорилась. К 2023 году продукты с ОС Аврора поступили в розничную продажу. Это были мобильные устройства под брендом Fplus — смартфоны, планшеты и карманные компьютеры. Приобрести их мог любой желающий, но в первую очередь устройства были рассчитаны на государственный сектор и корпоративное применение.</p><p>Аврора разработана на базе Sailfish OS, финской операционки от компании Jolla (наследницы Nokia), и изначально заточена под нужды корпораций, которым важна безопасность и независимость.</p><p>Создатели Авроры не стали изобретать велосипед, но сместили акценты. Если оригинальная система позиционировалась как альтернатива Android для всех желающих, то российская версия сразу была жестко ориентирована на безопасность и управляемость.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-04-22/7557940d-2f20-482c-9531-d28b1bd4027f.png" alt="" /></figure><p>Федеральная служба по техническому надзору (ФСТЭК) выдала сертификат соответствия, что автоматически открыло двери в госзакупки. Но путь от нишевой разработки до полноценной экосистемы оказался сложнее, чем ожидалось.</p><p>В отличие от iOS и Android, ориентированных на массовый потребительский рынок, Aurora создана с другими целями. Ее принципиальные отличия от указанных платформ заключаются в следующем:</p><ul><li>Это закрытая система. Исходный код недоступен для свободного изучения — в отличие от того же AOSP (открытой базы Android). Это одновременно и плюс, поскольку сложнее найти уязвимости, и минус, так как сообщество не может просто взять и доработать систему. Такой подход резко контрастирует с философией открытости, которую пропагандируют Google и другие ИТ-корпорации. Однако для госструктур, где каждый лишний наблюдатель — потенциальная угроза, подобная изоляция выглядит логичной.</li><li>Архитектура. Аврора построена на принципах модульности: компоненты можно обновлять или заменять по отдельности, не меняя всю систему. Это удобно для корпоративных сценариев, где важно кастомизировать ОС под конкретные задачи — например, отключить камеру у сотрудников, работающих с секретными документами, или жестко привязать устройство к корпоративному VPN. В Android подобные настройки требуют либо глубокой модификации системы, либо использования специализированных решений для повышения безопасности вроде Samsung Knox.</li><li>Экосистема. В Aurora все приложения пишутся строго на QML (для интерфейсов) и C++/JavaScript (для логики), а с недавних пор добавилась поддержка Flutter. Google Play тут нет, но есть RuStore, а также предустановленные сервисы вроде Р7-Офис и VK Мессенджера + корпоративные решения для РЖД или «Аэрофлота». При этом разработчики активно работают над совместимостью с Android-приложениями через контейнерные технологии, пока что с переменным успехом.</li></ul><p>Аврора разрабатывалась с расчетом на разнородные аппаратные платформы, включая российские процессоры Эльбрус и Байкал. Это еще одно отличие от конкурентов, в частности, от iOS, которая работает только с железом Apple.</p><h2>Для кого это сделано</h2><p>Пока основными пользователями Авроры остаются госучреждения и крупный бизнес. Например, <a href="https://3dnews.ru/1117507/rosstat-otpravil-na-skladi-320-tis-planshetov-i-ne-uvidel-v-etom-problemi#:~:text=%D0%92%D0%BE%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%20%D0%92%D1%81%D0%B5%D1%80%D0%BE%D1%81%D1%81%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%B9%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BF%D0%B8%D1%81%D0%B8%20%D0%BD%D0%B0%D1%81%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F,%D0%BD%D0%B0%20442%2C3%20%D0%BC%D0%BB%D0%BD%20%D1%80%D1%83%D0%B1.">Росстат закупил 19 тысяч планшетов</a> на этой ОС для переписи населения, а позже эти устройства разошлись по разным министерствам. В 2023 году в розницу вышли смартфоны Fplus — аппараты с ценником в диапазоне от 24 до 43 тыс. руб. Продажи можно назвать скромными, но цель тут не конкуренция с Xiaomi, а отработка технологий в «боевых» условиях.</p><p>В 2024 году большая часть государственных структур перешла на устройства с Aurora OS для работы с ГИС (государственными информационными системами). <a href="https://auroraos.ru/tpost/t9o7ykdhn1-rzhd-perevel-vseh-provodnikov-na-rossiis">РЖД обязала сотрудников</a> использовать устройства с отечественным ПО — для этого даже закупили партии гаджетов. На ОС Аврора работают терминалы МВД и пилотное оборудование для медицинских нужд.</p><p>Сейчас Аврора уже выходит за рамки смартфонов и КПК: тестируются версии для ТВ, роутеров и даже автомобилей. В 2025 году показали новый прототип для ноутбуков — видимо, чтобы чиновники могли печатать на клавиатуре без риска утечки данных в облачные платформы. Особый интерес представляет программа Аврора+  — разработчики обещают, что это будет унифицированная среда для самых разных устройств: от медицинского оборудования до умных светофоров.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-04-22/34a1837c-8800-4b70-bc26-ed29afa5a205.png" alt="" /></figure><p>Производители выпускают несколько типов гаджетов с предустановленной Aurora OS. Среди них можно выделить защищенные смартфоны Aquarius, которые поставляются в государственные учреждения, и промышленные планшеты Fplus T800, применяемые в корпоративном секторе. Также доступны специализированные решения, например, платежные терминалы, проходящие пилотные испытания в банковской сфере.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-04-22/641e16cc-7991-4bf1-a65c-fd740d2ef745.png" alt="" /></figure><p>Совместимость с Android-приложениями возможна из-за технологии Avroid — собственной разработки Aurora. Ее особенность — использование контейнеризации вместо полной эмуляции, что позволяет запускать приложения в изолированной среде, сохраняя приемлемый уровень производительности и контроль безопасности.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-04-22/a5b81a79-c846-4d31-a251-6f725e49824f.png" alt="" /></figure><p>Однако, как отмечается в технической документации, технология имеет определенные ограничения. Например, не поддерживаются приложения, требующие глубокой интеграции с системой. В 2024 году через Avroid было доступно около 1 500 проверенных Android-приложений, наиболее востребованных в корпоративной среде.</p><h2>В каких местах Aurora конкурирует на равных или опережает Android</h2><p>Никто не станет спорить с тем, что в массовом потребительском сегменте Аврора пока остается нишевым продуктом. В плане популярности и востребованности соревноваться с Android отечественное решение просто не в состоянии. Однако в некоторых направлениях Aurora OS предлагает уникальные решения. Причем преимущества российской ОС проявляются не только в традиционно сильных для нее сферах безопасности, но и в довольно неожиданных аспектах.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-04-22/4d25eb83-206e-49ca-b9e9-695c1a8186cc.png" alt="" /></figure><p>Мы рассмотрим каждый пункт в подробностях и приведем примеры реального превосходства отечественного продукта.</p><h3>Безопасность как концепт</h3><p>Даже на официальном сайте Аврора представлена как защищенная ОС с мобильной инфраструктурой, устойчивой к санкционным рискам. И это чистая правда. В отличие от Android, где безопасность — это по сути набор заплаток на уязвимом ядре, здесь защита встроена в архитектуру.</p><p>Например, механизм доверенной загрузки проверяет цифровую подпись каждого компонента — от загрузчика до системных библиотек. Попытка модифицировать систему приводит к блокировке.</p><p>Для корпоративных пользователей реализована полноценная работа с электронной подписью прямо из системы — без дополнительных токенов и настроек. В банках, внедривших Aurora, время на подписание договоров и документов через встроенный криптопровайдер сокращается в несколько раз.</p><h3>Оптимизированная архитектура без балласта</h3><p>Отсутствие необходимости поддерживать миллионы устройств и тонны legacy-кода позволило создать более стройную архитектуру. На практике это означает, что Aurora потребляет на 30-40% меньше оперативной памяти на аналогичном железе.</p><p>Особенно заметна разница на устройствах с отечественными процессорами. В тестах планшетов на процессорах Эльбрус Aurora демонстрирует плавность интерфейса, которой сложно добиться на Android даже с более мощными мобильными системами Snapdragon на кристалле Qualcomm.</p><h3>Энергоэффективность как приоритет</h3><p>В отличие от Android, где фоновые сервисы Google и производителей съедают заряд батареи, Aurora реализует агрессивную оптимизацию энергопотребления. В полевых испытаниях устройства работали на 20-25% дольше в аналогичных условиях использования.</p><p>Особенно ценна эта особенность для промышленного применения — например, в устройствах мониторинга, которые должны работать неделями без подзарядки. При этом система сохраняет работоспособность при экстремальных температурах от -40°C до +60°C благодаря тому, что устройства изначально создавались с учетом суровых климатических условий использования.</p><h3>Глубокая интеграция с госсистемами</h3><p>Aurora — это единственная мобильная ОС, где Госуслуги, СБИС и другие государственные сервисы работают не как сторонние приложения, а как полноценная часть системы. Например, электронная подпись документов реализована на уровне ОС, а не через отдельное приложение.</p><p>В одном из региональных МФЦ (Нижегородская область) после перехода на Aurora скорость обработки документов увеличилась на 15% просто потому, что система понимает российские форматы дат, номеров и других данных непосредственно из коробки.</p><h3>Предсказуемая система обновлений</h3><p>В Android мир обновлений — это лотерея, где сроки и доступность апдейтов зависят от производителя устройства. Aurora предлагает централизованную систему с гарантированной поддержкой каждого гаджета в течение 5 лет.</p><p>Для корпоративных клиентов это означает возможность планировать жизненный цикл устройств на годы вперед. В РЖД, где развернуто несколько тысяч устройств с Aurora, ИТ-отдел сократил расходы на обновление парка на 40% благодаря этой предсказуемости.</p><h3>Встроенные корпоративные инструменты</h3><p>То, что в Android требует покупки дополнительных MDM-решений (специальных программ для управления корпоративными устройствами), в Aurora доступно в заводской сборке.</p><p>Что может администратор:</p><ul><li>создавать изолированные профили для разных задач;</li><li>управлять правами доступа к функциям устройства;</li><li>дистанционно развертывать политики безопасности;</li><li>контролировать целостность системы на всех устройствах.</li></ul><p>В банках внедрение Aurora позволит сократить расходы на мобильных администраторов — многие функции управления станут доступны без дополнительного ПО.</p><h3>Гибкость для специализированных решений</h3><p>Aurora легко адаптируется под узкоспециализированные задачи.</p><p>Несколько примеров:</p><ul><li>терминалы для нефтяников с ударопрочным корпусом и возможностью работы в перчатках;</li><li>медицинские устройства с поддержкой специализированных датчиков;</li><li>промышленные планшеты с интерфейсами для устаревшего оборудования.</li></ul><p>На кастомизацию под такие задачи обычно требуется в 2-3 раза меньше времени, чем при работе с Android. При этом нет необходимости модифицировать ядро системы — все делается через стандартные инструменты разработки.</p><h3>Локализация, которая учитывает реалии</h3><p>В Aurora русский язык — не просто перевод интерфейса, а полноценная основа системы.</p><p>Это проявляется в поддержке всех особенностей русского языка, интеграции с национальными стандартами, учете российских норм документооборота и адаптации под местные бизнес-процессы.</p><p>Например, система корректно обрабатывает склонение ФИО во всех падежах — проблема, с которой до сих пор сталкиваются многие Android-приложения.</p><h3>Независимость от внешних факторов</h3><p>Архитектура Aurora изначально проектировалась с учетом возможных ограничений:</p><ul><li>все критически важные сервисы имеют отечественные аналоги;</li><li>система может работать в полностью изолированных сетях;</li><li>обновления распространяются через российскую инфраструктуру;</li><li>нет зависимостей от зарубежных сервисов.</li></ul><p>Если определенные международные сервисы прекратят работу в России, устройства на Aurora продолжат функционировать без ограничений.</p><h3>Производительность в специализированных сценариях</h3><p>При выполнении задач, важных для корпоративного сектора, Aurora регулярно обходит Android в тестах:</p><ul><li>обработка больших массивов данных — на 15-20% быстрее;</li><li>криптографические операции — в 2-3 раза эффективнее;</li><li>параллельная работа с документами — меньше задержек;</li><li>длительные сессии работы — стабильнее производительность.</li></ul><p>Особенно заметна разница на устройствах с российскими процессорами, где оптимизация Aurora проявляется наиболее ярко. Справедливости ради отметим, что в потребительских задачах (игры, видео) Android быстрее на 20-25%.</p><h3>Экосистема для профессиональных разработчиков</h3><p>Хотя магазин приложений Aurora пока не может соперничать с Google Play по количеству программ, для корпоративных нужд предлагаются:</p><ul><li>современные инструменты разработки (Flutter, Qt);</li><li>простые механизмы портирования Android-приложений;</li><li>система сертификации для защищенных решений;</li><li>поддержка российских криптоалгоритмов на уровне API.</li></ul><p>Например, разработка корпоративного мессенджера с шифрованием занимает вдвое меньше времени, чем для Android.</p><h3>Поддержка отечественного железа</h3><p>Aurora демонстрирует лучшую оптимизацию для российских процессоров по сравнению с Android. В тестах на Эльбрусах и Байкалах разница в производительности достигает 30-40% в пользу отечественной ОС.</p><p>Система также поддерживает промышленные компьютеры и контроллеры, устаревшее оборудование, специализированные аппаратные модули и устройства с повышенными требованиями к безопасности. Это делает Aurora предпочтительным выбором для проектов импортозамещения в госсекторе и промышленности.</p><p>Но главное преимущество Aurora — это не отдельные функции, а целостная концепция. Система создавалась не затем, чтобы угнаться за Android, а чтобы решать конкретные задачи российских пользователей и предприятий. И судя по темпам развития, у нее есть все шансы не просто догнать, но и перегнать зарубежные аналоги в ключевых для нашей страны сферах.</p><h2>Проблемы и перспективы ОС Aurora</h2><p>Основное препятствие для массового внедрения Aurora — ограниченность программной экосистемы. Несмотря на наличие RuStore, количество качественных приложений остается критически малым. В середине 2024 года на официальном сайте было представлено <a href="https://auroraos.ru/page30588774.html">несколько сотен нативных приложений</a>, при этом многие из них — узкоспециализированные решения для госсектора.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-04-22/d971dea9-f021-4fc0-809e-50201fb86008.png" alt="" /></figure><p>Механизм совместимости с Android-приложениями через Авроид Платформу демонстрирует существенные ограничения в производительности. Тесты показывают падение скорости выполнения операций на 40-60% по сравнению с нативными Android-устройствами аналогичной конфигурации. Особенно заметны проблемы при работе с графически насыщенными приложениями.</p><p>Аппаратная платформа также вызывает вопросы. Большинство доступных устройств используют устаревшие процессорные решения, что ограничивает пользовательский опыт. Например, флагманский смартфон Aquarius AQ27 на базе Aurora оснащен процессором, эквивалентным по мощности Snapdragon 730G, который появился на рынке еще в 2019 году.</p><p><a href="https://auroraos.ru/tpost/hx0jhujaf1-avrora-tsentr-obnovilas-do-versii-520">Свежие анонсы</a> разработчиков свидетельствуют о смене стратегического курса. Представленный в конце 2024 года гибридный режим работы — это первая попытка выйти за рамки мобильной ОС. Техническая документация указывает на использование адаптивного интерфейса, который динамически изменяет элементы управления в зависимости от подключенных устройств.</p><p>Согласно <a href="https://auroraos.ru/">дорожной карте разработчиков</a>, ключевые этапы развития платформы запланированы до 2027 года. В официальных материалах ОМП указано, что полноценная поддержка Android-приложений (без потери производительности) ожидается не ранее 2026 года, а расширение экосистемы до 3000+ нативных приложений должно быть достигнуто к концу того же года. Для массовой адаптации потребуется дополнительное время: по оценкам специалистов — это еще от 2 до 3 лет.</p><p>Желаем Авроре удачи, а читаем про мобильную разработку <a href="https://t.me/+Fb6_4ek5P6gzOTcy">здесь</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Большой гайд по мобильной разработке от Tproger: полезные статьи, практики и советы</title>
      <link>https://tproger.ru/articles/bolwoj-gajd-po-mobilnoj-razrabotke-ot-tproger--poleznye-stati--praktiki-i-sovety</link>
      <comments>https://tproger.ru/articles/bolwoj-gajd-po-mobilnoj-razrabotke-ot-tproger--poleznye-stati--praktiki-i-sovety?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Татьяна Жукова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/bolwoj-gajd-po-mobilnoj-razrabotke-ot-tproger--poleznye-stati--praktiki-i-sovety</guid>
      <description><![CDATA[<p>Делимся нашими статьями про мобильную разработку: iOS, Android, Flutter, SwiftUI, Jetpack Compose, публикация в сторах и советы по доступности — всё в одном месте.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/bolwoj-gajd-po-mobilnoj-razrabotke-ot-tproger--poleznye-stati--praktiki-i-sovety">Большой гайд по мобильной разработке от Tproger: полезные статьи, практики и советы</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Swift]]></category>
      <category><![CDATA[Kotlin]]></category>
      <category><![CDATA[App Store]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Flutter]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 02 May 2025 10:00:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>Мечтаете сделать своё приложение, но не знаете, с чего начать? Или уже пилите продукт, но хочется сильнее прокачаться в Android или iOS? Мы собрали для вас подборку самых полезных и актуальных статей по мобильной разработке от Tproger.</p><p>Сначала — немного базы: теории, языков, платформ. Потом — инструменты, практические гайды и даже ошибки, которых стоит избегать. Сохраняйте, чтобы не потерять!</p><h2>Немного базы</h2><p>Статьи, которые помогут разобраться, с чего начать и куда двигаться:</p><p><a href="https://tproger.ru/articles/pervye-wagi-v-mobilnoj-razrabotke-s-flutter"><b>Первые шаги в мобильно</b>й разработке с <b>Flutter</b></a> — Здесь обзор фреймворка Flutter: настройка окружения, создание первого приложения и особенности виджетов.</p><p><a href="https://tproger.ru/articles/sozdayom-mobilnoe-prilozhenie-s-nulya--ot-idei-do-publikacii-v-app-store-i-google-play">Создаём мобильное приложение с нуля: от идеи до публикации в App Store и Google Play</a> — Делимся полным циклом создания: дизайн, разработка, тестирование, релиз.</p><p><a href="https://tproger.ru/articles/introduction-to-mobile-development">Введение в мобильную разработку для Android: с каких языков начать изучение?</a> — Рассматриваем, с каких языков программирования начать путь в Android-разработке и почему.</p><p><a href="https://tproger.ru/articles/8-jazykov-programmirovanija-dlja-android-razrabotchika">8 языков программирования для Android-разработчика</a> — Перечисляем восемь языков программирования, которые стоит рассмотреть Android-разработчику. Изучаем плюсы, минусы, области применения, особенности.</p><p><a href="https://tproger.ru/articles/kak-stat-android-razrabotchikom-s-nulja-dorozhnaja-karta">Дорожная карта по Android-разработке с нуля</a> — Пошаговое руководство для тех, кто хочет освоить Android-разработку с нуля: от установки среды до публикации.</p><p><a href="https://tproger.ru/articles/osnovy-swiftui-dlya-ios-razrabotchikov">Основы SwiftUI для iOS-разработчиков</a> — Изучаем базовые возможности SwiftUI: декларативная верстка интерфейсов, примеры кода и сокращение сроков разработки.</p><p><a href="https://tproger.ru/articles/nachalo-raboty-v-android-studio-i-pervyj-prostoj-proekt">Начало работы в Android Studio и первый простой проект</a> — Пошаговое руководство по началу работы в Android Studio и созданию первого простого проекта. Учимся пользоваться инструментом с нуля.</p><h2>Практика, инструменты и тонкости</h2><p>Когда разобрались с базой — идём дальше и погружаемся в инструменты и реальные задачи:</p><p><a href="https://tproger.ru/articles/rabota-s-animaciej-v-android-razbiraem-motionlayout">Работа с анимацией в Android: разбираем MotionLayout</a> — Рассказываем, как использовать MotionLayout для создания сложных анимаций в Android-приложениях. С примерами!</p><p><a href="https://tproger.ru/articles/jetpack-compose-i-kotlin--kak-razrabatyvat-sovremennye-ui">Jetpack Compose и Kotlin: как разрабатывать современные UI</a> — Показываем, как разрабатывать современные пользовательские интерфейсы с помощью Jetpack Compose и языка Kotlin. Делимся, как использовать в проектах.</p><p><a href="https://tproger.ru/articles/java-vs-kotlin">Java vs Kotlin для Android-разработки: ответы «за» и «против»</a> — Сравниваем Java и Kotlin для Android-разработки: плюсы, минусы и рекомендации по выбору.</p><p><a href="https://tproger.ru/articles/bojlerplejt-na-fastlane-dlja-integracii-obnovlenij-ci-cd-android-prilozhenij">Бойлерплейт Fastlane для быстрого обновления Android-приложений</a> — Показываем, как использовать Fastlane для автоматизации обновлений Android-приложений, даем рекомендации по применению.</p><p><a href="https://tproger.ru/articles/kak-uderzhat-polzovatelya-v-prilozhenii-s-pomoshhyu-dostupnosti">Accessibility для всех: как удержать пользователя в приложении с помощью доступности</a> — Объясняем, как внедрение accessibility улучшает пользовательский опыт и помогает удержать аудиторию.</p><h2>Про рост, релиз и продвижение</h2><p>Когда всё работает — пора думать про рост, релиз и продвижение:</p><p><a href="https://tproger.ru/articles/kak-dobavit-prilozhenie-v-google-play">Как добавить приложение в Google Play</a> — Объясняем, как подготовить и опубликовать приложение в Google Play: от регистрации до релиза.</p><p><a href="https://tproger.ru/articles/5-glavnyh-oshibok-v-aso-app-store-optimization">5 главных ошибок в ASO — App Store Optimization</a> — Разбираем пять распространенных ошибок в App Store Optimization и как их избежать. Что нужно делать, чтобы не слить продвижение.</p><p><a href="https://tproger.ru/articles/ot-idei-k-uspehu--kak-sozdat-populyarnoe-mobilnoe-prilozhenie">От идеи к успеху: как создать популярное мобильное приложение</a> — Рассказываем, как пройти путь от идеи до успешного мобильного приложения: планирование, разработка, тестирование и продвижение.</p><p>Не забудьте сохранить, чтобы не искать потом по всему интернету!</p><p>Большая подборка по <a href="https://tproger.ru/articles/bolwoj-gajd-po-react-ot-tproger--topovye-stati-i-instrumenty">React</a> — уже на сайте.</p><p>Кстати! Забрать все самые топовые нейронки для айтишников можно в нашем <a href="https://tprg.ru/LN8a">большом гайде с 70+ ИИ-инструментами </a></p>]]></content:encoded>
    </item>
    <item>
      <title>Почему хороший код — это не главное</title>
      <link>https://tproger.ru/articles/pochemu-horowij-kod---eto-ne-glavnoe</link>
      <comments>https://tproger.ru/articles/pochemu-horowij-kod---eto-ne-glavnoe?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Baskon]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/pochemu-horowij-kod---eto-ne-glavnoe</guid>
      <description><![CDATA[<p>Почему чистый код не всегда ведёт к успеху? В статье — реальные кейсы, конфликт интересов между разработкой и бизнесом, и советы, как найти баланс ради пользователя.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/pochemu-horowij-kod---eto-ne-glavnoe">Почему хороший код — это не главное</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[Бета]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 28 Apr 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Начинающим разработчикам часто говорят о «чистом коде» и безупречной архитектуре. Это важно, но в реальных проектах чистота кода — не цель, а инструмент. Надо помнить, что главное — это решить задачу бизнеса и помочь пользователю.</p><p>Можно сделать технически идеальное решение. Если зациклиться на красоте, легко забыть, зачем пишешь. В этой статье разберём, почему идеальный код не гарантирует успех, и как найти баланс между качеством и пользой.</p><h2>Каждый тянет одеяло на себя</h2><p>В погоне за личным представлением об идеальном исполнении задачи, надо помнить, что в первую очередь надо выполнить задачу, а уже во вторую сделать это так как считаете нужным. Обычно в конфликте за код — три участинка: менеджеры, разработчики и пользователи. Разберёмся, кто чего хочет. Тогда станет видно, что определяет ситуацию.</p><h3>Менеджер: Быстрее. Дешевле. Лучше</h3><p>Для менеджера чистый код — не цель, а издержка. Его задача — результат: вовремя запустить фичу, удержать клиента, уложиться в бюджет. Он мыслит цифрами, планами и рисками. Если проект горит, он не будет ждать, пока программист «вылижет» архитектуру. Надо выпускать — а баги можно поправить потом. Или пусть чинят другие.</p><p>Управленец смотрит шире: он общается с руководством, инвесторами, маркетингом, клиентами. Все они ждут результата к конкретной дате. От этого зависят бонусы, контракты, доверие. В такой картине идеальный код — роскошь. Главное — работающий продукт. Именно поэтому менеджеры могут откладывать технический долг, давить дедлайнами или усиливать команду извне.</p><p>Хрестоматийный пример — история с Cyberpunk 2077. Бизнес торопился к праздничным продажам, несмотря на предупреждения команды. Вышло вовремя, но сыро: баги, скандалы, возвраты, удаление из PS Store. Да, игру потом допилили, но репутация уже пострадала.</p><p>Хороший менеджер это понимает и ищет компромисс: даёт команде время на критичный рефакторинг, включает тестирование в планы, объясняет, зачем спешить. Он не враг разработке, просто у него другая система координат. Для него важнее не «красиво», а «успешно»: вовремя, с достаточным качеством, чтобы продукт жил и развивался.</p><h3>Разработчик. Лучше меньше, но лучше</h3><p>Разработчик получает удовольствие от хорошего кода. Это его дофамин. Быстрые костыли вызывают у него физическую боль и моральное страдание. Ему важно не просто «работает», а «сделано правильно» — как надёжная мебель, без торчащих гвоздей, в которую не страшно сесть. Потому что если сделать плохо, через месяц всё посыплется — и чинить будет он.</p><p>Для программиста стабильность важнее скорости. Он думает наперёд: как поддерживать модуль, как масштабировать, как не просыпаться ночью из-за падающего продакшена. Поэтому «сэкономить на тестах» звучит как кощунство. Качество — часть его ответственности.</p><p>Именно здесь начинается конфликт с менеджером. Одному нужно быстрее, другому — надёжнее. Менеджеру важен релиз, разработчику — чтобы не стыдно было на Code Review.</p><p>Иногда это уходит в крайности. Вспомним Netscape: когда команда решила переписать всё с нуля, но проиграла рынок Internet Explorer. Браузер вышел спустя годы — медленный, устаревший, никому не нужный. Код был чище, но пользователь ушёл.</p><p>Или другая крайность — когда инженер, прикрываясь качеством, переписывает модуль просто потому, что «не нравится стиль» предыдущего разработчика. Время теряется, а пользы нет. Бывает и саботаж — пассивный, когда тянут время, и активный: баги, чтобы потом чинить за деньги. Редко, но случается.</p><p>Чаще — просто непонимание. Разработчик хочет изучить новую технологию, прокачаться, сделать «по фэншую». Менеджер боится рисков. Один хочет фокус, другой — многозадачность. Компромисс? Обсуждать. Хороший разработчик умеет говорить на языке бизнеса: «если не исправим сейчас — через полгода выпуск фич замедлится». Плохой — либо ломается, либо тайно делает по-своему.</p><p>В идеале всё решает диалог. Но пока его нет, программист защищает проект от будущего коллапса. Или думает, что защищает.</p><h3>Пользователь. Просто сделайте это</h3><p>Пользователю всё равно, кто в команде прав. Ему неинтересно, на чьей стороне аргументы — бизнеса или разработки. Он оценивает продукт по одному критерию: работает или нет.</p><p>Если побеждает бизнес-оптика — релизы выходят быстро, но страдает качество. Пользователь сталкивается с багами, нестабильной работой, неудачными решениями в интерфейсе. Он недоволен, делится негативным опытом, уходит к конкурентам.</p><p>Если доминирует подход разработки — всё надёжно, продумано, покрыто тестами, но слишком медленно. Функции появляются редко или не появляются вовсе. Пользователь ждёт, теряет интерес — и тоже уходит. В обоих случаях страдает именно он, хотя формально в конфликте не участвует.</p><p>На самом деле пользователь — ключевая фигура в этом треугольнике. Ради него создаётся продукт. Его выбор — остаться или уйти — определяет успех всей компании. Но при этом интересы пользователя чаще всего остаются за кадром, особенно когда команда погружается в внутренние споры и противоречия.</p><p>Хороший пример — история MySpace. Платформа позволяла пользователям встраивать на страницы произвольный HTML, CSS и Flash. Это давало широкие возможности кастомизации, но превращало сайт в набор тяжёлых, нестабильных страниц. Вместо того чтобы оптимизировать опыт, владельцы сделали ставку на монетизацию: добавляли рекламу, перегружали интерфейс, продолжали расширять функциональность. В результате пользователи столкнулись с деградацией качества и начали уходить. Даже творцы, которым эта свобода нравилась, не смогли удержать тех, кому она мешала. Когда компания попыталась перезапустить платформу, аудитория уже окончательно ушла на более стабильные альтернативы. Этот кейс наглядно показывает: проигнорированный пользовательский опыт способен обрушить даже крупнейший продукт.</p><figure><img src="https://media.tproger.ru/user-uploads/114650/2025-04-24/0dfd2c88-c26f-4c6f-8499-94ad4b3f9642.png" alt="" /><figcaption>Пример того как пользователь решил себя выразить</figcaption></figure><p>Но и противоположная крайность — не выход. Когда команда разработки слишком долго фокусируется на внутреннем качестве и не выпускает обновлений, пользователи также теряют интерес. Даже самый «идеальный» код может оказаться никому не нужным, если рынок за это время шагает вперёд. Пример — продукты, которые годами «допиливались» ради технического совершенства, но не успевали за изменениями в потребностях пользователей. Если нужный функционал так и не появляется — пользователь ищет альтернативу.</p><p>Иногда пользователь напрямую вовлекается в диалог — в open-source проектах, играх с бета-тестом, через отзывы и обращения в поддержку. Его реакция может оказывать реальное влияние: побуждать менеджеров требовать доработок, а разработчиков — пересматривать архитектурные решения. Если пользователи массово жалуются на неудобства, откладываются новые фичи, приоритет смещается на устранение критичных проблем. Обратная связь становится полем переговоров между командами — и аргументом в пользу реальных действий.</p><p>Важно помнить: пользователь не делит команду на менеджеров и разработчиков. Он видит продукт целиком. Его не волнуют внутренние конфликты — только итог. Если что-то не работает, он воспринимает это как провал всей команды. Поэтому зрелые компании стремятся минимизировать влияние внутренних споров на пользовательский опыт. Они отдают приоритет коротким итерациям, тестированию перед релизом, сбору и обратной связи.</p><p>В фокусе всегда должен быть пользователь. И чем раньше команды осознают это, тем больше шансов, что конфликт между бизнесом и разработкой не приведёт к потере аудитории.</p><h2>Как конфликты реально влияют на индустрию: разбор кейсов</h2><p>Рассмотрим несколько реальных конфликтов между бизнес-целями и идеализмом разработки в истории IT, их последствия и чему они научили индустрию.</p><h3>Кейс 1: Переписывание Netscape Navigator с нуля (1998-2000)</h3><p>Этот случай стал хрестоматийным примером того, как техническое решение, принятое без учёта бизнес-реалий, погубило продукт. В конце 90-х браузер Netscape Navigator доминировал на рынке, но кодовая база устаревала. Разработчики Netscape, стремясь сделать «как лучше», убедили руководство пойти на радикальный шаг – полностью переписать браузер с нуля, заодно открыв исходный код (проект Mozilla). Казалось, что новая архитектура сделает продукт лучше в долгосрочной перспективе. Но что произошло на практике? Пока инженеры два года создавали идеальный новый браузер, конкурент Internet Explorer от Microsoft захватил рынок, воспользовавшись паузой в развитии <a href="https://habr.com/ru/articles/441456/#:~:text=%D0%9D%D0%BE%20%D1%8D%D1%82%D0%BE%20%D1%83%D0%B6%D0%B5%20%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%20%D0%BD%D0%B5,%D0%B7%D0%B0%D1%85%D0%B2%D0%B0%D1%82%D0%B8%D0%BB%20%D0%B2%D1%81%D1%8E%20%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D1%88%D1%83%D1%8E%D1%81%D1%8F%20%D0%B4%D0%BE%D0%BB%D1%8E%20%D1%80%D1%8B%D0%BD%D0%BA%D0%B0">Netscape</a>​. Версия Netscape 6.0, наконец выпущенная через три года, оказалась сырой и медленной, а доля рынка Netscape к тому моменту упала почти до нуля​. Компания потерпела крах: её продали, а вскоре подразделение Netscape было закрыто. По сути, переписывание «на будущее» убило тот самый бизнес, ради которого всё затевалось.</p><p>Этот кейс наглядно показывает: хороший код и правильная архитектура не спасут продукт, если время упущено. Решение разработчиков переписать всё обернулось стратегической ошибкой. Извлечённый урок сформулировал блогер <a href="https://habr.com/ru/articles/441456/#:~:text=,%D0%BF%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%BD%D1%8B%D1%85%20%D1%81%D0%B8%D1%82%D1%83%D0%B0%D1%86%D0%B8%D1%8F%D1%85%20%D0%B8%20%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%20%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0%D1%85">Джоэл Спольски</a>: «Никогда не переписывайте работающий софт с нуля», называя это худшей стратегической ошибкой в разработке​.</p><h3>Кейс 2: Релиз Cyberpunk 2077. Бизнес против качества (2020)</h3><p>У CD Projekt Red были огромные ожидания от релиза Cyberpunk 2077: миллионы предзаказов, маркетинговые кампании, давление инвесторов. Команда настаивала, что игра сыровата, особенно на старых консолях. Но менеджмент решил не переносить релиз — слишком велик был соблазн выйти к праздничному сезону.</p><figure><img src="https://media.tproger.ru/user-uploads/114650/2025-04-24/315617d3-66b7-4801-a2a3-6ab8fd9ff0dd.jpeg" alt="" /><figcaption>Лицо игроков запустивших киберпанк на ps4 в день релиза</figcaption></figure><p>Результат: <a href="https://daily.afisha.ru/games/18098-vsya-igra-stanet-memom-istoriya-cyberpunk-2077-ot-ozhidaniya-do-realnosti/#:~:text=%D0%A1%D0%BF%D1%83%D1%81%D1%82%D1%8F%20%D0%BC%D0%B5%D1%81%D1%8F%D1%86%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%20%D1%80%D0%B5%D0%BB%D0%B8%D0%B7%D0%B0%20Cyberpunk,%D1%82%D0%B0%D0%BA%D0%BE%D0%B9%20%D0%BF%D1%83%D1%82%D1%8C%20%D0%B2%D1%81%D0%B5%D0%B3%D0%BE%20%D0%BB%D0%B8%D1%88%D1%8C%20%D0%B7%D0%B0%C2%A0%D0%BC%D0%B5%D1%81%D1%8F%D1%86">скандал</a>. Масса багов, недовольство игроков, игра удалена из PlayStation Store — беспрецедентный шаг. CDPR принесла извинения и почти год выпускала патчи. К 2021 году игру удалось стабилизировать, но репутационные потери и падение акций стали высокой ценой.</p><p>Вывод: краткосрочная победа бизнеса обернулась долгосрочными убытками. Компромисс между сроками и качеством — не прихоть, а необходимость.</p><h3>Кейс 3: Внутренние конфликты и увольнения</h3><p>Многие IT-компании сталкиваются с ситуацией, когда разлад между менеджментом и разработкой приводит к потере людей. Одни уходят из-за несогласия с курсом, другие выгорают под прессингом. Иногда увольняют руководителей, загнавших команду в тупик.</p><p>Том ДеМарко, автор Peopleware, отмечал: «Качество, сильно превышающее требования, снижает продуктивность», — и подчёркивал важность общения.</p><p>Если конфликт не решается, проигрывают все — команда разваливается, проекты буксуют. Иногда помогает смена культуры или переход на подход, где команду действительно слышат (например, agile). Главный урок — нельзя игнорировать человеческий фактор. Без диалога даже сильные специалисты не спасут проект.</p><h2>Что важно запомнить начинающему разработчику</h2><p>Хороший код — это не тот, что идеален с точки зрения синтаксиса или архитектуры, а тот, который решает задачу. Не забывайте, что цель вашей работы — не чистота кода ради неё самой, а польза для продукта и пользователя.</p><p>Перед тем как тратить время на рефакторинг или переосмысление архитектуры, задавайте себе вопросы:</p><ul><li>Заметит ли пользователь эту работу?</li></ul><ul><li>Поможет ли это продукту?</li></ul><ul><li>Можно ли достичь того же результата проще?</li></ul><p>Иногда лучше выпустить «рабочее решение» и вернуться к улучшениям позже. В другой ситуации — наоборот: стоит затормозить релиз, если качество слишком сильно пострадает. Всё зависит от контекста.</p><p>Рассмотрим реальные советы, которые могут помочь.</p><h3>Понимайте бизнес-реальность</h3><p>Разработчикам важно учиться видеть картину шире. Менеджеры не давят «просто так» — за ними тоже стоят сроки, бюджеты, обязательства перед клиентами или акционерами. Когда вы понимаете, откуда идут требования, проще искать компромиссы.</p><p>Вместо того чтобы воспринимать бизнес как оппонента, рассматривайте его как партнёра. Вы работаете на общий результат.</p><h3>Развивайте навык коммуникации</h3><p>Общение — ключевой софт-скилл в команде. Умение говорить понятно и по делу поможет вам быть услышанным.</p><p>Если есть технический риск — донесите его языком последствий, а не терминов. Например: «Если не оптимизируем этот модуль, через месяц система не выдержит нагрузки и мы потеряем пользователей». Такой аргумент воспринимается серьёзнее, чем обсуждение архитектурных нюансов.</p><p>И наоборот — когда продакт говорит, что нужно ускориться, попробуйте понять, в чём реальная потребность. Возможно, не нужно делать всё сразу — достаточно MVP.</p><h3>Ищите баланс</h3><p>Умение договариваться и находить разумный баланс между скоростью, качеством и удобством для пользователя — один из важнейших навыков разработчика. Научиться видеть этот баланс и не впадать в крайности (перфекционизм или спешка) — то, что приходит с опытом. Но начать можно прямо сейчас: задавая вопросы, предлагая решения, не уходя в глухую оборону.</p><p>В итоге сильный разработчик — это не только тот, кто пишет хороший код. Это тот, кто помогает делать продукт лучше. А значит — умеет видеть за задачей пользователя, за фичей — цель, а за диалогом — шанс построить что-то действительно ценное.</p><p>Ты точно программист, если читаешь это! Больше мемов, инсайтов и боли кодеров <a href="https://t.me/+ajgz7pDecB4xZTI6">тут</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>От таблиц к сквозной цифровой модели: трансформация планирования поставок в металлургии</title>
      <link>https://tproger.ru/articles/ot-tablic-k-skvoznoj-cifrovoj-modeli--transformaciya-planirovaniya-postavok-v-metallurgii</link>
      <comments>https://tproger.ru/articles/ot-tablic-k-skvoznoj-cifrovoj-modeli--transformaciya-planirovaniya-postavok-v-metallurgii?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Сергей Трошин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/ot-tablic-k-skvoznoj-cifrovoj-modeli--transformaciya-planirovaniya-postavok-v-metallurgii</guid>
      <description><![CDATA[<p>Меня зовут Сергей Трошин, я отвечаю в НЛМК за развитие систем управления производством, и сегодня расскажу о том, как компания перевела раздробленные планово-логистические процессы в цифровую экосистему со сквозной интеграцией и пользовательской аналитикой.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/ot-tablic-k-skvoznoj-cifrovoj-modeli--transformaciya-planirovaniya-postavok-v-metallurgii">От таблиц к сквозной цифровой модели: трансформация планирования поставок в металлургии</a>»</p>]]></description>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 24 Apr 2025 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p><i>Металлургическое производство, несмотря на его сложность, можно сравнить с обычной кухней: все начинается с ингредиентов. Только вместо приправ, овощей и мяса — железная руда и флюсы. И если повар может обойтись без пары позиций или быстро найти замену из того, что осталось в холодильнике, то в доменной печи недостаток хотя бы одного сырьевого потока грозит остановкой всей производственной цепочки. </i></p><p><i>Меня зовут Сергей Трошин, я отвечаю в НЛМК за развитие систем управления производством и сегодня расскажу о том, как компания перевела раздробленные планово-логистические процессы в цифровую экосистему со сквозной интеграцией и пользовательской аналитикой.</i></p><figure><img src="https://media.tproger.ru/user-uploads/114594/2025-04-17/c6abb764-5339-439e-9d8e-3991b847985d.png" alt="" /></figure><h2>Почему таблицы больше не работают</h2><p>До запуска проекта основным инструментом для планирования обеспеченности сырьем были Excel-таблицы, разбросанные по десяткам подразделений. Каждая структура вносила в них свои данные, следовала собственным методикам и допущениям. В результате на формирование сводного плана поставок и потребления сырья уходила масса времени и сил. Сама же процедура при этом сопровождалась рисками — потеря данных, несогласованность расчетов и непрозрачность.</p><p>Сложность усугублялась и тем, что методики расчета остатков и планов существовали преимущественно в виде неформализованных знаний, закрепленных в головах отдельных специалистов. В продолжение кулинарной метафоры: рецепты передавались из уст в уста и не были записаны на бумаге. Более того, координация между участниками происходила по почте или телефону — и итоговый результат сильно зависел от человеческого фактора, ведь часть информации могла потеряться при разговоре. Для металлургического производства, где стабильность и точность имеют первостепенное значение, такая ситуация — однозначная точка роста.</p><figure><img src="https://media.tproger.ru/user-uploads/114594/2025-04-17/b69a7c45-57b5-4260-b7b5-552adf2c4c35.jpg" alt="" /></figure><h2>Архитектура сквозного планирования</h2><p>Создание системы началось с формализации методик. Специалисты выявили источники данных, выровняли логику расчетов и консолидировали формулы, ранее распределенные по Excel. Ключевым технологическим решением стал переход к балансовому подходу: теперь при прогнозе остатков используются данные о запасах, а также графики производства, поступления и потребления сырья. Такой метод позволяет строить ежедневный прогноз на месяц вперед с высокой степенью точности.</p><figure><img src="https://media.tproger.ru/user-uploads/114594/2025-04-17/59d2e081-c8da-488a-aa14-399854078dce.png" alt="" /></figure><p>Архитектура решения базируется на единой цифровой платформе предприятия, дополненной компонентами Knowledge Space. Интеграция с корпоративной шиной данных на базе Kafka обеспечивает поступление фактических данных из внешних и внутренних систем — от отгрузок до объемов производства. Система объединяет данные от десятков источников сырья и подразделений — от копрового до агломерационного цехов.</p><figure><img src="https://media.tproger.ru/user-uploads/114594/2025-04-17/3fba35eb-a764-47d9-9fa2-19fac742572b.png" alt="" /></figure><h2>Прогнозный мониторинг в действии</h2><p>В текущей реализации система охватывает более 15 типов материальных потоков: железорудное сырье (агломерат, окатыши, концентрат), кокс, угли, флюсы, а также производные — чугун и сталеплавильный блок. Инструмент ежедневно рассчитывает, на сколько дней вперед хватит запасов каждого вида сырья с учетом текущих и прогнозных темпов потребления и поступления. Расчет остатка осуществляется балансовым методом с использованием классической формулы: остаток на начало + объем поступления – потребление. При этом важно, что реализация в системе учитывает актуальный остаток по видам сырья на каждые сутки, что позволяет пересчитывать прогноз запаса на фактическое состояние.</p><p>Интерфейс системы ориентирован на специалистов по планированию и включает таблицы и графики с наглядной визуализацией трендов. В дополнение к этому для руководителей подразделений разработали BI-дашборды — они позволяют контролировать уровень запасов, оперативно реагировать на отклонения и оценивать риски профицита или дефицита.</p><figure><img src="https://media.tproger.ru/user-uploads/114594/2025-04-17/10207337-a330-4037-90c4-78ca241ed9a9.png" alt="" /></figure><h2>Организация работы и методология</h2><p>Система разрабатывалась по гибкой методологии: каждый из трех релизов проекта включал несколько трехнедельных спринтов с промежуточными демо, тестированием и выходом в продуктивную среду. Такой подход позволил интегрировать обратную связь от конечных пользователей и гибко адаптироваться к их требованиям.</p><p>В процессе проработки проектной методологии специалисты также решили одну из самых сложных задач — унифицировали расчетные подходы различных подразделений. При обсуждении разработчики применяли моделирование расчетов и проводили тесты еще до этапа кодирования. Это позволило минимизировать недопонимание между ИТ и бизнесом и ускорить реализацию.</p><p>Для управления доступом в системе реализовали ролевую модель. Теперь пользователи получают права на внесение или просмотр данных в зависимости от своей роли и уровня ответственности. Пользовательский опыт активно отслеживается с помощью инструментария Matomo, а новые подразделения привлекаются поэтапно, с учетом зрелости их бизнес-процессов.</p><h2>Ограничения и векторы развития</h2><p>Несмотря на успех проекта, определенные вызовы сохраняются. Так, в рамках первой фазы удалось охватить не все материальные потоки: часть данных по второстепенным материалам по-прежнему вводится вручную. Кроме того, в условиях форс-мажора система пока не заменяет экспертное ручное управление. Да и отказ от Excel как универсального инструмента планирования еще не завершен — часть специалистов продолжает использовать привычные табличные формы.</p><p>Тем не менее, решение уже показало свою эффективность. Точность прогноза остатков сырья повысилась, риски незапланированных остановок агрегатов, наоборот, снизились. Планирование стало сквозным, а аналитика — доступной. В перспективе следующего этапа — автоматизировать планирование отгрузок сырья и полное выстраивание цифровой цепочки от сырья до чугуна (и далее — до стали).</p><p>Цифровая трансформация металлургического планирования — это не просто замена Excel-инструментов на ИТ-систему. Это переход от ручных процессов к управлению на основе данных, где каждая тонна сырья учитывается в контексте всей производственной экосистемы.</p>]]></content:encoded>
    </item>
    <item>
      <title>Семь API, которые сократят вам недели разработки</title>
      <link>https://tproger.ru/articles/10-api--kotorye-sokratyat-vam-nedeli-razrabotki</link>
      <comments>https://tproger.ru/articles/10-api--kotorye-sokratyat-vam-nedeli-razrabotki?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Татьяна Жукова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/10-api--kotorye-sokratyat-vam-nedeli-razrabotki</guid>
      <description><![CDATA[<p>В этом списке — семь мощных API, которые помогут вам ускорить разработку, автоматизировать рутинные задачи и без лишних усилий добавить крутые функции. От баз данных книг до парсинга сайтов и анализа пользовательских данных</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/10-api--kotorye-sokratyat-vam-nedeli-razrabotki">Семь API, которые сократят вам недели разработки</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Парсинг]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[JSON]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[микро]]></category>
      <category><![CDATA[CI/CD]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 04 Apr 2025 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Представьте, что вам нужно встроить в своё приложение поиск книг, анализ геоданных или генерацию случайных пользователей. Вы могли бы писать код с нуля, разбираться с источниками, тестировать и отлаживать… или просто воспользоваться готовыми API, которые сделают всю работу за вас. Сегодня о них и поговорим.</p><h2>Shodan API: Поиск уязвимостей в интернете за минуты</h2><p><a href="https://developer.shodan.io/">Shodan</a> — поисковая система для интернет-устройств. В отличие от Google, который индексирует веб-страницы, Shodan сканирует открытые порты, сервисы и устройства, подключённые к интернету. Это делает его мощным инструментом для исследователей безопасности, разработчиков и системных администраторов.</p><p>Shodan API позволяет автоматизировать поиск уязвимых серверов, камер наблюдения, баз данных и других интернет-ресурсов. Может анализировать их конфигурации и даже отслеживать инциденты безопасности в реальном времени.</p><h2>Как Shodan API экономит время разработчикам?</h2><p>Ручной аудит серверов и интернет-устройств может занять недели, а то и месяцы, но Shodan API позволяет:</p><ul><li>Быстро находить уязвимые устройства и сервисы</li><li>Проверять, какие технологии и версии ПО используются на серверах</li><li>Получать статистику по открытым портам, SSL-сертификатам и угрозам</li><li>Отслеживать новые уязвимости в реальном времени</li></ul><p>Для DevOps, SOC-аналитиков и специалистов по информационной безопасности это возможность автоматизировать рутинные проверки и защитить инфраструктуру от потенциальных атак.</p><h2>Как использовать Shodan API?</h2><p>Shodan API предоставляет удобные методы для работы с данными через REST-запросы. Рассмотрим основные возможности.</p><h4>Поиск открытых сервисов и устройств</h4><p>Shodan позволяет находить устройства, доступные по определённым портам, IP-адресам или географическим координатам. Например, запрос всех открытых баз данных MongoDB:</p><p>Ответ покажет список IP-адресов, страну расположения серверов и используемые версии ПО.</p><h4>Получение информации об IP-адресе</h4><p>Допустим, вы хотите узнать, какие сервисы запущены на конкретном IP. Используем команду:</p><p>Ответ будет содержать список открытых портов, заголовки HTTP-ответов и используемые технологии.</p><h4>Поиск устройств по версии ПО</h4><p>Чтобы найти все серверы с устаревшей версией OpenSSH, можно выполнить запрос:</p><p>Это полезно для поиска серверов, подверженных атакам из-за старых версий ПО.</p><p>Важно понимать, что Shodan не предназначен для хакерских атак. Использование API для несанкционированного сканирования чужих серверов может быть незаконным. Поэтому рекомендуется работать только с теми системами, на которые у вас есть разрешение.</p><h2>Abstract API: Быстрая проверка IP, валидация email и работа с геоданными</h2><p><a href="https://www.abstractapi.com/">Abstract API</a> — сервис, предлагающий набор API для работы с IP-адресами, валидацией email, проверкой телефона, распознаванием валют и многим другим. Это универсальный инструмент для веб-разработчиков, аналитиков и специалистов по безопасности.</p><h3>Как Abstract API экономит время разработчикам?</h3><p>Вместо того чтобы искать разные API для работы с геоданными, email-валидацией и IP-адресами, можно использовать Abstract API. Это экономит часы на интеграцию и позволяет быстро решать задачи, такие как:</p><ul><li>Определение страны и города пользователя по IP</li></ul><ul><li>Проверка подлинности email перед регистрацией</li></ul><ul><li>Конвертация валют в реальном времени</li></ul><ul><li>Валидация телефонных номеров</li></ul><p>Abstract API помогает автоматически фильтровать спам-регистрации, защищать системы от ботов и улучшать пользовательский опыт.</p><h3>Как использовать Abstract API?</h3><p>API работает через REST-запросы и доступно для бесплатного использования с ограничениями.</p><h4>Определение геолокации по IP</h4><p>Можно быстро определить страну, город и провайдера пользователя:</p><h4>Валидация email-адреса</h4><p>Проверяем, является ли email настоящим, одноразовым или корпоративным:</p><p>Что нужно помнить? Бесплатная версия ограничена числом запросов в месяц. А данные по IP-геолокации иногда могут быть неточными (зависит от провайдера).</p><h2>Zyte API: Интеллектуальный ротационный прокси для веб-скрейпинга без блокировок</h2><p><a href="https://www.zyte.com/smart-proxy-manager/">Zyte API</a> — мощный API для веб-скрейпинга, который не только обходит блокировки и капчи, но и автоматически структурирует полученные данные. Он объединяет в себе прокси-серверы, обработку JavaScript-страниц и инструменты парсинга, что делает его одним из самых удобных решений для сбора данных с веб-ресурсов.</p><h2>Как Zyte API экономит время?</h2><p>Вместо того чтобы вручную разрабатывать сложные парсеры и бороться с защитами сайтов, Zyte API позволяет получить уже готовые структурированные данные:</p><ul><li>Автоматическая обработка JavaScript-страниц (открывает динамически загружаемые сайты, как Selenium).</li></ul><ul><li>Обход капч и блокировок (использует интеллектуальные прокси).</li></ul><ul><li>Автоматическое структурирование данных (не просто HTML, а уже готовая JSON-структура).</li></ul><ul><li>Интеграция с Python и REST API (работает с любыми языками программирования).</li></ul><p>API идеально подходит для разработчиков, аналитиков, маркетологов и исследователей данных.</p><h2>Как использовать Zyte API?</h2><p>Он работает как обычный прокси: достаточно настроить его в коде, и все запросы к сайтам будут проходить через интеллектуальную систему ротации IP.</p><h4>Использование Zyte в curl</h4><p>Допустим, нужно скачать HTML-страницу сайта example.com:</p><p>Что нам ответят:</p><h4>Интеграция с Python</h4><p>Для начала нужно установить клиент:</p><p>Код для парсинга и получения данных:</p><h4>Автоматический парсинг данных</h4><p>Zyte API умеет не только загружать HTML, но и автоматически извлекать полезные данные. Например, спарсить цену, название и описание кроссовок в интернет-магазине (ну или любого другого товара).</p><p>Из минусов — нет бесплатного доступа (лишь пробный период). Также некоторые страницы требуют больше времени для обхода ограничений (может понадобиться доп.настройка).</p><h2>Common Crawl API: Бесплатная база данных для веб-скрейпинга и анализа интернета</h2><p><a href="https://commoncrawl.org/">Common Crawl</a> — не просто API, а целый архив интернета, содержащий огромные объемы веб-данных, собранных с 2008 года. В отличие от стандартных API для веб-скрейпинга, Common Crawl предоставляет доступ к готовым копиям страниц, что значительно ускоряет анализ веб-контента и снижает нагрузку на исходные сайты.</p><h3>Как Common Crawl API экономит время?</h3><p>Вместо того чтобы разрабатывать сложные парсеры и загружать миллионы страниц вручную, Common Crawl позволяет быстро находить нужную информацию в готовых архивах:</p><ul><li>Бесплатный доступ к огромной базе веб-страниц (петабайты данных, обновляемых ежемесячно).</li></ul><ul><li>Исторические данные (можно анализировать, как изменялся контент сайтов за годы).</li></ul><ul><li>Отсутствие блокировок и капч (данные уже собраны, вам не нужно бороться с защитами сайтов).</li></ul><ul><li>Возможность массового анализа веба (идеально для NLP, машинного обучения и SEO-исследований).</li></ul><p>API и данные Common Crawl полезны для исследователей, дата-аналитиков, SEO-специалистов и разработчиков.</p><h3>Как использовать Common Crawl API?</h3><p>Common Crawl предоставляет данные в формате WARC (архивные копии страниц) и WET (чистый текст без HTML). Доступ осуществляется через Amazon S3, но также можно использовать API Common Crawl Index для поиска нужных URL.</p><h4>Поиск веб-страниц через API</h4><p>Допустим, нам нужны все страницы, содержащие example.com:</p><p>Вот такой ответ может быть:</p><h4>Получение текста страницы из архива</h4><p>После получения ссылки на WARC-файл можно скачать его и распаковать:</p><p>Ну и затем извлечь текст:</p><h4>Анализ больших объемов данных с AWS</h4><p>Если вам нужны миллионы страниц, можно использовать AWS Athena для обработки данных прямо в облаке.</p><p>Пример SQL-запроса в AWS Athena для поиска страниц с «machine learning»:</p><p>Важно отметить, что данные предоставляются в сыром виде и их нужно дополнительно обрабатывать. Плюс нет гарантии, что конкретная страница будет в архиве.</p><h2>GitHub API: автоматизация работы с репозиториями, пользователями и кодом</h2><p><a href="https://docs.github.com/en/rest">GitHub API</a> — интерфейс для взаимодействия с кодом, репозиториями, пользователями и организациями на платформе GitHub. Он позволяет автоматизировать задачи, получать аналитику, управлять репозиториями, отслеживать запросы на вытягивание, коммиты и многое другое.</p><h3>Как GitHub API экономит время?</h3><p>Вместо ручного управления репозиториями и кодом через интерфейс GitHub можно автоматизировать эти процессы с помощью API:</p><ul><li>Автоматизация деплоя и CI/CD (создание и управление GitHub Actions).</li></ul><ul><li>Мониторинг активности в репозиториях (новые коммиты, запросы на вытягивание, проблемы).</li></ul><ul><li>Управление пользователями и организациями (добавление разработчиков, управление доступом).</li></ul><ul><li>Анализ кода и метрик (подсчёт строк кода, статистика участников).</li></ul><ul><li>Поиск по репозиториям и файлам (быстрое извлечение нужной информации).</li></ul><p>GitHub API полезен для DevOps-инженеров, разработчиков, владельцев проектов и аналитиков.</p><h3>Как использовать GitHub API?</h3><p>GitHub API работает через REST-запросы и возвращает данные в формате JSON. Для авторизации можно использовать токен личного доступа (PAT) или OAuth.</p><h4>Получение информации о пользователе GitHub</h4><p>Допустим, мы хотим узнать данные о пользователе natasharostova:</p><p>Как нам могут ответить:</p><h4>Создание нового репозитория через API</h4><p>После выполнения запроса появится новый репозиторий new-repo.</p><h4>Поиск репозиториев по ключевому слову</h4><p>Допустим, мы хотим найти репозитории, содержащие код на Python, связанный с машинным обучением:</p><p>Нужно понимать, что есть ограничение в 5000 API-запросов в час для авторизованных пользователей. Для некоторых функций требуется версия GitHub Enterprise.</p><h2>MuleSoft API: Универсальный коннектор для интеграции сервисов</h2><p><a href="https://openlibrary.org/developers/api"></a><a href="https://www.mulesoft.com/">MuleSoft API</a> — платформа для интеграции различных систем, сервисов и приложений. Она позволяет соединять облачные и локальные системы, автоматизировать обмен данными и управлять API. MuleSoft широко используется в корпоративных средах для построения сложных интеграционных решений.</p><h3>Как MuleSoft API экономит время?</h3><p>Вместо того чтобы разрабатывать интеграции с нуля, MuleSoft API предлагает готовые коннекторы, которые позволяют:</p><ul><li>Интегрировать разные системы (CRM, ERP, базы данных, облачные сервисы) без сложного кодинга.</li></ul><ul><li>Автоматизировать обмен данными между приложениями (например, между Salesforce и SAP).</li></ul><ul><li>Обеспечивать безопасность API с помощью встроенных инструментов управления доступом.</li></ul><ul><li>Создавать микросервисную архитектуру, где API работают как модули.</li></ul><p>API полезен для DevOps-инженеров, архитекторов ПО, разработчиков корпоративных решений и интеграторов.</p><h3>Как использовать MuleSoft API?</h3><p>MuleSoft поддерживает REST и SOAP API, а также интеграцию через готовые коннекторы.</p><h4>Создание API с помощью Anypoint Platform</h4><p>Anypoint Platform — облачная среда MuleSoft, в которой можно управлять API.</p><p>Пример запроса к API через MuleSoft:</p><h4>Подключение к базе данных через DataWeave</h4><p>DataWeave — это язык MuleSoft для трансформации данных. Он позволяет легко преобразовываться в нужные форматы.</p><p><i>Это правило конвертирует XML-ответ базы данных в JSON.</i></p><p>Важно помнить, что бесплатные возможности платформы ограничены. Также сервис требует обучения: для работы с DataWeave и Anypoint Platform нужно разбираться в интеграции API.</p><h2>JSONPlaceholder API: бесплатный фиктивный REST API для тестирования и создания прототипов</h2><p><a href="https://jsonplaceholder.typicode.com/">JSONPlaceholder API</a> — бесплатный REST API, предназначенный для тестирования, создания прототипов и обучения разработчиков. Он предоставляет фиктивные данные (пользователей, публикаций, комментариев и т. д.), которые можно использовать при разработке клиентских и серверных приложений без необходимости развёртывать собственный бэкенд.</p><h3>Как JSONPlaceholder API экономит время?</h3><p>Разработчикам часто нужно тестировать фронтенд или отлаживать API-запросы, но не всегда есть готовый бэкенд. JSONPlaceholder API решает эту проблему:</p><ul><li>Позволяет мгновенно получать тестовые данные без развертывания сервера.</li></ul><ul><li>Не требует регистрации или API-ключа.</li></ul><ul><li>Поддерживает стандартные HTTP-методы (GET, POST, PUT, DELETE).</li></ul><ul><li>Полностью совместим с популярными библиотеками и фреймворками (Axios, Fetch API, jQuery и др.).</li></ul><p>API полезен для фронтенд-разработчиков, тестировщиков, студентов и преподавателей программирования.</p><h3>Как использовать JSONPlaceholder API?</h3><p>JSONPlaceholder предоставляет несколько ресурсов, которые можно запрашивать с помощью HTTP-запросов.</p><h4>Получение списка пользователей</h4><p>Простейший GET-запрос возвращает список тестовых пользователей:</p><h4>Получение списка постов</h4><p>Можно запросить список фиктивных публикаций:</p><h4>Добавление нового поста</h4><p>Можно отправить POST-запрос, чтобы имитировать создание записи:</p><h4>Обновление записи</h4><p>Для изменения существующей записи можно использовать PUT-запрос:</p><p>Что нужно помнить? Данные статичны — они не сохраняются между запросами. Запросы POST, PUT и DELETE не изменяют реальные данные. А само API предназначено только для тестирования, а не для использования в рабочей среде.</p>]]></content:encoded>
    </item>
    <item>
      <title>Бэкенд — это тоже красиво: как метрики и мониторинг делают вашу работу заметной</title>
      <link>https://tproger.ru/articles/bekend---eto-tozhe-krasivo--kak-metriki-i-monitoring-delayut-vawu-rabotu-zametnoj</link>
      <comments>https://tproger.ru/articles/bekend---eto-tozhe-krasivo--kak-metriki-i-monitoring-delayut-vawu-rabotu-zametnoj?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Анна Ельцова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/bekend---eto-tozhe-krasivo--kak-metriki-i-monitoring-delayut-vawu-rabotu-zametnoj</guid>
      <description><![CDATA[<p>Вадим Ваганов, руководитель разработки и Head of Profession Backend в Газпромбанке, рассказывает, почему важно визуализировать метрики и свою работу.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/bekend---eto-tozhe-krasivo--kak-metriki-i-monitoring-delayut-vawu-rabotu-zametnoj">Бэкенд — это тоже красиво: как метрики и мониторинг делают вашу работу заметной</a>»</p>]]></description>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Oracle]]></category>
      <category><![CDATA[Kotlin]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[Визуализация]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Grafana]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[CI/CD]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 31 Mar 2025 14:00:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Фронтендеры и мобильщики могут продемонстрировать результаты своей работы визуально — показать красивый интерфейс, анимацию, новую удобную кнопку. А как быть бэкендерам, особенно начинающим? Как эффектно показать, что результат вашей недельной работы — это не какие-то там циферки в консоли, а важный результат? Ответ: метрики, визуализация, мониторинг.</p><p>Меня зовут Вадим Ваганов, я руководитель разработки и Head of Profession Backend в Газпромбанке. Я люблю делиться опытом, а также обучать и приносить пользу другим. Все свои статьи я строю на личных историях, так что эта будет такой же. Она для тех, кто только начинает свой путь в бэкенд-разработке и еще не вник в вопросы визуализации своей работы. Расскажу, почему стоит инвестировать время в эти направления и как благодаря им вы станете более крутым инженером с первых шагов в профессии.</p><p>Дисклеймер: да, мониторинг — более широкая тема, но сегодня будем говорить в первую очередь про метрики и их визуализацию.</p><h2>Проблема: что делать, если есть трудности с презентацией и оценкой своей работы</h2><p>Фронтендерам и мобильщикам чуть проще в начале пути разработчика: они могут нарисовать красивую кнопочку, сделать что-то визуальное, и даже если логика проста, то визуал можно «продать» — банально показать друзьям. А бэкендерам что показать? Как в консольку выводим циферки?</p><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-03-31/0d4d4da7-6724-43d7-8b28-f443fd8d14ba.png" alt="" /></figure><p>Это, конечно, шутка (хоть и с долей правды), но проблема демонстрации результатов своей работы для бэкендеров действительно существует — будь то коллеге, боссу, бизнесу или самому себе, в конце концов. Решение есть — метрики, визуализация, мониторинг.  Эта тема сильно недооценена. Часто люди ничем, кроме логов, не пользуются. Не допускайте этой ошибки!</p><h2>Начинаем с простого: получаем данные о состоянии приложения</h2><p>Я не хочу делать это просто вводной, теоретической статьей по мониторингу. Нам нужна база, и мы рассмотрим ее на практике. Все примеры доступны в <a href="https://github.com/vaganov-vadim/backend-is-also-beautiful">репозитории на GitHub</a>, где вы найдете полный код и конфигурацию. Вы можете либо клонировать <a href="https://github.com/vaganov-vadim/backend-is-also-beautiful">репозиторий</a>, либо настроить все с нуля, следуя инструкциям ниже. Нам понадобится всего 5–10 минут, чтобы получить первые результаты.</p><p><b>Подготовка окружения</b></p><p>Для примера нам понадобятся:</p><ul><li><a href="https://github.com/docker">Docker</a></li><li><a href="https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html">JDK 17</a></li></ul><p>Все придумано до нас, поэтому воспользуемся готовыми инструментами — например, <a href="https://micrometer.io/">micrometer</a> (<a href="https://docs.micrometer.io/micrometer/reference/concepts.html">документация тут</a>) или аналог, если у вас не Java/Kotlin. Интегрируем его с /actuator.</p><p>В <a href="https://github.com/vaganov-vadim/backend-is-also-beautiful/blob/main/build.gradle">build.gradle</a> нужно добавить следующее:</p><p>Проверяем запрос в тестовом контроллере:</p><p>и смотрим на метрики:</p><p>Пока что мы можем получать такую информацию в моменте, но мы хотим историчности, следовательно, это дело надо как-то получать и где-то хранить.</p><p>У нас есть заготовленный конфиг, чтобы поднять <a href="https://grafana.com/">Grafana</a> и <a href="https://prometheus.io/">Prometheus</a>:</p><p>Открываем <a href="http://localhost:9090/">UI Prometheus</a>, пробуем найти demo_requests_total, нажимаем Execute, проверяем историчность — она есть!</p><p>Теперь можно визуализировать данные. Открываем <a href="http://localhost:3000/">Grafana</a>, вводим admin/admin и создаем дашборд:</p><ol><li>Dashboards -&gt; Create Dashboard -&gt; Add visualization</li><li>Конфигурируем Data Source: Configure a new data source -&gt; Prometheus -&gt; Connection = http://prometheus:9090 -&gt; Save &amp; test</li><li>Возвращаемся к меню Create Dashboard -&gt; Add visualization, выбираем Data Source prometheus</li><li>Настраиваем дашборд: выбираем Code вместо Builder, пишем sum (rate(demo_requests_total[1m]))</li></ol><p>Отлично! Давайте накидаем еще запросов, чтобы посмотреть, как это будет выглядеть:</p><p>Теперь у нас на графике видна динамика запросов. Инструментарий готов! Теперь мы можем:</p><ul><li>создавать любые метрики в приложении;</li><li>собирать, хранить и получать метрики за выбранный период;</li><li>визуализировать метрики как душе угодно.</li></ul><h2>Что отслеживать в бэкенд-приложениях</h2><p>У вас когда-нибудь было состояние, когда вам плохо, болит голова, першит горло, и вы думаете, что все — у вас 38 °C, и вы жутко простудились. Берете градусник, измеряете температуру... А у вас 36.6 °C. Не полагайтесь на ощущения — смотрите в мониторинг!</p><h3>Состояние серверов и инфраструктуры</h3><ul><li>Загруженность CPU и памяти серверов.</li><li>Загруженность дисков.</li><li>Мониторинг сети.</li><li>И другие инфраструктурные метрики.</li></ul><p>Здесь важен в том числе анализ долгосрочных тенденций, например: насколько скоро закончится свободное место при текущем уровне нагрузки?</p><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-03-31/2a12df47-db1e-4258-a332-ba10ac6024ff.jpeg" alt="" /></figure><h2>Метрики производительности приложения</h2><p>В SRE Google выделяют 4 золотых сигнала:</p><ol><li><b>Latency (задержка)</b> — время, необходимое для обработки запроса;</li><li><b>Traffic (трафик)</b> — количество запросов к системе;</li><li><b>Errors (ошибки)</b> — процент запросов, которые заканчиваются ошибкой;</li><li><b>Saturation (насыщение)</b> — насколько система загружена.</li></ol><p>ВАЖНО: иногда ваше приложение начинает работать медленно из-за интеграций, поэтому их тоже просто необходимо отслеживать. Если провайдер данных отвечает за 1 с, а у вас в <a href="https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%B3%D0%BB%D0%B0%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D0%B1_%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D0%B5_%D1%83%D1%81%D0%BB%D1%83%D0%B3">SLA</a> — 250 мс, то как бы производительно и надежно ни было ваше приложение — у вас уже проблемы.</p><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-03-31/726af92a-89e9-4db4-8297-bcb1bd28512d.png" alt="" /></figure><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-03-31/89e3f1f4-f42e-431e-982b-83542fcfb68a.png" alt="" /></figure><h2>Бизнес-метрики</h2><p>Это те метрики, которые совершенно прекрасны, потому что они помогут вам почувствовать себя не просто писателем кода, а тем, кто действительно влияет на продукт и бизнес в целом. Скажем, можно отслеживать конверсии и ключевые действия: если ваше приложение связано с бизнес-процессами, важно отслеживать ключевые метрики, например количество покупок. Это помогает понять, насколько успешно работает ваше приложение.</p><p>Если вы проверяете гипотезы или проводите a/b-тестирование — собирать и визуализировать метрики просто обязательно.</p><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-03-31/99c0c383-f638-43c9-9b55-dacd3acecb9f.png" alt="" /></figure><p><i>Красиво — это не только про визуал. Получать обратную связь и взаимодействовать с системой/продуктом — тоже красиво!</i></p><h2>Почему мониторинг — это навык, который стоит прокачать любому инженеру</h2><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-03-31/111f0b2e-9606-477d-82e5-2813e2f5e12a.png" alt="" /></figure><h3>Мониторинг как важная составляющая DevOps- и SRE-практик</h3><p>Современные инженеры все чаще сталкиваются с задачами, которые выходят за рамки чистой разработки кода. Инженеры должны не только писать код, но и понимать, как этот код работает в реальных условиях. Это не только сделает вас более компетентными, но и придаст новый интерес работе.</p><h3>Взаимодействие мониторинга с процессами CI/CD</h3><p>Изменения — наше все, именно благодаря им мы приносим пользу бизнесу: улучшаем пользовательский опыт, проверяем гипотезы, зарабатываем деньги.</p><p>Мониторинг помогает убедиться, что новые изменения работают как задумано, а также не приводят к ухудшению производительности или стабильности системы. Интеграция мониторинга в CI/CD позволяет быстро выявлять проблемы и откатывать изменения, если что-то пошло не так.</p><h3>Универсальный и вечнозеленый навык</h3><p>На каком бы стеке вы ни работали, чем бы ни занимались в бэкенд-разработке, уверяю вас: это тот навык, который будет полезен на протяжении всей карьеры.</p><h3>Важность анализа данных о вашем продукте</h3><p>Важные решения принимаются на основе данных, без грамотного отслеживания метрик и их визуализации вы будете просто подбрасывать монетку.</p><h3>Возможность предвидеть и предотвращать проблемы</h3><p>Успешные инженеры могут не только решать проблемы, но и предотвращать их. Мониторинг позволяет выявлять аномалии и потенциальные угрозы до того, как они приведут к сбоям.</p><h2>Подведение итогов</h2><p>Метрики — это то, что ты хочешь смотреть не только когда плохо, но и когда хорошо.</p><p>Мониторинг — это не просто инструмент, это философия. Это способ мышления, который помогает вам быть в курсе того, что происходит с вашей системой, и принимать обоснованные решения.</p><p>Мониторинг делает вас более уверенным инженером. Когда вы знаете, что происходит с вашим приложением, вы можете спокойно спать по ночам, зная, что система под контролем.</p><p>Мониторинг помогает вам расти. Это навык, который будет полезен не только в вашей текущей работе, но и в будущем. Чем раньше вы начнете погружаться в эту тему, тем быстрее вы станете более востребованным специалистом.</p><p>Мониторинг — это инвестиция в стабильность и качество. В конечном итоге это то, что делает ваше приложение надежным, а вашу команду — эффективной.</p><p>И да, мониторинг — это просто красиво. Когда наглядно видишь тонкости работы приложения — это совершенно новый уровень погружения в работу.</p><p>Так что если вы еще не начали заниматься мониторингом, самое время начать. У вас есть все инструменты и все возможности — вы можете скачать <a href="https://github.com/vaganov-vadim/backend-is-also-beautiful">наш репозиторий</a> и начать вникать прямо сейчас.</p><h4>Полезные источники</h4><ul><li><a href="https://docs.micrometer.io/micrometer/reference/">Официальная документация Micrometer</a></li><li><a href="https://prometheus.io/docs/introduction/overview/">Официальная документация Prometheus</a></li><li><a href="https://grafana.com/docs/grafana/latest/dashboards/">Официальная документация Grafana</a></li><li><a href="https://sre.google/sre-book/monitoring-distributed-systems/">4 золотых сигнала</a></li><li><a href="https://www.piter.com/product/site-reliability-engineering-nadezhnost-i-bezotkaznost-kak-v-google">Книга об SRE</a></li></ul><p>Если вам понравится материал и вы захотите ознакомиться с другим моим контентом — приглашаю в <a href="https://t.me/vaganov_vadim">мой телеграм-канал</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Рутуб или ВК Видео? Что лучше в 2025 году</title>
      <link>https://tproger.ru/articles/rutub-ili-vk-video--gde-proshhe-iskat--smotret-i-zagruzhat-video</link>
      <comments>https://tproger.ru/articles/rutub-ili-vk-video--gde-proshhe-iskat--smotret-i-zagruzhat-video?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Валерия Турчак]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/rutub-ili-vk-video--gde-proshhe-iskat--smotret-i-zagruzhat-video</guid>
      <description><![CDATA[<p>С экспертами разберём, что в 2025 году предлагают VK Видео и Rutube, и какой сервис лучше для просмотра и публикации контента.
</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/rutub-ili-vk-video--gde-proshhe-iskat--smotret-i-zagruzhat-video">Рутуб или ВК Видео? Что лучше в 2025 году</a>»</p>]]></description>
      <category><![CDATA[ВКонтакте]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Веб-дизайн]]></category>
      <category><![CDATA[YouTube]]></category>
      <category><![CDATA[Видеоконтент]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 25 Feb 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Когда-то YouTube был безальтернативным видеохостингом, а другие платформы боролись за остатки аудитории. Но к 2025 году ситуация изменилась: запреты, замедления, отключение рекламы и постоянные проблемы с доступом вынудили пользователей искать альтернативу. Так на первый план вышли VK Видео и Rutube.</p><p>Разные специалисты оценивают видеохостинги по-своему: дизайнеры – интерфейс, айтишники – API и производительность, маркетологи – инструменты продвижения. Но их объединяет одно: большие сомнения насчет платформ.</p><h2>Главная страница и поиск: где удобнее смотреть видео</h2><h2>VK Видео</h2><p>По данным Mediascope, за последний год VK Видео увеличило аудиторию почти вдвое благодаря пользователям, ищущим замену YouTube. Однако повторить точность ютубовских рекомендаций пока не удалось.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-02-21/85a27d27-8e37-4176-bf35-b6ca65318202.png" alt="" /></figure><p>VK Видео глубоко интегрирован в экосистему «ВКонтакте», что логично: пользователи уже привыкли к соцсети, и переходить на новый сервис им не нужно. Все в одном месте – удобно.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-02-21/bd68be62-2393-411f-ac01-3b91080e6844.png" alt="" /></figure><p>Но у этого подхода есть и минусы. Главная страница хостинга перегружена контентом соцсети. Видео тонут в потоке мемов, репостов, рекламы и случайных рекомендаций.</p><p>Поиск работает по логике «ВКонтакте»: анализирует весь контент соцсети, а не только видео. В результате, даже при точном запросе пользователи получают не только ролики, но и случайные посты, стримы или устаревший контент.</p><blockquote>Поиск должен не просто перебирать базу, а учитывать контекст и поведение пользователя. Узнайте меня лучше, попробуйте предложить что-то еще – возможно, меня это заинтересует.</blockquote><p>По его мнению, лучший вариант – персонализация и фильтры. Например, при поиске по слову «космос» система должна уточнять: интересны ли фильмы, подкасты или научные передачи?</p><blockquote>Нужно убрать мусорные элементы и сделать главную страницу динамической – пусть она подстраивается под интересы пользователя.</blockquote><p>Например, создать отдельные блоки: «Популярное», «На основе ваших просмотров», «Недосмотренное», «Тренды». Так пользователь сможет сам выбрать, что ему важно, а не пробираться через хаос рекомендаций.</p><h2>Rutube</h2><p>С точки зрения анализа аудитории, Rutube набрал около 9 миллионов дневной аудитории (по Mediascope).  Люди приходят смотреть шоу и сериалы, грубо говоря, используют видеохостинг как телевизор.</p><p>Для авторов образовательного и корпоративного контента это минус: ролики теряются среди передач и фильмов, а продвижение сложнее из-за отсутствия рекомендаций под узкие запросы.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-02-21/a6bb0ebf-8a23-4275-ae83-f8e404d5c1ab.png" alt="" /></figure><p>Поиск работает формально: вводите запрос – получаете список без фильтрации и тегов. Ошибки приводят к странным результатам. Например, запрос «Апачи апачи» может выдать бессистемную подборку роликов.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-02-21/1538ead9-4eab-4df6-becb-7e6fe928af38.png" alt="" /></figure><blockquote>Поиск – базовая функция. Он должен работать по умолчанию, а не быть лотереей. Было бы неплохо при поиске выдавать уточняющие фильтры: «подкасты», «фильмы», «шоу». Это проще и быстрее, чем заставлять человека четко формулировать запрос.</blockquote><p>Авторы жалуются, что их видео редко всплывают в общей выдаче, и приходится кидать прямые ссылки.</p><blockquote>Результаты поиска нужно структурировать: отдельно показывать каналы, видео, плейлисты. Добавить историю запросов и интерактивные подсказки, чтобы все работало логично</blockquote><h2>Минимализм и функциональность: где золотая середина?</h2><p>Поиск баланса между удобством и перегруженностью интерфейса — ключевая задача видеохостингов. VK Видео и Rutube решают её по-разному: первый старается уместить всё в одном месте, второй — оставить максимум пустого пространства. В итоге ни одна из платформ пока не нашла идеальный вариант.</p><h2>VK Видео: перегруз контентом</h2><p>VK Видео пытается быть одновременно соцсетью и видеохостингом. Пользователь заходит, чтобы посмотреть ролик, но теряется в бесконечном потоке контента.</p><blockquote>Главную страницу VK Видео нужно переработать: убрать лишний контент, сделать персонализацию и динамическую ленту</blockquote><p>Анастасия тажке предлагает дать пользователям гибкость. Например, добавить разделы, которые динамически подстраиваются под интересы пользователя: "На основе ваших просмотров", "Популярное у друзей", "Недосмотренное".</p><p>Главная проблема VK Видео — нет четкой структуры и фильтров. Пользователь получает слишком много несортированной информации, что мешает ему быстро находить нужный контент.</p><h2>Rutube: минимализм, доведенный до крайности</h2><p>Rutube, наоборот, страдает от обратной проблемы. После редизайна он стал выглядеть современно, но в погоне за «чистым» дизайном ушел в крайности. Пространство между блоками слишком велико, текстовые элементы теряются на темном фоне, а главная страница больше похожа на постер кинотеатра, чем на площадку для поиска контента.</p><blockquote>Минимализм — не про удаление элементов, а про расстановку акцентов. На первом экране должно быть только то, что важно здесь и сейчас. В Rutube можно добавить адаптивные блоки, которые заполняют пустоты: тренды, рекомендации, последние просмотры.</blockquote><p>В итоге обе платформы ищут баланс, но идут разными путями. VK Видео перегружает пользователя информацией, а Rutube делает интерфейс слишком пустым. Оба подхода требуют доработки: ВК нужно больше порядка, а Rutube — вовлечения.</p><h2>Загрузка и модерация</h2><h2>VK Видео</h2><p>Главный козырь VK Видео — автоматический импорт с YouTube. Не нужно вручную перетаскивать сотни роликов, сервис сам всё загрузит в ваш профиль. Экономит время, нервы и терабайты трафика.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-02-21/40ef5f67-baba-4cf4-a7e3-9e00ded4f7a3.png" alt="" /></figure><p>Ручная загрузка тоже проста: название, описание, кнопка «Загрузить» — готово. Лимит в 5 Гб может быть проблемой для создателей длинных вебинаров и курсов, но большинству хватает. Модерация почти незаметна: проверили — опубликовали. Иногда с задержками, но без бюрократии.</p><p>Из минусов — непредсказуемые блокировки. Если контент «на грани» — политика, авторские права, спорные темы — ролик могут снести без объяснений. Четких правил нет, авторам остаётся только гадать, что пошло не так.</p><h2>Rutube</h2><p>Здесь щедрые лимиты: до 25 Гб и 300 минут видео без потери качества. Идеально для стримов, длинных интервью и документалок. Но за объём платишь временем — модерация может длиться от нескольких часов до суток. Если аккаунт новый и без верификации, ждать можно ещё дольше.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-02-21/739254ad-cc0e-4ce0-adcd-8811c6a561d7.png" alt="" /></figure><p>Постмодерация есть, но не для всех. Привилегированные авторы могут сразу выкладывать видео, а Rutube проверит их позже. Как попасть в этот «клуб доверенных» — вопрос без ответа. Кто-то получает верификацию за пару недель, кто-то месяцами остаётся в подвешенном состоянии.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-02-21/e903aa50-92cd-4e17-9238-7a10919ac3dc.png" alt="" /></figure><p>Для тех, кто работает по расписанию, это головная боль. Выпустили анонс — видео застряло в проверке. Плюс аналитика оставляет желать лучшего, так что планировать релизы впритык рискованно.</p><h2>VK Видео — видеохостинг или соцсеть? Rutube — ТВ или комьюнити?</h2><h2>VK Видео</h2><p>VK Видео официально вывели в отдельное приложение, но в сознании пользователей оно всё ещё часть «ВКонтакте». Это даёт платформе мощный охват: ролики легко распространяются через ленты друзей и группы. Но есть и обратная сторона — сервис теряет собственное лицо, растворяясь в соцсетевом потоке.</p><blockquote>VK сделал правильный шаг, запустив отдельное приложение для видео. Оно доступно на всех платформах, включая ТВ. Лично я воспринимаю VK Видео как видеохостинг, сравнимый с YouTube, но этот образ всё равно смещается в сторону TikTok — возможно, из-за рекламы, активно продвигающей короткие видео.</blockquote><p>VK Видео независим технически, но практически не ощущается самостоятельной платформой. Что с этим делать?</p><ul><li>Редизайн, который отличит сервис от ВКонтакте и усилит ощущение уникального продукта;</li><li>Автономные рекомендации, завязанные не на соцсетевых группах, а на интересах зрителя;</li><li>Чёткий брендинг и маркетинг, позиционирующий VK Видео как конкурента YouTube, а не просто «раздел ВК».</li></ul><h2>Rutube</h2><p>Rutube делает ставку на онлайн-ТВ, но забывает о вовлечённости пользователей. Главная страница напоминает афишу сериалов, а не пространство для общения. В результате зрители потребляют контент, но не остаются на платформе.</p><blockquote>Rutube не воспринимается как соцсеть, он пассивен: пользователи только потребляют контент, а не взаимодействуют с платформой.</blockquote><p>YouTube и TikTok удерживают аудиторию не только контентом, но и активной средой: лайки, подписки, комментарии, коллаборации. Rutube же остаётся статичным. Чтобы стать больше, чем просто интернет-ТВ, ему нужно:</p><ul><li>Ввести социальные функции: комментарии, челленджи, лайвы, совместные проекты авторов.</li><li>Сделать обсуждения частью опыта: популярные реплики прямо под видео, удобный интерфейс комментирования.</li><li>Добавить интерактив: реакции, голосования, возможность отвечать видео на видео.</li></ul><p>Если VK Видео хочет быть YouTube, ему нужен более самостоятельный образ. Если Rutube хочет быть чем-то большим, чем ТВ, ему нужно развивать комьюнити. Пока оба сервиса ищут свою роль, но играют на разных полях.</p><h2>Каким должен быть идеальный видеохостинг в 2025 году</h2><p>Современный зритель хочет не просто смотреть видео — он ждёт персонализированного опыта, мгновенного доступа к контенту и возможностей для интерактивного участия. Видеохостинг, который сможет объединить эти элементы, выиграет в борьбе за аудиторию.</p><h2>Персонализация: видео должно находить зрителя само</h2><p>Бесконечный скроллинг в поисках интересного ролика — вчерашний день. Алгоритмы должны не просто анализировать историю просмотров, но и учитывать настроение пользователя, его активность в разное время суток, контентные предпочтения и даже текущий контекст.</p><blockquote>Очень давно в воздухе летает тренд на персонализацию. Когда наконец сервисы поймут, что персонализация рулит, и реализуют по-настоящему работающее решение, тот сервис и будет в выигрыше.</blockquote><p>Если YouTube и TikTok уже предлагают умные рекомендации, то идеальное отечественное решение должно идти дальше — не просто повторять прошлый опыт пользователя, а помогать ему открывать новое через динамичные подборки и интерактивные механики.</p><h2>Скорость</h2><p>Видеохостинг не должен заставлять зрителя ждать. Открываешь приложение — и видео сразу работает. Медленные загрузки, перегруженные интерфейсы и сложные навигации снижают вовлечённость (тем более, с этим мы уже столкнулись на YouTube).</p><blockquote>Быстрая загрузка, ничего лишнего. Видео должно быть доступно мгновенно, без сложных навигаций и скрытых меню.</blockquote><p>Простота — не урезанный функционал, а удобная подача. На идеальной платформе поиск срабатывает моментально, а нужный контент доступен в пару кликов.</p><h2>Вовлеченность: видео — не про пассивный просмотр</h2><p>Зритель больше не хочет просто смотреть видео, он хочет участвовать в обсуждении, взаимодействовать с авторами и другими зрителями. Комментарии должны быть живыми, с быстрым откликом, реакциями, голосованиями.</p><blockquote>Сегодня видео — не просто просмотр. Это эмоции, вовлечение, участие</blockquote><p>Лучшие примеры таких взаимодействий уже есть:</p><ul><li>Реакции в реальном времени (как на Twitch).</li><li>Возможность отвечать видео на видео (как в TikTok).</li><li>Социальные механики обсуждения (как на YouTube).</li></ul><p>Но и этого мало. Видеохостинг будущего должен пойти дальше: интерактивные видео с разными сценариями, голосование за контент в реальном времени, обсуждения, встроенные прямо в видеоплеер.</p><h2>Экосистема, а не просто платформа</h2><p>Идеальный видеохостинг — не просто сайт с роликами, а целая среда, где авторы и зрители чувствуют себя частью сообщества.</p><blockquote>Видеохостинг должен быть не просто платформой, а экосистемой, которая предугадывает желания пользователя.</blockquote><p>Это означает:</p><ul><li>Продуманную монетизацию: авторам выгодно загружать контент, а зрителям — его поддерживать.</li><li>Интеграцию с другими сервисами: например, возможность продолжать смотреть видео на разных устройствах без потери контекста.</li><li>Контент-оповещения: уведомления о новых видео от любимых авторов, персонализированные рекомендации.</li></ul><h2>VK Видео vs Rutube: где смотреть, а где зарабатывать</h2><h2>Для обычного пользователя</h2><p>Если вы хотите просто смотреть сериалы, кино или шоу, оцените, что для вас важнее:</p><ul><li>VK Видео дает привычную соцсетевую среду, где можно делиться роликами с друзьями, собирать лайки и комментировать их в одном окне. Удобно, если у вас уже есть круг общения во «ВКонтакте». Но реклама иногда выскакивает внезапно, да и весь этот соцмедиа-поток может мешать, если вы просто хотите «лечь на диван и смотреть кино».</li><li>Rutube ощущается как онлайн-ТВ. Если вам нравится пролистывать передачи и собственные шоу сервиса, а длинные фильмы и сериалы в высоком качестве — ваша главная цель, Rutube закрывает эту потребность. Однако будьте готовы, что с поиском придется побороться, а комментарии — это отдельный квест.</li></ul><p>В целом, для простого домашнего просмотра обе платформы подойдут. VK Видео спасает любителей социального взаимодействия, а Rutube — фанатов нелегальных сериалов (спорные моменты с авторскими правами).</p><h2>Для компаний и авторов, которые планируют стримить и выкладывать обучающие видео</h2><ul><li>VK Видео здесь удобен: если у вас уже есть сообщество во «ВКонтакте», люди будут видеть стримы сразу в ленте. Плюс можно сохранить запись эфира, вернуть зрителей к повторам, без проблем вести рубрики и иметь все под одной учеткой. Минус в том, что какая-то сложная аналитика и фильтры по контенту могут отсутствовать. И если вы планируете выкладывать длинные вебинары по 3–4 часа, помните про ограничение в 5 Гб.</li><li>Rutube дает больше возможностей: можно грузить длинные форматы (до 300 минут) почти без сжатия, сохранять качество и даже устраивать закрытые трансляции. Но долгое одобрение видео (если вы не верифицированный канал) и неочевидный путь к статистике усложняют жизнь. Если у вас в планах четкий график с точным выходом роликов, готовьтесь загружать все заранее и планировать публикации.</li></ul><p>Обе платформы предлагают разные сценарии использования. VK Видео интегрирован в соцсетевую экосистему и удобен для быстрого распространения контента. Rutube больше ориентирован на профессиональное видеовещание и долгосрочные проекты. Но без экспериментов не узнаешь, что действительно сработает для вашей аудитории.</p>]]></content:encoded>
    </item>
    <item>
      <title>Приоритизация фичей: как выбрать и что делать в первую очередь</title>
      <link>https://tproger.ru/articles/prioritizaciya-fichej--kak-vybrat--chto-delat-v-pervuyu-ochered</link>
      <comments>https://tproger.ru/articles/prioritizaciya-fichej--kak-vybrat--chto-delat-v-pervuyu-ochered?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Вадим Егорцев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/prioritizaciya-fichej--kak-vybrat--chto-delat-v-pervuyu-ochered</guid>
      <description><![CDATA[<p>Сортировка задач по важности. Рассказываем, какие методы приоритезации помогают достигать цели проекта. Расставляем приоритеты с учетом ценности, рисков и сложности задачи ✔ Tproger</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/prioritizaciya-fichej--kak-vybrat--chto-delat-v-pervuyu-ochered">Приоритизация фичей: как выбрать и что делать в первую очередь</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Визуализация]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 21 Feb 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Хотите выпустить новую функцию, но не уверены, что она действительно нужна? Без расстановки приоритетов разработчики рискуют тратить время на бесполезные задачи, терять деньги и раздражать пользователей. В этой статье — честные критерии, по которым стоит отсеивать идеи, чтобы делать только то, что действительно продвигает продукт вперёд.</p><p><b>Приоритизация фичей</b> — процесс оценки и определения порядка реализации идей.</p><p>Если вас заинтересовал заголовок, значит задач очень много, и вы ищите советы по управлению ресурсами команды. Поэтому не будем обсуждать определения, а начнем с проблем, которые приходят в компанию без приоритетов.</p><h2>Что происходит без приоритизации?</h2><h3>Страдают пользователи</h3><p>Например, у мобильного приложения низкий рейтинг из-за частых сбоев, но команда разработчиков вместо исправления ошибок добавляет новую функцию. В результате лояльные пользователи уходят к конкурентам.</p><h3>Ресурсы тратятся неэффективно</h3><p>Отсутствие чёткого плана приводит к перерасходу времени и бюджета на незначительные задачи. Это замедляет развитие продукта и мешает сосредоточиться на стратегически важных улучшениях.</p><h3>Команда перегружена, но результат не приносит успеха</h3><p>Когда приоритеты не расставлены, разработчики в постоянном цейтноте. Задачи закрываются, показатели не растут, бизнес не получает ожидаемого эффекта, а напряжение в коллективе нарастает.</p><h3>Продукт развивается хаотично</h3><p>Если все задачи оцениваются одинаково, компания теряет контроль над вектором развития. Основные KPI стагнируют, стратегические цели не достигаются, а в долгосрочной перспективе это приводит к финансовым потерям.</p><p>Чтобы этого избежать, фичи необходимо оценивать по объективным критериям.</p><h2>5 ключевых критериев для отбора фичей в разработку</h2><p>Существуют различные методы приоритизации, но все они опираются на базовые принципы. Рассмотрим их подробнее.</p><h2>Бизнес-ценность</h2><p>Функции нужно оценивать с точки зрения их влияния на бизнес. Это может быть:</p><ul><li>Потенциальный рост выручки,</li><li>Удержание клиентов,</li><li>Привлечение новой аудитории.</li></ul><p>Задачи, которые напрямую повышают доход или способствуют реализации стратегических целей компании, получают приоритет.</p><h2>Потребности пользователей</h2><p>Продукт создается для людей, поэтому при выборе фичей важно учитывать обратную связь.</p><ul><li>Какие запросы чаще всего поступают от клиентов?</li><li>Какие функции действительно улучшают пользовательский опыт?</li><li>Какие проблемы мешают удобному использованию сервиса?</li></ul><p>Если продукт не соответствует ожиданиям аудитории, даже самые преданные пользователи могут уйти.</p><h2>Техническая реализуемость</h2><p>Перспективные идеи могут оказаться слишком сложными или затратными в реализации. Поэтому каждой фиче присваивается показатель трудозатрат с учетом:</p><ul><li>Доступных технологий,</li><li>Требуемых ресурсов,</li><li>Совместимости с текущей архитектурой продукта.</li></ul><p>Чем сложнее реализация, тем выше риски срыва сроков и перерасхода бюджета.</p><h2>Время и стоимость разработки</h2><p>Не каждая идея стоит затраченных усилий. Приоритет функции снижается, если:</p><ul><li>Ее разработка требует значительных финансовых и временных затрат,</li><li>Потенциальная выгода не оправдывает вложения.</li></ul><p>При этом важно учитывать не только стоимость разработки, но и расходы на тестирование, доработку и поддержку новых функций.</p><h2>Риски и неопределенность</h2><p>Любая новая фича связана с определенными рисками:</p><ul><li>Сможет ли команда уложиться в сроки?</li><li>Не вызовет ли изменение неожиданные баги?</li><li>Как пользователи воспримут нововведение?</li></ul><p>Высокая степень неопределённости может привести к пересмотру приоритетов или отказу от разработки в пользу более предсказуемых улучшений.</p><h2>Методы и подходы к приоритизации</h2><p>Рассмотрим популярные методы приоритезации. Выбирайте понравившийся, адаптируйте и расставляйте задачи с учетом ценности, рисков и сложности.</p><h3>MoSCoW</h3><p>Фичи нужно распределить по категориям: критически необходимые, желательные, менее приоритетные и отложенные. Но сначала отвечаем на вопросы:</p><ul><li>Какая конечная цель проекта? Например, разработка минимально жизнеспособного продукта (MVP).</li><li>Для кого создается продукт и кто получит наибольшую выгоду? Например, текущие клиенты или новые пользователи, разные категории стейкхолдеров.</li><li>Кто из стейкхолдеров влияет на принятие решений? Это могут быть клиенты, ваша команда или инвесторы.</li><li>Какие есть ограничения? Например, фиксированный бюджет в $ 50 000 или дедлайн через три месяца.</li></ul><p>В результате получится краткое описание задачи и условий ее выполнения.</p><p>Пример: <i>небольшая IT-компания решает разработать приложение для управления проектами. Их конечная цель — запуск MVP через 8 недель с бюджетом $ 20 000. Стейкхолдеры включают клиентов, отвечающих за ресурсы, и команду разработчиков</i>.</p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-02-11/92233044-3252-46a8-997f-5e7eac03fc0c.jpg" alt="" /><figcaption>Задачи отсортированы по MoSCoW</figcaption></figure><p>Рассмотрим детальнее, что входит в метод:</p><h4>Must Have (Обязаны сделать)</h4><p>В этот список попадают критически важные задачи для достижения цели. <i>Возможно ли запустить продукт хоть в каком-то виде без этой функции? Если нет — это Must Have.</i></p><h4>Should Have (Должны сделать)</h4><p>Полезные, но не критичные функции. Should Have-задачи выполняются, когда есть время и бюджет, и всегда отстают по приоритету от Must Have.</p><p><i>Снижает ли отсутствие функции пользовательскую ценность? Если да, но продукт все еще работает, это Should Have.</i></p><h4>Could Have (Могли бы сделать)</h4><p>К этой группе относятся задачи, не влияющие на развитие продукта в краткосрочной перспективе. Команда приступит к выполнению Could Have-задач, только если реализованы более приоритетные фичи.</p><p><i>Можно ли перенести эту задачу в будущие релизы или сделать необязательным для запуска продукта? Если да — это Could Have.</i></p><h4>Won’t Have (Не в этот раз)</h4><p>Задачи в этой категории не войдут в ближайший релиз. Они будут интересны в период доработки или для отдельных проектов.</p><p>Эта категория защищает от раздувания проекта. Команда сможет выбрать Won’t Have для идей, которые возникли в ходе разработки, но не требуются для достижения текущих целей.</p><h3>RICE</h3><p>Формула приоритизации включает четыре показателя:</p><ul><li>охват,</li><li>влияние,</li><li>уверенность,</li><li>затраты.</li></ul><p>Приоритет рассчитывается для каждой фичи с учетом этих факторов.</p><p>Например: если улучшениями рабочей панели будут пользоваться 90% пользователей, задача получит высокий рейтинг по охвату.</p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-02-11/391d5cf1-3115-4fe7-9d86-83f1523d0a3f.jpg" alt="" /><figcaption>Категории задач по методу приоритезации RICE</figcaption></figure><p>Что входит в метод?</p><h4>Reach (Охват)</h4><p>Оценка охвата определяет, на скольких человек или событий повлияет проект за фиксированный период времени.</p><p>Важно использовать реальные данные: статистику продаж, аналитику поведения пользователей или прошлые показатели рекламы. Если точных данных нет, рекомендуется согласовать ориентировочные оценки с командой, чтобы избежать искажения результатов.</p><p>Оценка выражается в абсолютных значениях: например, количество пользователей в месяц (1000 клиентов) или событий (500 транзакций).</p><p>Ошибки часто связаны с сегментацией аудитории.</p><p>Например, неправильно выделенный период времени может преувеличить или преуменьшить охват. Рекомендуется использовать данные как минимум за 2-3 отчетных периода.</p><h4>Impact (Влияние)</h4><p>Влияние означает, какой эффект проект произведет на каждого пользователя или процесс. Оно выражается в коэффициентах:</p><ul><li>3 — значительное улучшение,</li><li>2 — существенное,</li><li>1 — умеренное,</li><li>0.5 — небольшое,</li><li>0.25 — минимальное.</li></ul><p>Чтобы минимизировать ошибку субъективной оценки, нужно привязать коэффициенты к конкретным метрикам.</p><p>Например, увеличение конверсии на 20% можно отнести к показателю 2, а на 5% — к 0.5.</p><h4>Confidence (Уверенность)</h4><p>Фактор уверенности снижает риски из-за недостатка данных. Он выражается в процентах и отражает степень надежности оценок.</p><p>Используются три уровня:</p><ul><li>100% — высокая уверенность, когда есть точные данные, экспертиза или исследования.</li><li>80% — средняя уверенность, когда некоторые данные есть, но прогноз частично основан на гипотезах.</li><li>50% — низкая уверенность, гипотезы без доказательной базы.</li></ul><p>Иногда компании переоценивают проекты из-за желания продвигать «любимые» идеи. Чтобы избежать подобного, нужно проводить проверку метрик подразделениями аналитики и маркетинга. Если компания небольшая, можно ограничиться A/B-тестированием.</p><h4>Effort (Затраты)</h4><p>Оцениваются как совокупность времени, необходимого на реализацию задачи. Используется единица «человек-месяц»: сколько времени один человек потратит на выполнение всех задач проекта.</p><p>Важно оставаться реалистами и учитывать не только основные этапы (разработка, тестирование), но и обсуждения, время на исправление ошибок.</p><p>Например, редизайн страницы кажется простой задачей, но работа может потребовать больше усилий из-за правок от дизайнеров, маркетологов и разработчиков.</p><h4>Формула и использование</h4><p>Общий RICE-оценочный показатель рассчитывается по формуле:</p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-02-11/d73b3db0-ccd1-40f0-b29b-6779daa7729e.jpg" alt="" /><figcaption>Приоритизация фичей по RICE score</figcaption></figure><p>С помощью формулы можно сравнивать проекты между собой. Например, если у одного проекта 1120 баллов, а у другого — 820, первый должен быть приоритетным.</p><h4>Практика внедрения RICE в компании</h4><p>На первом этапе нужно создать шаблон, где будут оцениваться все проекты. Рекомендуется стандартизировать метрики и шкалы, чтобы все члены команды использовали одни и те же критерии. Затем каждому проекту поочередно присваиваются значения по четырем параметрам. Делимся с<a href="https://docs.google.com/spreadsheets/d/1q8d_KobYDUfDLjmmtwOTkrZGM8sH1VvIDr_atPLCmPA/edit?usp=sharing">сылк</a>ой<b> на шаблон RICE с авторасчетом формулы.</b></p><p>После начальной оценки проекты сортируются по убыванию итогового балла. На данном этапе полезно провести повторное согласование, учитывая мнение сотрудников из разных отделов.</p><p>Контролировать внедрение можно с помощью периодических проверок. Сравнивайте прогнозируемые значения RICE с полученными результатами, чтобы улучшить точность формулирования метрик.</p><h3>Kano</h3><p>Каждая характеристика продукта относится к одной из категорий:</p><ul><li><b>Базовые (обязательные) характеристики</b>. Отсутствие базовой функции вызывает недовольство клиента, а ее присутствие воспринимается как нечто должное.</li><li><b>Одномерные (важные)</b>. Воздействие этих характеристик пропорционально их уровню реализации. Чем лучше реализованы эти свойства, тем выше удовлетворенность клиентов.</li><li><b>Привлекательные (мотивирующие)</b>. Они впечатляют пользователя, даже если реализованы минимально. Отсутствие таких функций совершенно не снижает удовлетворенность.</li><li><b>Нейтральные (неважные)</b>. Эти характеристики не вызывают позитивной или негативной реакции. Пользователи просто их игнорируют.</li><li><b>Нежелательные</b>. Меньше их влияния — больше удовлетворенности.</li></ul><p>Расчет начинается с определения набора характеристик, которые предстоит исследовать. Их число варьируется от 10 до 15.</p><p>К каждой характеристике необходимо задать два вопроса:</p><ul><li>Как вы отнесетесь к наличию данной функции?</li><li>Как вы отнесетесь к ее отсутствию?</li></ul><p>Нужно выбрать один из пяти вариантов ответа: «понравится», «ожидаю», «все равно», «не нравится, но смирюсь», «не нравится».</p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-02-11/762fca25-3ee6-498e-bb13-889a5ee9e8ab.jpg" alt="" /><figcaption>Схема показывает, что характеристики продукта можно разделить на 5 видов</figcaption></figure><p>Ответы образуют матрицу, где на пересечении двух ответов выявляется тип характеристики. Для повышения точности опрос можно дополнить вопросом об оценке значимости функции по десятибалльной шкале.</p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-02-11/eb62dbba-2e5b-4cf5-94e2-96596738bf13.jpg" alt="" /><figcaption>Матрица функций</figcaption></figure><p>Для каждой характеристики определяются ее тип на основании матрицы и процент проголосовавших респондентов.</p><p>Количественные показатели служат основой для дальнейшего принятия решений: приоритет получают характеристики с максимальной лояльностью клиентов.</p><h2>Приоритизация фичей: пошаговый алгоритм</h2><h3>Сбор всех фичей в один список</h3><p>Есть несколько источников идей: запросы пользователей, результаты аналитики, инициативы команды и продуктовая стратегия компании.</p><p>На этом этапе можно допустить ошибку: игнорировать данные аналитики, исходя только из личного или коллективного мнения.</p><h3>Формулировка гипотез</h3><p>На основе собранных данных формируются гипотезы. Например, запуск функции автозаполнения полей может быть связан с ростом конверсии на 12% благодаря упрощенному пути пользователя.</p><h3>Оценка идей</h3><p>Каждую гипотезу нужно проверить на целесообразность. Методы выше помогут с этой задачей. Разработчики оценивают возможность реализации, аналитики подтверждают пользовательскую ценность, продуктовые менеджеры анализируют потенциал роста метрик. В небольшой компании эти задачи ложатся на руководителя.</p><h3>Построение карты развития</h3><p>В результате должен получится общий план приоритетов на ближайшие недели-месяцы. В карте развития нужно указать, какой срок потребуется для реализации каждой фичи, какие ресурсы привлекаются и как этапы взаимодействуют друг с другом.</p><h2>Инструменты для автоматизации процесса приоритизации</h2><p>Можно вести учет задач проверенным способом — в таблице Excel. Однако есть целевые аналоги, которые, возможно, вам понравятся больше.</p><h3>Jira</h3><p>Используется для управления задачами и визуализации рабочего процесса. В программе можно создавать приоритетные списки и дашборды и выполнять интеграцию с онлайн-сервисами (Google Analytics, GitHub). Jira поддерживает сортировку задач с учетом приоритизации, включая MoSCoW и Weighted Scoring.</p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-02-11/e7676940-d8b3-4e57-b138-b233d68461cb.jpg" alt="" /></figure><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-02-11/c3e1b2c4-5ddd-4ad9-838b-37797761e675.jpg" alt="" /></figure><h3>Trello</h3><p>Простой инструмент, который популярен среди команд до 10 человек. Задачи можно сортировать по приоритетам, добавлять теги, дедлайны, вложения и персональные чек-листы. Для визуализации статуса фичи используются стикеры, метки, автоматические правила и уведомления.</p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-02-11/9fd193c6-34bf-4ae6-947c-67cd1198428b.jpg" alt="" /></figure><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-02-11/d9759453-c374-4baf-8981-57de8ffce17c.jpg" alt="" /></figure><h3>Productboard</h3><p>Решение для менеджеров продуктов, которое поддерживает приоритезацию идей на основе бизнес-метрик и обратной связи клиентов. Есть функции сбора запросов от пользователей, согласования их с целями продукта и автоматического выстраивания приоритетного списка фич. Одна программа объединяет множество источников: опросы, email, социальные сети, чаты.</p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-02-11/2e9e79f5-ba55-424e-8e71-a32f89cbfd13.png" alt="" /></figure><p>В Productboard можно формировать стратегически значимый список задач и привязывать его к квартальным и годовым целям. Также предусмотрена функция по созданию и визуализации роадмапов, которые можно адаптировать для презентации разным аудиториям: от клиентов до внутренних команд.</p><h3>Aha!</h3><p>Aha! ориентирован на построение стратегий и создание роадмапов продуктов. Инструмент задает критерии оценки фичей и визуализирует приоритеты. Также он помогает согласовывать планы с стейкхолдерами и командой.</p><figure><img src="https://media.tproger.ru/user-uploads/105601/2025-02-11/170f83dc-72d4-4f41-8f13-0c19efb0a8f0.png" alt="" /></figure><p>Поддерживаются приоритетные списки, визуализация дорожных карт, диаграммы зависимости задач и автоматическое распределение ресурсов. Уникальная особенность Aha! —  инструменты для управления голосом клиента: можно собирать отзывы, отслеживать их частоту и связывать с ключевыми требованиями проекта.</p><h2>Что в итоге?</h2><ul><li>Неверные приоритеты в порядке реализации фич приводят к хаосу в компании, перерасходу ресурсов и оттоку клиентов.</li><li>Критерии для оценки фичей включают потребности пользователей, техническую реализуемость, риски, затраты времени и средств.</li><li>Методы приоритезации помогают объективно оценивать фичи и избегать решений «по ощущениям». Популярные подходы: MoSCoW, RICE, Kano.</li><li>Контролировать приоритет задач проще с помощью онлайн-инструментов. Например, Jira, Trello, Aha!</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Deeplink в React Native: Полное руководство</title>
      <link>https://tproger.ru/articles/deeplink-v-react-native--polnoe-rukovodstvo</link>
      <comments>https://tproger.ru/articles/deeplink-v-react-native--polnoe-rukovodstvo?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Сергей Дудченко]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/deeplink-v-react-native--polnoe-rukovodstvo</guid>
      <description><![CDATA[<p>Deeplinking — технология, которая позволяет открывать конкретные экраны или контент внутри мобильного приложения через URL-ссылки. Она особенно полезна для прямых переходов из уведомлений, ссылок с веб-сайтов, поделённых ссылок через социальные сети и интеграций с маркетинговыми кампаниями.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/deeplink-v-react-native--polnoe-rukovodstvo">Deeplink в React Native: Полное руководство</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[React]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 07 Feb 2025 14:19:12 GMT</pubDate>
      <content:encoded><![CDATA[<p>Салют, народ! 👋</p><p>В своей работе я часто сталкиваюсь с тем, что новички испытывают трудности в понимании концепции deeplink и его правильной настройки. Чтобы помочь решить эту проблему, я подготовил краткое руководство, которое объяснит, что такое deeplink и как его правильно настроить в React Native.</p><p>Deeplink — специальная ссылка, которая может открыть ваше приложение и перенаправить пользователя непосредственно на определённый экран или действие. Например, ссылка myapp://profile/123 может открыть профиль пользователя с ID 123.</p><h2>Настройка Deeplinks</h2><h3>Настройка для Android</h3><ol><li>Откройте файл AndroidManifest.xml.</li><li>Добавьте &lt;intent-filter&gt; в активность приложения для поддержки deeplinks.</li></ol><p>Пример:</p><p>Для поддержки App Links добавьте домен:</p><h3>Настройка для iOS</h3><ol><li>Откройте файл Info.plist вашего проекта.</li><li>Добавьте секцию CFBundleURLTypes для определения вашей схемы URL.</li></ol><p>Пример:</p><p>Здесь myapp:// станет вашей базовой схемой для deeplinks.</p><p>Для поддержки универсальных ссылок (Universal Links) добавьте домен вашего сайта:</p><h2>Обработка Deeplinks в React Native</h2><p>Есть два способа обработки событий deeplinks в проекте. React Native предоставляет встроенный модуль Linking , а также есть возможность использовать функционал библиотеки react-navigation</p><h3>Использование Linking API</h3><p>Пример использования Linking для обработки deeplinks:</p><h3>Использование React Navigation</h3><p>Если вы используете react-navigation, можно настроить глубокую интеграцию с помощью NavigationContainer.</p><p>Пример конфигурации:</p><p>Теперь ссылка myapp://profile автоматически откроет экран Profile.</p><h2>Тестирование Deeplinks</h2><h3>Тестирование на Android</h3><ul><li>Используйте ADB команду:</li></ul><ul><li>Для стандартных ссылок откройте https://yourdomain.com/path в браузере.</li></ul><h2>Тестирование на iOS</h2><ul><li>Используйте Safari для открытия ссылок типа myapp://.</li><li>Для Universal Links откройте https://yourdomain.com/path в браузере.</li></ul><h2>Лучшие практики</h2><ol><li><b>Используйте уникальные схемы</b>: Избегайте конфликтов с другими приложениями.</li><li><b>Добавьте fallback</b>: Если ссылка не может быть обработана, перенаправьте пользователя на главный экран.</li><li><b>Защитите данные</b>: Не передавайте конфендециальную информацию через URL.</li></ol><p>Внедрение и тестирование deeplinks в React Native — важный шаг к созданию более удобного и интерактивного пользовательского опыта. Следуя этому руководству, вы сможете успешно настроить инструмент, обеспечив быструю и удобную навигацию внутри приложения.</p>]]></content:encoded>
    </item>
    <item>
      <title>Топовые инструменты для фронтенд-разработки в 2025 году</title>
      <link>https://tproger.ru/articles/topovye-instrumenty-dlya-frontend-razrabotki-v-2025-godu</link>
      <comments>https://tproger.ru/articles/topovye-instrumenty-dlya-frontend-razrabotki-v-2025-godu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/topovye-instrumenty-dlya-frontend-razrabotki-v-2025-godu</guid>
      <description><![CDATA[<p>Инструменты для фронтенд-разработки. Показываем актуальный инструментарий для frontend в 2025 году. Рассматриваем тренды для фронтендеров ✔ Tproger</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/topovye-instrumenty-dlya-frontend-razrabotki-v-2025-godu">Топовые инструменты для фронтенд-разработки в 2025 году</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Оптимизация]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[CSS]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[TypeScript]]></category>
      <category><![CDATA[Node.js]]></category>
      <category><![CDATA[React]]></category>
      <category><![CDATA[macOS]]></category>
      <category><![CDATA[Adobe]]></category>
      <category><![CDATA[Redux]]></category>
      <category><![CDATA[Фреймворки и библиотеки]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Vue]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 03 Feb 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Специальные инструменты для разработки фронтенда существенно упрощают работу программистов, ускоряют процесс, помогают создавать привлекательные интерфейсы сайтов и решают множество других прикладных задач.</p><p>Мы собрали топ самых эффективных инструментов для фронтенда в 2025 году. Актуальная информация о фреймворках, библиотеках, средствах сборки, проверки и отладки будет полезна как начинающим, так и опытным прогерам.</p><h2>Фреймворки и библиотеки для разработки интерфейсов</h2><p>Создание фронтенда, то есть клиентской части программного продукта — неотъемлемый этап разработки сайтов и приложений. Фронтендеры работают с с HTML, CSS, JavaScript, а также используют многочисленные библиотеки с готовыми решениями. Даже новички в курсе, что без фреймворков проекты сегодня не пишутся — это долго, тяжело и непродуктивно. Ниже — наиболее эффективные фреймворки для разработки UI.</p><h3>React.js</h3><p>Созданная Джорданом Валке, ведущим программистом самой известной в мире соцсети, библиотека React остается лидером в сфере разработки инфраструктуры на JavaScript UI. На <a href="http://react.js">React.js</a> написаны такие проекты, как Skype, PayPal, Airbnb, Dropbox и многие другие.</p><p>Популярность библиотеки объясняется вполне объективными причинами:</p><ul><li>Обширное комьюнити. Только на GitHub вы найдете больше 110 тыс. публикаций с тегом «react». Библиотекой пользуются во всем мире, а тысячи профессиональных программистов постоянно обновляют инструменты и актуализируют данные. Если у разработчика появится вопрос, он обязательно найдет на него ответ в сообществе.</li><li>Технологический бэкграунд. Библиотеку создали профи из FB для себя — такие проекты делаются максимально качественно и надежно. Тот факт, что технологии доверяют крупнейшие мировые корпорации, говорит сам за себя.</li><li>Активное взаимодействие с TypeScript. Этот инструмент представляет собой продвинутую версию JS, который со временем стал слишком тяжелым в плане кода. TypeScript лишен многих недостатков Java, поэтому активно применяется в React.js. В общем, в 2025 году фреймворк точно не умрет.</li><li>Версионность. В React, в отличие от Angular или Vue, код, написанный даже несколько лет назад, без проблем запустится на новейшей версии. А если там есть неактуальный элемент, программа сама подскажет, как его исправить.</li></ul><p>В React 19 появились новые, еще более мощные компоненты, повышающие производительность и пользовательский опыт:</p><ul><li>Улучшенная поддержка Server Components, с которой более удобно работать с серверным рендерингом и загружать контент в больших проектах;</li><li>Новый API — Actions, который делает более простой и продуктивной работу с формами и интерактивными элементами;</li><li>Директивы preload и preinit обеспечивают предварительную загрузку важных ресурсов, что ускоряет работу приложений;</li><li>Новый канал релизов React Canaries позволяет протестировать некоторые опции React еще до их официального выпуска.</li></ul><p>Улучшения произошли и в экосистеме React. Упрощается работа с Redux — библиотекой, которую все чаще используют в связке с React. Инструменты для работы с таблицами и интерфейсами React Table 8 более доступны и производительные.</p><h3>Vue.js</h3><p>Еще один мощный, но при этом простой и гибкий в применении инструмент для фронтенд-разработчиков — <a href="http://vue.js">Vue.js</a>. Согласно экспертным прогнозам, он сохранит свои позиции в топе-3 фреймворков для JavaScript в 2025 году.</p><p>Относительно недавно создатели Vue радикально обновили движок и архитектуру. При этом доля TypeScript кода в репозитории приближается к 99%, что расценивается профессиональными прогерами крайне позитивно.</p><p>Команда разработчиков Vue.js, возглавляемая Эваном Ю, в свое время заявила, что фреймворк станет самым простым и удобным инструментом из всех существующих. По мнению экспертов, их слова полностью подтвердились.</p><p>В числе главных преимуществ фреймворка:</p><ul><li>Подходит для новичков. Для освоения достаточно знания HTML, CSS, JavaScript;</li><li>Небольшой вес. Размер новой заархивированной библиотеки runtime меньше 10 kb;</li><li>В пакет входит виртуальный DOM — объектная модель документа;</li><li>Активное крутое сообщество. Профессионалы помогут, если у разработчика возникнут проблемы.</li></ul><p>Количество полноценных приложений, сделанных на Vue.js, превышает 36 тысяч. Это число постоянно растет, и в 2025 году тренд обязательно продлится. В экосистему внедряются новые технологии, например, Vapor Mode, — инструмент, открывающий новые горизонты для разработки высокопроизводительного софта.</p><p>Подход, заданный Composition API, позволяет создавать компоненты через импорт функций вместо обновления опций. На выходе получаем более чистую архитектуру, что особенно важно для продуктов со сложной логикой.</p><p>Появление высокоуровнего фреймворка Nuxt 4 принесет важные улучшения в плане производительности и гибкости разработки. Поддержка Vue 3.3+ в Nuxt 4 улучшает работу с анимацией и межкомпонентные переходы. Пользовательский интерфейс становится более динамичным и плавным.</p><p>На фреймворке Vue созданы сайты Ozon, Zoom, Chess (сайт для шахматистов с посещаемостью 20 млн пользователей в месяц), Livestorm — платформа для запуска вебинаров, и многие другие ресурсы.</p><h3>Angular</h3><p>Этому мощному фреймворку доверяет Google, что уже говорит само за себя. Множество десктопных и мобильных приложений создано на <a href="https://angularjs.org/">AngularJS</a> — это крутой инструмент с минимальным риском критических ошибок. На сайте фреймворка создатели призывают разработчиков сосредоточиться на приложениях, а код Angular берет на себя.</p><p>И хотя профи считают этот фреймворк более сложным в освоении, чем Vue и React, его функциональность оправдывает все трудности учебного процесса. В 2025 году эволюция Angular продолжится: его последние версии показывают существенные изменения в подходах к реактивности ПО и управлению состоянием.</p><p>Новые решения, на которые стоит обратить внимание:</p><ul><li>К числу ключевых нововведений фреймворка относится технология Signals, которая делает взаимодействие с реактивными данными более простым. «Сигналы» актуальны в том случае, когда требуется синхронное обновление UI и оптимизация производительности приложения.</li><li>В Angular 19 компоненты Standalone стали новым стандартом. Теперь они могут использоваться без добавления в модуль. Такое решение упрощает архитектуру приложений и делает подход к коду более прямолинейным.</li><li>Внедрение зависимостей (DI, Dependency Injection) дополнено новой функцией inject() — она заменяет стандартный конструктор, что также упрощает код и делает его более гибким.</li><li>Автоматическая миграция продуктов к новому API — еще один шаг к упрощению и сокращению кода. Это напрямую отражается на производительности современных приложений, в первую очередь, на больших и логически сложных.</li></ul><p>Прежние плюсы  Angular остались неизменными — расширяемость, взаимодействие с другими фреймворками и инструментами, множество надстроек и дополнений — Auto Validate, Complete, Grid и т.д.</p><p>На фреймворке написан сайт британской газеты The Guardian, интерактивные элементы PayPal, самый посещаемый сайт мониторинга погоды Weather.com, фронтенд музыкального ресурса VEVO и многие другие продукты.</p><h3>Svelte</h3><p>В свое время фреймворк предложил принципиально новый подход к разработке пользовательских интерфейсов. Концепция создателей <a href="https://svelte.dev/">Svelte</a> — делать больше с минимальными затратами. Некоторые разработчики считают Svelte больше компилятором, чем фреймворком, что по сути соответствует действительности.</p><p>В чем основные фишки Svelte:</p><ul><li>При меньшем весе проекты более производительны — им не требуется виртуальный DOM;</li><li>Фреймворк прост в освоении, поэтому подходит начинающим разработчикам;</li><li>Опытные прогеры обращают внимание на быстроту и стабильность инструмента;</li><li>Анимации в Svelte доступны прямо из коробки — сторонние библиотеки не требуются.</li></ul><p>На текущем этапе этот фреймворк рано ставить на одну ступень с React и Vue, но его рейтинг на GitHub постоянно повышается, и в 2025 году растущий тренд точно сохранится.</p><p>Фронтенд-разработкой с фреймворком Svetle пользовались такие компании, как Spotify, Ikea, Finance.yahoo, Music.apple и многие другие.</p><h3>Solid.js</h3><p>Минималистичный фреймворк, который по производительности и быстроте превосходит все остальные фреймворки из топа. <a href="https://www.solidjs.com/">Solid</a> напоминает React, но вместо виртуального DOM использует компиляцию. Проект без проблем компилируется в JavaScript-код, что обеспечивает быстрый рендеринг страницы (трансформацию кода в картинку для пользователя).</p><p>В чем плюсы:</p><ul><li>Тонкая реактивность обеспечивает оптимизацию рендеринга в реальном времени;</li><li>Есть бесшовная интеграция со всеми актуальными библиотеками на JS;</li><li>Компоненты фреймворка — стандартные JavaScript-функции: они выполняются однократно для настройки представления, после чего автоматически обновляют интерфейс.</li></ul><p>Solid.js, по состоянию на 2025, — идеальный инструмент для одностраничных приложений и продуктов с максимальной интерактивностью (чат-ботов, мессенджеров, панелей управления).</p><p>Фреймворк используют такие ресурсы, как 1c.ru, криптовалютная биржа Ape.pro, маркетплейс Майнкрафт Waypoint Studios и другие.</p><h2>Инструменты для сборки и разработки</h2><p>По мнению большинства экспертов, в 2025 году ведущим трендом в сборке и разработке на JavaScript будет работа с универсальными мета-инструментами, совместимыми с любыми фреймворками.</p><p>Топ наиболее эффективных инструментов этого направления:</p><ul><li><a href="https://vite.dev/">Vite</a>. Локальный сервер разработки от Эвана Ю. В новой версии Vita 6 возможности существенно расширились, в том числе в плане поддержки других фреймворков, помимо Vue. Благодаря модульной архитектуре и новой системе плагинов, улучшилась кастомизация сборки (процесс внесения изменений). С Vite можно использовать несколько фреймворков в одном проекте — для сложных приложений это актуальная опция. Обновления в реальном времени происходят быстро и стабильно.</li><li><a href="https://webpack.js.org/">Webpack</a>. Сборщик модулей, который компилирует части кода в единый файл. Работает с JavaScript и TypeScript. Несмотря на появление новых инструментов сборки, в 2025 году Webpack останется обязательным инструментом, особенно для работы с масштабными проектами. Он оптимизирует размер и скорость загрузки ресурсов, эффективно выстраивает процессы разработки, в том числе HMR — горячую замену модулей. Плюс обеспечивает совместимость продуктов с различными версиями браузеров.</li><li><a href="https://parceljs.org/">Parcel</a>. Главная фишка этого инструмента в том, что его не нужно настраивать и конфигурировать — это делается автоматически. Parcel применяет воркеры — скрипты для многоядерной компиляции, и содержит кэш файловых систем для ускоренной сборки. Есть поддержка из коробки JS, CSS, HTML, поэтому соответствующие плагины не требуются. Модули, которые меняются в процессе разработки, обновляются автоматически.</li></ul><h2>Тестирование и отладка</h2><p>В 2025 году в тестировании и отладке продуктов наиболее востребованы следующие инструменты:</p><ul><li><a href="https://jestjs.io/ru/">Jest</a>. Самый популярный фреймворк для тестирования кода на JavaScript. Работает с синхронным и асинхронным кодом, интегрируется с React и Vue. В числе основных плюсов — простая настройка и удобное применение. Подходит для проверки и отладки сложных приложений.</li><li><a href="https://www.cypress.io/">Cypress</a>. Инструмент для автоматизации тестирования, который подходит новичкам. Использует тест end-to-end, покрывая весь путь пользователя, и внедряется в CI/CD — процессы непрерывной доставки и развертывания. Благодаря подробной документации подходит для новичков.</li><li><a href="https://testing-library.com/docs/react-testing-library/intro">React Testing Library</a>. Библиотека эффективных инструментов для тестирования пользовательских интерфейсов UI. RTL позволяет абстрагироваться от внутренней логики компонентов и проверяет состояние реального DOM, то есть имитирует действия пользователей, руководствуясь только данными браузера.</li><li><a href="https://storybook.js.org/">Storybook</a>. Позиционируется как максимально простое средство тестирования и разработки. Создает изолированную программную среду для ускоренного и эффективного процесса.</li></ul><h2>Инструменты для контроля версий</h2><p>Актуальные в 2025 средства для контроля созданных разработчиками версий:</p><ul><li><a href="https://git-scm.com/">Git</a>. Распределенная VCS (система управления версиями) отслеживает изменения в исходном коде и файлах в совместных проектах. Позволяет править и контролировать версии в процессе разработки. Обладает расширенными возможностями работы с репозиториями.</li><li><a href="https://github.com/gitlabhq">GitHub/GitLab</a>. Службы управления репозиториями, которые используются и для управления изменениями в опенсорс-проектах. Оба репозитория обладают полным набором инструментов для контроля и интеграций, обеспечивая эффективную совместную разработку и неограниченное сотрудничество. Обладают встроенными опциями безопасности, которые разработчики могут в любой момент активировать.</li><li><a href="https://bitbucket.org/product">Bitbucket</a>. Аналог GitHub с бесплатным доступом к контролю команды до пяти разработчиков. Подходит для написания частных проектов, обладает гибкостью, совместим со множеством других инструментов, в том числе с Jira, — средой для управления проектами.  Интеллектуальный семантический поиск JQL сканирует код по запросу пользователя.</li></ul><h2>CSS-процессоры и CSS-фреймворки</h2><p>Инструменты для первичной трансляции кода, актуальные в 2025 году:</p><ul><li><a href="http://sass-lang.com/">Sass</a>. Препроцессор упрощает написание кода, исключая одинаковые участки или заменяя ключевые элементы синтаксиса одним знаком. Sass считается самым надежным языком расширений CSS, содержит средства импорта и множество других функций.</li><li><a href="http://lesscss.org/">Less</a>. Этот препроцессор поддерживает CSS и позволяет разработчикам применять его методы для улучшения и дополнения веб-приложений. В Less встроены логические, строковые, математические функции, а также функции списков.</li><li><a href="https://getbootstrap.com/">Bootstrap</a>. Классический фреймворк для ускоренной верстки со множеством встроенных компонентов. Более 20% всех сайтов в мире создано с его помощью. Автоматически выстраивает адаптивную сетку на базе Flex-модели, создает изображения, поставляется с панелями навигации и другими компонентами.</li><li><a href="https://tailwindcss.com/">Tailwind CSS</a>. Фреймворк, который пользователи называют прогрессивной версией Bootstrap. Содержит обширный каталог утилитарных классов и инструментов для прототипирования, стилизации сайтов и приложений. Легко настраивается, работает с собственными служебными шаблонами, создает сложные адаптивные макеты, в том числе с ориентацией под мобильные устройства.</li></ul><h2>Инструменты для работы с API и серверной логикой</h2><p>Эффективная работа с API обеспечивает надежность при обработке информации в приложениях.</p><p>В 2025 году топ таких инструментов выглядит следующим образом:</p><ul><li><a href="https://graphql.org/">GraphQL</a>. Язык, описывающий взаимодействие клиента с сервером.  Рассматривается как альтернатива стандартного инструмента REST. В сравнении с последним, более удобен в применении, содержит обширный инструментарий.</li><li><a href="https://www.apollographql.com/docs/react">Apollo Client</a>. Язык запросов, созданный разработчиками FB. Интегрируется с GraphQL и React для управления состоянием приложения. Предоставляет эффективные инструменты в виде поддержки кэширования, управления состоянием и исправления ошибок. Интегрируется с библиотекой Redux и другими фреймворками.</li><li><a href="https://axios-http.com/ru/docs/intro">Axios</a>. JS-библиотека для работы с HTTP-запросами, а по сути — клиент для работы в браузере и с платформой Node.js. Помогает настроить взаимодействие между frontend и backend.</li></ul><h2>UI и UX-дизайн</h2><p>Интерфейсу и комфорту пользователя современные сайты и приложения уделяют максимум внимания. На кривые и неудобные ресурсы посетители просто не приходят — зачем, если есть лаконичные и функциональные продукты, отвечающие актуальным трендам цифрового дизайна.</p><p>Эти инструменты сохраняют свою актуальность в 2025 году:</p><ul><li><a href="https://www.figma.com/">Figma</a>. Графический редактор, который остается самым популярным инструментом для проектирования интерфейсов, прототипирования и тестирования. Также это среда взаимодействия команды разработчиков, доступная непосредственно в браузере. Содержит удобные инструменты, может работать в режиме многозадачности.</li><li><a href="https://helpx.adobe.com/ru/xd/get-started.html">Adobe XD</a>. ПО для работы с интерфейсами, анимированием, прототипами сайтов, сервисов и приложений от лидера индустрии. Основной инструмент UX-дизайнеров, желающих создавать юзабельные и современные макеты и делиться результатами работы с командой. Содержит многочисленные инструменты для рисования, создания 3D-эффектов, добавления интерактивных функций и анимации.</li><li><a href="https://www.sketch.com/">Sketch</a>. Выбор многих профессионалов индустрии UI/UX дизайна. Упрощает разработку интерфейсов благодаря множеству встроенных полезных функций — артбордов, редакторов, поддержкой командной работы в режиме онлайн. Работает только с macOS.</li></ul><p>При выборе фреймворков и инструментов фронтам стоит руководствоваться удобством и простотой использования, соответствием собственному профессиональному уровню, языковой поддержкой, ценой, а также спецификой создаваемого продукта.</p><p>Вспомогательные инструменты ускоряют и упрощают разработку, снижают риск ошибок и работают на результат — запуск привлекательных, быстрых и функциональных веб-продуктов и приложений.</p><p><i>Рассказывайте в комментариях, какими фреймворками и библиотеками пользуетесь вы. А если хотите найти большей полезной информации про фронтенд — вам </i><a href="https://t.me/+BDTRdPNEOY00ZjE6">сюда</a><i>.</i></p>]]></content:encoded>
    </item>
    <item>
      <title>Создаём мобильное приложение с нуля: от идеи до публикации в App Store и Google Play</title>
      <link>https://tproger.ru/articles/sozdayom-mobilnoe-prilozhenie-s-nulya--ot-idei-do-publikacii-v-app-store-i-google-play</link>
      <comments>https://tproger.ru/articles/sozdayom-mobilnoe-prilozhenie-s-nulya--ot-idei-do-publikacii-v-app-store-i-google-play?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Ксения Андреева]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/sozdayom-mobilnoe-prilozhenie-s-nulya--ot-idei-do-publikacii-v-app-store-i-google-play</guid>
      <description><![CDATA[<p>Узнайте, как создать мобильное приложение с нуля: от формирования идеи и разработки до тестирования и публикации в App Store и Google Play. Полный обзор ключевых этапов!</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/sozdayom-mobilnoe-prilozhenie-s-nulya--ot-idei-do-publikacii-v-app-store-i-google-play">Создаём мобильное приложение с нуля: от идеи до публикации в App Store и Google Play</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Kotlin]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[App Store]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Figma]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 30 Jan 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Каждый день сотни миллионов людей используют мобильные приложения для разных задач: от общения и развлечений до управления финансами и организации рабочего процесса.</p><p>Сегодня расскажем о том, как создать своё мобильное приложение с нуля до публикации в сторах.</p><h2>1 этап — идея</h2><p>На этапе работы над идеей важно решить, какие запросы пользователей будет решать приложение, почему нужно устанавливать <b>его</b>, а не приложение конкурента. А ещё важно определиться с УТП и понимать аудиторию.</p><p><b>Выбор ниши — крайне важный шаг.</b> <a href="https://app2top.ru/news/sensor-tower-v-2024-godu-iap-vy-ruchka-ry-nka-mobil-ny-h-igr-dostigla-80-9-mlrd-dollarov-e-to-vy-she-prognoza-226931.html">Sensor Tower</a>: за 2024 год выручка мобильных приложений достигла $81 млрд, что выше изначального прогноза на год.</p><p><b>Важно понять: </b>мобильное приложение — это бизнес. А значит, важно определиться с нишей и предложением для пользователей.</p><p><b>Чтобы выбрать правильную нишу, нужно:</b></p><ul><li>Понять, что вам действительно интересно, в чём вы экспертны. Ваша задача — заниматься тем, что вам действительно по душе, и «заражать» этой идеей пользователей.</li><li>Оценить спрос на выбранную нишу. Для первичного анализа интереса можно использовать простые инструменты по типу Google Trends.</li><li>Создать портреты ваших потенциальных пользователей. Это и демографические данные (пол, возраст, география), и психографические (интересы, потребности, поведение пользователей). Важно создать несколько портретов пользователей и как можно более подробно — вам это пригодится в продвижении приложения.</li></ul><p><b>Следующий шаг — подробный анализ конкурентов. А для этого как минимум нужно:</b></p><ul><li>Составить список прямых и косвенных конкурентов. Найдите приложения с функционалом, похожим на ваш продукт.</li><li>Проанализировать отзывы пользователей в сторах — что нравится и не нравится пользователям, о чём они пишут?</li><li>Провести SWOT-анализ (сильные и слабые стороны конкурентов и ниши, возможности и угрозы конкурентов и ниши).</li><li>Найти недостатки у конкурентов и решить, как вы можете улучшить пользовательский опыт, как именно вы можете усилить ваше предложение.</li><li>Глубже погрузиться в статистику, используя для этого ресурсы по типу Statista, App Annie и другие платформы.</li></ul><h2>2 этап — планирование и дизайн</h2><p>На этом этапе вы сможете уже точно понимать, какое именно приложение вы будете создавать, как оно будет выглядеть и какой у него будет функционал.</p><p><b>Первый шаг здесь — определить функционал вашего приложения. </b>Нужно понять, какие функции в приложении будут основные, чтобы протестировать его жизнеспособность с помощью MVP.</p><p>Сосредоточьтесь на решении ключевых запросов пользователя. Например, если вы разрабатываете приложение для доставки еды из ресторанов, основными функциями могут быть поиск ресторанов, просмотр меню, оформление заказа и отслеживание доставки. А уже позже можно добавить систему рейтинга, формы обратной связи, привязку аккаунтов и другие фичи.</p><p>После того, как вы определили основные функции, нужно <b>создать прототип приложения.</b> Это простая визуализация, с помощью которой вы сможете лучше понять структуру и то, как работает пользовательский интерфейс.</p><p>С помощью <a href="https://www.figma.com/">Figma</a> или <a href="https://www.sketch.com/">Sketch</a> можно создать интерактивные прототипы без необходимости писать код. При этом, если дизайном приложения занимается другой человек, вы всегда сможете перейти, например, в Фигму, и оставить комментарии прямо там, чтобы дизайнер понимал, как улучшить интерфейс. А значит, вы и сами сможете протестировать пользовательский интерфейс ещё до начала фактической разработки приложения. Да ещё и сэкономите время, деньги… И нервы 🙂</p><h2>3 этап — технологии и инструменты разработки</h2><p><b>Есть два вида разработки приложений: нативная и кроссплатформенная. </b>Нативная разработка предполагает создание приложения для каждой платформы отдельно на базе Swift для iOS и Kotlin для Android.</p><p><a href="https://developer.apple.com/documentation/swift">Swift</a> — специально разработанный Apple язык программирования для создания приложений под iOS, macOS, watchOS и tvOS. На базе Свифта можно создавать быстрые приложения, которые по максимуму используют возможности экосистемы Apple.</p><p><a href="https://kotlinlang.org/docs/home.html">Кotlin от Google</a> — стандарт нативной разработки для устройств на базе Android. Приложения на Kotlin легко интегрируются с существующим Java-кодом благодаря совместимости JVM.</p><p>Кроссплатформенная разработка подойдёт для тех, кто хочет создать приложение сразу для нескольких платформ.</p><p><a href="https://docs.flutter.dev/">Flutter от Google</a> помогает в разработке приложения для iOS и Android из одного исходного кода на базе языка Dart. У Flutter есть большие библиотеки виджетов с возможностью создания сложных пользовательских интерфейсов.</p><p><a href="https://reactnative.dev/docs/getting-started">React Native от Facebook</a> хорош как кроссплатформенное решение тем, что использует JavaScript для создания мобильных приложений. Принцип работы тот же, что и у Flutter — создаётся «обёртка» над нативными компонентами.</p><p>При выборе инструментов нужно отталкиваться не столько от платформы разработки, сколько от удобства работы в IDE. Например, <a href="https://developer.apple.com/xcode/">Xcode</a> — это официальная среда разработки от Apple для создания приложений под iOS. В Xcode есть редактор кода, симулятор устройств и инструменты для отладки. А <a href="https://developer.android.com/studio?hl=ru">Android Studio</a> — официальная IDE от Google, которая работает с Kotlin и Java.</p><p>А ещё для кроссплатформенной разработки часто работают с <a href="https://code.visualstudio.com/">VS Code</a> — его выбирают за поддержку разных языков программирования, включая Dart и JavaScript.</p><h2>4 этап — разработка</h2><p>Для чистого и логически правильного кода важно создать единую структуру разработки, чтобы облегчить и текущий этап, и будущие функциональные и технические обновления.</p><p>Структура проекта должна быть логичной и модульной; должно быть разделение кода на компоненты или модули, каждый из которых отвечает за реализацию конкретной функции. Например, можно создать модули для обработки пользовательского интерфейса или управления данными. Так вы облегчите тестирование приложения, поиск и устранение багов.</p><p><b>Что ещё важно:</b></p><ul><li><b>Придерживаться принципа SOLID. </b>Один класс = одна задача; классы должны быть открыты для расширения, но закрыты для изменения; объекты должны быть заменяемыми, но без изменения корректности работы; большой интерфейс = много небольших, но конкретных интерфейсов; высокоуровневые модули должны быть отделены от низкоуровневых.</li><li><b>Чистый, читаемый код. </b>Это важно для дальнейшего развития вашего приложения. Везде, где возможно, оставляйте комментарии, чтобы позже вы могли к ним вернуться.</li><li><b>Контроль версий. </b>Здесь помогут системы по типу Git для отслеживания изменений в коде.</li></ul><p><b>Задумайтесь и об интеграции приложения с API. </b>Используйте HTTPS-протоколы для защиты данных, сделайте так, чтобы вы получали все сообщения о взаимодействии с API (это к вопросу об отслеживании ошибок), используйте кэширование данных, чтобы не перегружать сервер.</p><p><b>Следующий шаг — выбор базы данных.</b> Для хранения данных на iOS часто используют Core Data или SQLite, а для Android — Room. А если вы работаете с облачными базами, используйте решения по типу Firebase.</p><p><b>Последний шаг в разработке приложения — тестирование. </b>Именно с помощью тестирования вы сможете найти баги до того, как приложение будет использоваться. Есть два типа тестирования: автоматизированное и ручное. И здесь нельзя выбрать что-то одно, нужно использовать и тот, и другой формат.</p><p>Для автоматизированного тестирования используют юнит-тесты, которые проверяют разные фрагменты кода на наличие логических ошибок. Проводят интеграционные тесты, которые проверяют, нет ли конфликтов между модулями, и UI-тесты — они автоматически воспроизводят сценарии через интерфейс приложения.</p><p>Ручной формат тестирования подразумевает под собой usability-тесты для оценки интерфейса и альфа/бета-тесты для того, чтобы небольшая группа пользователей сама смогла обнаружить баги.</p><h2>5 этап — подготовка к публикации</h2><p>У App Store строгие правила по контенту и функциональности приложений. Здесь абсолютно все модули — от интерфейса до API — тщательно проверяются. По <a href="https://developer.apple.com/app-store/guidelines/">этой ссылке</a> вы найдёте информацию о стандартах проверки приложений Apple.</p><p>А вот с Google Play ситуация обстоит гораздо лучше. Но, разумеется, вы в любом случае должны соблюдать стандарты <a href="https://play.google/developer-content-policy/">Google Play Developer Policy Center</a>.</p><p>Для того, чтобы запустить процесс публикации приложения, вам <b>нужно создать аккаунты разработчика на двух платформах:</b></p><ul><li>Для регистрации в программе <a href="https://developer.apple.com/programs/enroll/">Apple Developer</a> нужно внести оплату годового взноса в размере $99;</li><li>Регистрация разработчика через <a href="https://developer.android.com/distribute/console?hl=ru">Google Play Console</a> обойдётся в $25 единоразово.</li></ul><p>Следующий шаг подготовки к публикации приложения — <b>заполнение страницы:</b></p><ul><li>Иконка вашего приложения должна быть запоминающейся. Не забывайте про рекомендации по размерам и форматам изображений для <a href="https://developer.apple.com/design/human-interface-guidelines/app-icons">iOS</a> и <a href="https://stackoverflow.com/questions/4654811/what-is-the-feature-graphic-for-android-apps">Android</a>.</li><li>Скриншоты должны наглядно демонстрировать основные функции приложения. Это влияет на первое впечатление пользователей.</li><li>Хорошее описание — не просто рассказ о функциях приложения, но и маркетинговый инструмент. Определите ключевые слова, по которым пользователи найдут вас в поиске.</li></ul><h2>6 этап — публикация и продвижение</h2><p>Окей, вы создали учётки разработчика на нужных платформах, подготовили приложение к публикации. Что дальше?</p><p><b>Далее вам нужно заполнить все поля</b>, включая информацию о приложении, цены, регионы и возрастные ограничения. Особенно уделите внимание настройкам конфиденциальности и безопасности. После этого приложение проходит процесс проверки на соответствие требованиям.</p><p>После публикации начинается новый этап — <b>контроль метрик с помощью аналитики.</b> Так вы сможете понять поведение пользователей, популярность функций и возможные проблемы приложения.</p><p><i>Изучайте отзывы! </i>Пользователи могут указывать на ошибки и предлагать новые интересные идеи для вашего приложения. И не забывайте отвечать на отзывы — это важно.</p><p><b>Продвижение приложения — всегда несколько стратегий одновременно:</b></p><ul><li><b>ASO или App Store Optimization </b>— процесс оптимизации вашего приложения для повышения его видимости в сторе. Сюда входит работа над ключевыми словами, заголовками, описаниями и визуалом карточки приложения.</li><li><b>Целевые рекламные кампании</b> помогут вам «достучаться» до нужной аудитории. Здесь не пытайтесь провести кампанию самостоятельно, лучше наймите специалиста.</li><li><b>Важно продвижение в социальных сетях и на отраслевых сайтах</b>, чтобы больше пользователей узнало о вас. Анонсируйте в мероприятия, которые недоступны в приложении: например, конкурс на лучшую историю использования вашего приложения, которую далее вы сможете использовать в маркетинговой стратегии.</li></ul><p>Важно понимать, что приложение «на коленке» —  буквально смерть для вашего проекта. Нужно подойти к процессу планирования, выбора инструментов, разработки приложения, публикации в сторах и маркетинговой стратегии с умом. И не забывайте всегда тестировать разные гипотезы — возможно, самые нетривиальные решения больше всего зацепят аудиторию, которую вы искали с самого начала.</p><p>Если вы мечтаете создать свое мобильное приложение — делимся опытом, инструментами и полезными ресурсами <a href="https://t.me/+4r1h88a5IthiNjVi">здесь</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Озвучь своё мнение и беги: почему «плохие» сайты продают лучше</title>
      <link>https://tproger.ru/articles/ozvuch-svoyo-mnenie-i-begi--pochemu--plohie--sajty-prodayut-luchwe</link>
      <comments>https://tproger.ru/articles/ozvuch-svoyo-mnenie-i-begi--pochemu--plohie--sajty-prodayut-luchwe?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Ксения Андреева]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/ozvuch-svoyo-mnenie-i-begi--pochemu--plohie--sajty-prodayut-luchwe</guid>
      <description><![CDATA[<p>Некоторые сайты, которые на первый взгляд кажутся не слишком продуманными, в итоге продают лучше, чем современные. Почему «плохие» сайты вообще могут продавать ещё и лучше самых проработанных платформ?</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/ozvuch-svoyo-mnenie-i-begi--pochemu--plohie--sajty-prodayut-luchwe">Озвучь своё мнение и беги: почему «плохие» сайты продают лучше</a>»</p>]]></description>
      <category><![CDATA[SEO]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 28 Jan 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>У компаний есть негласное правило: они инвестируют деньги, время и ресурсы сотрудников в разработку своих платформ. Всё для того, чтобы пользователю было удобно заходить на сайт и быстро находить нужную информацию.</p><p>На практике всё выходит любопытно: некоторые сайты, которые на первый взгляд кажутся не слишком продуманными (или даже «плохими» с точки зрения UX/UI), неплохо так конвертят. И продажи у них высокие, о компании много людей знают. И даже сервисные ошибки не останавливают пользователей.</p><p>В чём дело? Почему «плохие» сайты вообще могут продавать, да ещё и лучше самых проработанных платформ? Сегодня разберёмся в этой теме.</p><h2>О причинах</h2><figure><img src="https://media.tproger.ru/user-uploads/106063/2025-01-21/5f753eb1-511a-422d-9a6b-e11e9a2eb942.jpg" alt="" /></figure><p>Одной из причин такого явления может быть более простая навигация на таких сайтах или тот факт, что «плохие» загружаются быстрее на самых разных устройствах.</p><p>Ещё одна важная причина — зачастую «вылизанность» интерфейсов может отталкивать, как бы странно это ни звучало.</p><p>И таких примеров много: например, в промышленности все привыкли к тому, что подавляющее большинство сайтов и приложений сделаны просто «на коленке». Потому что основной костяк работы приходится на личное общение с менеджерами, снабженцами, руководителями. Клиентам в этой сфере по большей части все равно на то, как выполнен сайт заказчика. Потому что они знают: нельзя доверять даже 1Ске, доверять можно только словам менеджера «Да, я уточнил у главных, заявку берём, всё привезём и организуем».</p><figure><img src="https://media.tproger.ru/user-uploads/106063/2025-01-21/3572a3c5-1738-4c3f-9151-63394238e016.jpg" alt="" /></figure><p>Ещё один пример — автоиндустрия. Парадокс «плохих» сайтов распространяется и на покупку авто, и на покупку запчастей. Самое главное, что пользователи хотят увидеть на сайтах и в приложениях в этой сфере — реальные отзывы.</p><figure><img src="https://media.tproger.ru/user-uploads/106063/2025-01-21/02357787-8b3d-4199-944d-a54a96740dbb.jpg" alt="" /></figure><p>Сейчас век перегруженности. Вы замечали, например, что в обычном банковском приложении куча ненужных блоков и рекламы? «Оформите вклад» или «Рассрочка 0% на все покупки у партнеров» — да, классно знать эту информацию. Но только когда о ней рассказывают единожды.</p><p>Такие сайты и мобильные приложения создаются с одной целью: повысить LTV («длительность жизни» каждого сеанса) и продать как можно больше. И большинству людей это надоело.</p><h2>«Плохой» сайт — это…</h2><p>Как правило это сайт, который не соответствует современным стандартам дизайна и юзабилити. Такие платформы могут выглядеть устаревшими, иметь запутанную навигацию и вообще не адаптироваться для мобильных устройств. Оно и понятно: сейчас все гонятся за красивой картинкой, забывая о том, что аудитория в разных нишах разная.</p><p>И если для сайта или приложения какого-нибудь бизнес-коуча крайне важна красота, удобство использования и возможность получить ответы на любые вопросы в два клика, то в твёрдых нишах такая тактика вряд ли сработает.</p><p><b>Люди приходят на сайт по 3 главным причинам:</b></p><ul><li>Хотят получить подробную информацию о компании и её продуктах;</li><li>Хотят изучить реальные отзывы покупателей (и то, сомнительно, потому что смотреть отзывы на сайте производителя — это все равно, что спросить у программиста, почему он классный спец);</li><li>Хотят получить консультацию по своим вопросам.</li></ul><p>И если в первом случае сайт действительно нужно развивать в направлении юзабилити (но не обязательно красоты — заметьте), то во втором и третьем случае это вовсе не обязательно.</p><p>Лучше сделать несколько простых страниц, — с информацией о компании, списком реализуемых продуктов, отзывами от партнёров — чем пытаться запихнуть в сайт всё.</p><p><i>Люди постоянно запрашивают цены? </i>Поставьте вилку стоимости или укажите цену в формате «от …». <i>Спрашивают, что ещё вы можете предложить? </i>Создайте страницу с частыми вопросами и ответьте на все. И это будет конвертить лучше.</p><h2>Как выглядят «плохие» сайты</h2><h3>Устаревший дизайн</h3><p>Дизайн, который не обновлялся много лет; дизайн, где используются стоковые фото, старые шрифты и цветовые схемы, которые пахнут нафталином.</p><p><b>Но почему это работает? 2 сценария:</b></p><ul><li><b>Ностальгия = доверие. </b>«Эх, как молоды мы были! Мы тоже использовали когда-то такие цвета, мы тоже так начинали». Создаётся прямая ассоциация: устаревший дизайн = мы = доверие. Работает это нечасто, но всё же примеры тому есть.</li><li><b>Л-логика.</b> «Ребята 10 лет точно не обновляли сайт. Либо не работают уже, либо настолько хороши, что уделяют внимание только продажам [чего-то]». И если пользователь находит много отзывов, где клиенты/заказчики/покупатели пишут: «Ребята реально классные! Отгрузили заявку на миллиард, всё чётко в сроки, помогли», — то  аудитория откидывает все сомнения.</li></ul><h3>Медленная загрузка</h3><p><b></b><a href="https://webformyself.com/vremya-zagruzki-stranicy-vliyaet-na-doxod-sajta/#:~:text=%D0%A1%D0%BE%D0%B3%D0%BB%D0%B0%D1%81%D0%BD%D0%BE%20%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%D0%BC%20Shopify%3A">Исследования</a> показывают, что 47% потребителей ожидают загрузку страницы не более 2 секунд. При этом 40% пользователей закроют страницу, если сайт грузится больше 3 секунд. Но если для сайта настроить преленд с текстом по типу «Загружаем сайт, обновляем цены», это не остановит пользователя.</p><h3>Неадаптивные сайты</h3><p><b></b><a href="https://explodingtopics.com/blog/mobile-internet-traffic#:~:text=Over%2060%25%20of%20website%20traffic%20comes%20from%20mobile%20devices">Статистика</a>: более 60% мирового трафика приходится на мобильные устройства. На самом деле, здесь сказать нечего. Если это простой сайт с минимальной адаптацией, то всё ок. А если сайт плохо свёрстан и ещё и не адаптирован, то любой пользователь уйдёт.</p><h3>Простая навигация</h3><p><b></b>С одной стороны, это плюс, а с другой — минус. Многоуровневая навигация помогает «провалиться» в нужный пользователю раздел и найти ответы на свои вопросы. Но только если наполнение каждой страницы соответствует заявленному в меню.</p><p>Решение о сотрудничестве — не про красивую картинку, многоуровневую навигацию или супер адаптивный-интерактивный контент. Решение ваш потенциальный покупатель принимает исходя из соотношения «ожидание / реальность».</p><p>Запрашивайте подробные отзывы, ставьте вилки стоимости и расскажите обо всех дополнительных услугах, которые вы можете предложить — именно это решает. И дешевле, и проще, и быстрее создавать простые сайты.</p><p><i>Важно:</i> простой сайт ≠ плохой сайт. Простой сайт ≠ тезисная информация о компании и продукции.</p><h2>Плюсы «плохих» сайтов</h2><h3>Простой интерфейс</h3><p>Сокращает время совершения целевого действия пользователем: все нужные элементы находятся на видном месте, не нужно долго искать. Простой интерфейс особенно нужен сайтам компаний, которые продают узкоспециализированные товары или услуги. Пользователь сразу видит то, зачем пришел.</p><h3>Фокус на одной функции</h3><p>Главная страница создаётся для того, чтобы подсветить основные продукты/услуги бренда и быстро «закрыть» боли клиента через блоки «Почему нужно выбирать нас» и т.д. Такой акцент помогает пользователю быстрее принять решение.</p><h3>Доверие</h3><p>Одна из главных ошибок, которую сейчас допускают многие компании при создании своих сайтов — погоня за пользователем. Из-за этого сайты выглядят перегруженными, ключевые сообщения теряются среди десятков других ярких предложений. Сейчас люди ценят искренность и прозрачность больше чем когда-либо. И если сайт способен предложить то, что вам нужно, такой сайт вызовет больше доверия.</p><p><b>А ещё </b>пользователи <a href="https://www.cnews.ru/news/line/sajt_otsenivayut_za_50_millisekund">формируют</a> первое впечатление о сайте всего за 50 миллисекунд. В этом и плюс «плохих» сайтов: всё просто и понятно, вся информация преподносится «as it is».</p><h2>Технические аспекты vs пользовательский опыт</h2><p>Часто владельцы сайтов уделяют большое внимание графическому дизайну и визуалу в целом, забывая при этом о скорости загрузки страницы и/или оптимизации для мобильных устройств. Плохо оптимизированные сайты теряют позиции в поисковиках — системы отдают предпочтение платформам с высокой скоростью загрузки и упором на SEO.</p><p>Интересный факт: «плохие» с точки зрения дизайна сайты часто лучше SEO-оптимизированы. Они быстрее загружаются, так как нет тяжёлых элементов и сложных анимаций. Да и простота кода снижает вероятность ошибок при индексации страниц.</p><p>Пользователи ценят ясность и интуитивность интерфейса гораздо больше, чем гиперфикс на креативе. Простые сайты позволяют посетителям быстрее ориентироваться и находить нужную информацию, а это увеличивает конверсию.</p><p>Независимо от того «плохой» у вас сайт или «хороший», важно помнить одно: чем проще и интуитивнее пользовательский путь к покупке — тем выше вероятность продажи.</p>]]></content:encoded>
    </item>
    <item>
      <title>TTM — менеджерское зло или полезная метрика в разработке?</title>
      <link>https://tproger.ru/articles/ttm---menedzherskoe-zlo-ili-poleznaya-metrika-v-razrabotke-</link>
      <comments>https://tproger.ru/articles/ttm---menedzherskoe-zlo-ili-poleznaya-metrika-v-razrabotke-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Yuri Nedre]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/ttm---menedzherskoe-zlo-ili-poleznaya-metrika-v-razrabotke-</guid>
      <description><![CDATA[<p>Про TTM можно услышать в любой продуктовой команде. Обычно мы слышим это от разных менеджеров, что надо это ускорять, сокращать и вообще это наш главный показатель. Так ли это? Давайте разбираться. 
</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/ttm---menedzherskoe-zlo-ili-poleznaya-metrika-v-razrabotke-">TTM — менеджерское зло или полезная метрика в разработке?</a>»</p>]]></description>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Рефакторинг]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[Бизнес-аналитика]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[CI/CD]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 19 Jan 2025 07:47:36 GMT</pubDate>
      <content:encoded><![CDATA[<p>Начнем с того, что такое TTM (Time to Market) — это метрика, которая показывает, сколько времени нужно компании, чтобы пройти путь от идеи до запуска готового продукта или новой фичи на рынок. Иными словами, TTM позволяет измерить скорость, с которой ваша команда способна предоставлять пользователям ценные обновления. В разных компаниях эта метрика может включать все весь флоу задачи (от простой идеи до полной раскатки), в каких-то компаниях какие-то стадии проекта (обычно неактивные фазы блокеры и простои) не учитываются при подсчете ТТМ.</p><p>На первый взгляд, TTM кажется простой концепцией: чем меньше времени тратится на разработку, тем быстрее продукт начинает приносить пользу пользователям и доход компании. Однако за этой простотой скрывается множество нюансов, которые делают TTM одной из самых спорных метрик в IT-индустрии.</p><h2>Почему TTM считается злом, выдуманным менеджерами</h2><p>В разработческих кругах нередко можно услышать скептическое отношение к TTM. Эта метрика воспринимается как инструмент давления со стороны менеджмента: “Сократите сроки! Ускорьте процессы! Почему мы до сих пор не выпустили фичу?”</p><h3>Вот основные причины:</h3><ol><li><b>Поверхностное сокращение сроков.</b> Вместо того чтобы разбираться в главных причинах задержек, руководство часто требует банально сократить сроки. Это может привести к снижению качества кода, поскольку в таком случае вы отказываетесь от рефакторинга и уменьшаете время на тестирование, а значит, продукт на выходе будет куча багов. Вы можете даже пропустить важные стадии проектирования, и в результате получаете непродуманный продукт.</li><li><b>Выгорание сотрудников. </b>Постоянное давление со стороны менеджмента заставляет команды работать в условиях жестких дедлайнов. Это может вылиться в хронический стресс и выгорание, а потом — в низкий уровень вовлеченности и отсутствие мотивации. Следовательно, высокая текучка кадров и дальнейшее усугубление проблемы.</li><li><b>Фокус на скорости, а не на ценности</b>. Менеджеры, ориентированные исключительно на TTM, могут забывать о главной цели разработки — создании ценности для юзера. В результате продукт выходит на рынок недоработанным (но я давно не видел полностью доработанных продуктов выходящих на рынок) и не удовлетворяет потребности целевой аудитории. Как следствие, пользовательский опыт у нас ухудшается, что может негативно сказаться на репутации компании.</li><li><b>Конфликты внутри команды.</b> Когда TTM становится основным KPI, команды начинают ощущать постоянное давление. Это часто приводит к разногласиям между менеджерами и разработчиками, снижению доверия к руководству и в итоге к потере «командного духа», поскольку каждый отдел начинает бороться за выполнение своих задач в ущерб общим целям.</li></ol><h3>Типичные примеры, которые я встречал:</h3><ul><li>В одной из компаний менеджмент решил сократить TTM, урезав время на тестирование. Это привело к тому, что после выпуска продукта пришлось устранять множество багов, что в итоге заняло больше времени, чем изначальная доработка.</li><li>В другой ситуации команда была вынуждена работать сверхурочно несколько месяцев подряд, чтобы уложиться в установленные сроки. Итог — массовое увольнение ключевых специалистов.</li></ul><p>Такие примеры показывают, что неправильное использование TTM может нанести компании больше вреда, чем пользы. Вместо того чтобы помогать команде становиться лучше, эта метрика превращается в источник стресса и демотивации.</p><h2>Почему TTM — это простая и полезная метрика</h2><p>Несмотря на критику, TTM — одна из ключевых метрик, которая помогает понять, насколько эффективно команда и процессы компании в целом способны адаптироваться к изменениям рынка и запросам пользователей.</p><h3>Несколько преимуществ правильного использования TTM:</h3><ol><li><b>Объективный показатель скорости.</b> TTM четко показывает, как быстро идеи становятся реальными продуктами. Это позволяет выявить узкие места в процессе разработки (например, слишком долгие этапы технического проектирования, согласования или тестирования) и оценить эффективность внедрённых изменений в рабочие процессы.</li><li><b>Фокус на ценности для пользователя.</b> Чем быстрее новая функциональность будет доступна пользователю, тем быстрее он сможет ею воспользоваться, следовательно, аудитория может закрыть свои потребности. За счет этого мы укрепляем конкурентное преимущества компании и в итоге увеличиваем доход благодаря более быстрому выходу продукта на рынок.</li><li><b>Стимул к оптимизации процессов.</b> TTM помогает выявить и устранить неэффективные процессы. Например, автоматизация тестирования может сократить время на проверку функциональности. А улучшение коммуникации между отделами ускоряет согласование задач.</li><li><b>Поддержка стратегического планирования.</b> Понимание TTM позволяет нам реалистично оценивать сроки вывода продукта на рынок и учитывать временные рамки при планировании рекламных кампаний и запуске связанных инициатив.</li><li>Мотивация для команды. Когда TTM используется как инструмент для улучшения, а не для давления, он помогает командам чувствовать удовлетворение от оперативного выполнения задач и понимать вклад каждого участника в общий успех.</li></ol><h3>Пара успешных примеров применения TTM:</h3><ul><li>Компания внедрила автоматизацию процессов пайплайна CI/CD , что сократило TTM на 30%. Это позволило быстрее тестировать и выпускать обновления.</li><li>В другой компании улучшили взаимодействие между бизнес-аналитиками и разработчиками, сократив время на согласование требований. В результате TTM для новых фич уменьшился на 20%.</li></ul><h3>Баланс между скоростью и качеством</h3><p>Важно помнить, что TTM не должен использоваться в ущерб качеству. Оптимальный подход — сохранять баланс, где скорость разработки сочетается с достаточным временем для тестирования и проектирования, а команда сосредоточена на создании ценности, а не только на соблюдении дедлайнов.</p><h2>Заключение</h2><p>TTM — это метрика с двойным дном. Она может стать как причиной стресса и конфликтов в команде, так и мощным инструментом, который улучшит процессы и ускорит доставку до конечного юзера. Всё зависит от того, как вы её используете. Вместо того чтобы превращать TTM в инструмент давления, стоит рассматривать её как индикатор для анализа и улучшения работы всей команды. Ведь в итоге главное — это не просто быстро доставить продукт на рынок в каком-либо виде, а сделать так, чтобы он действительно решал задачи пользователей и приносил пользу.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как проектировать интерфейсы для мобилок: подробный гайд</title>
      <link>https://tproger.ru/articles/principy-proektirovaniya-interfejsov-dlya-mobilnyh-prilozhenij</link>
      <comments>https://tproger.ru/articles/principy-proektirovaniya-interfejsov-dlya-mobilnyh-prilozhenij?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Татьяна Жукова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/principy-proektirovaniya-interfejsov-dlya-mobilnyh-prilozhenij</guid>
      <description><![CDATA[<p> Как спроектировать интерфейс мобильного приложения. Показываем основные нюансы, на которые стоит обратить внимание. Рассматриваем пошаговую инструкцию ✔ Tproger
</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/principy-proektirovaniya-interfejsov-dlya-mobilnyh-prilozhenij">Как проектировать интерфейсы для мобилок: подробный гайд</a>»</p>]]></description>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[Паттерны проектирования]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 09 Dec 2024 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Проектирование мобильных приложений — это сложный процесс, требующий сочетания эстетики, функциональности и удобства использования. Здесь важно учитывать следующие  аспекты — интуитивно понятная навигация, визуальная иерархия, адаптивность, минимализм и доступность. Сегодня рассмотрим основные принципы создания интерфейсов, которые обеспечивают высокий уровень юзабилити и улучшают пользовательский опыт.</p><h2>Принципы удобства использования (Usability) в мобильных приложениях</h2><p>Удобство использования или юзабилити — ключевой элемент успешного проектирования мобильных приложений. Этот принцип нацелен на понятное, простое и приятное взаимодействие пользователей с интерфейсом приложения.</p><h3>Что такое удобство использования и почему это важно?</h3><p>Удобство использования — это показатель того, насколько легко и эффективно пользователь может выполнять задачи в приложении. Оно играет решающую роль в удержании аудитории: даже функциональное приложение может быть отвергнуто, если его интерфейс неудобен. Как понять, что все правильно?</p><ul><li>Требуется больше времени на взаимодействие с приложением;</li><li>Снижается количество ошибок пользователей;</li><li>Повышается лояльность благодаря положительному опыту.</li></ul><h3>Интуитивно понятная навигация и структура приложения</h3><p>Интуитивность — когда пользователю не нужно учиться работать с приложением. Ключевые элементы:</p><ul><li><b>Простая структура. </b>Главное меню должно быть минималистичным, с четким выделением основных функций;</li><li><b>Ожидаемое поведение интерфейса.</b> Элементы вроде кнопок или ссылок должны выглядеть так, как предполагает пользователь;</li><li><b>Видимость пути.</b> Всегда важно показывать, где находится пользователь и как он может вернуться к началу.</li></ul><p>Пример хорошей навигации — использование нижней панели с доступом к ключевым разделам приложения. Плохая навигация — вложенные меню, где нужно нажать на кучу кнопок, чтобы, например, вернуться к началу.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2024-12-03/3e8cb6c1-0145-42a2-8031-9731cb4d0669.png" alt="" /><figcaption>Хорошая навигация на Spotify</figcaption></figure><h3>Упрощение взаимодействия с учётом ограниченного экрана</h3><p>Маленькие экраны мобильных устройств требуют продуманного подхода. Что учитываем:</p><ul><li>Минимум информации на одном экране. Разделение задач на этапы делает взаимодействие удобным;</li><li>Используем жесты (например, свайпы) для экономии пространства.</li><li>Делаем контрастный и четкий дизайн, адаптированный для восприятия на малых экранах.</li></ul><h3>Примеры хорошей и плохой навигации в мобильных интерфейсах</h3><p><b>Примеры хорошей навигации:</b></p><ul><li>Приложения для путешествий (например, карты), в которых все ключевые функции видны сразу.</li><li>Маркетплейсы, где есть кнопки быстрого доступа к категориям.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/102593/2024-12-03/67915ec3-538e-4230-85bf-412728957a12.png" alt="" /><figcaption>Так выглядят карты от Apple</figcaption></figure><p><b>Примеры плохой навигации:</b></p><ul><li>Приложения, где ключевые элементы «спрятаны» в дополнительных меню (например, цена на продукт или вкладка для скачивания)</li><li>Непонятные иконки без подписей, из-за которых пользователь теряется (так было, например, в ранних версиях Snapchat).</li></ul><p>Принципы юзабилити при проектировании мобильных приложений — это не только создание привлекательного дизайна, но и забота о функциональности и комфорте взаимодействия. Продуманная структура, простота и адаптация к ограничениям экранов формируют положительный пользовательский опыт, который выделит приложение на фоне других.</p><h2>Адаптивность и отзывчивость интерфейса</h2><p>Адаптивность и отзывчивость интерфейса — неотъемлемые принципы проектирования мобильных приложений. Рассмотрим основные элементы.</p><h3>Поддержка различных размеров экранов и ориентаций устройств</h3><p>Мобильные устройства отличаются разнообразием экранов: от компактных смартфонов до больших планшетов. Чтобы обеспечить универсальность пользовательского интерфейса, важно учитывать:</p><ul><li><b>Автоматическую адаптацию к ориентации устройства.</b> Горизонтальная и вертикальная ориентации должны одинаково обеспечивать удобный доступ к функциям;</li><li><b>Динамическое масштабирование.</b> Интерфейс приложения должен корректно отображаться как на компактных, так и на больших экранах.</li></ul><h3>Использование адаптивных элементов интерфейса и сетки</h3><p>Адаптивные элементы и сетки делают интерфейс мобильных приложений гибким и удобным. Основные рекомендации:</p><ul><li><b>Сетки. </b>Использование 12-колоночной системы сеток помогает выровнять элементы и адаптировать их к разным разрешениям экрана;</li><li><b>Элементы с пропорциональными размерами.</b> Кнопки, текстовые поля и изображения должны плавно масштабироваться.</li></ul><p>Использование гибкой сетки улучшает юзабилити, так как интерфейс выглядит логично и привлекательно.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2024-12-03/67646095-04ed-4b1a-aed7-dfd1c97b26f8.png" alt="" /><figcaption>Вот как выглядит Ozon на десктопе благодаря сетке. Безусловно, мы тут про мобильные приложения говорим, но принцип понятен</figcaption></figure><h3>Советы по созданию отзывчивого дизайна с помощью автолейаутов и flexbox</h3><p>Такие инструменты, как автолейаут и flexbox, упрощают процесс создания адаптивного дизайна.</p><ul><li>Flexbox. С его помощью элементы автоматически перестраиваются, занимая оптимальное место на экране;</li><li>Автолейауты. Ускоряют размещение элементов интерфейса, особенно в условиях ограниченного пространства.</li></ul><p>Эти подходы помогают сделать приложения удобными для всех типов устройств, улучшая их визуальное восприятие и функциональность.</p><h3>Как обеспечить хорошую читаемость текста и удобное размещение элементов</h3><p>Для читаемости и удобства взаимодействия важны:</p><ul><li><b>Размеры шрифта.</b> Минимальный размер текста — 14 пикселей;</li><li><b>Контрастность. </b>Текст и фон должны быть легко различимыми;</li><li><b>Расстояние между элементами.</b> Клавиши и другие интерактивные зоны не должны располагаться слишком близко друг к другу (на языке мемов — «коллеги, нужно хочется побольше воздуха»).</li></ul><h2>Принципы визуальной иерархии</h2><p>Эффективный пользовательский интерфейс должен не только выглядеть привлекательно, но и помогать юзеру быстро находить нужную информацию. Принципы визуальной иерархии играют ключевую роль в проектировании мобильных интерфейсов, направляя внимание пользователя в нужное русло и упрощая взаимодействие.</p><h3>Использование размеров, цветов и контрастов для выделения важной информации</h3><p>Размеры, цвета и контрастность позволяют расставить акценты в интерфейсе мобильных приложений:</p><ul><li><b>Размеры.</b> Более крупные элементы привлекают внимание;</li><li><b>Цвета.</b> Использование ярких оттенков для ключевых элементов (например, кнопок действий) помогает пользователю легко их идентифицировать;</li><li><b>Контраст.</b> Четкий контраст между текстом и фоном улучшает читаемость и повышает удобство использования.</li></ul><h3>Создание иерархии элементов для привлечения внимания пользователя</h3><p>Размещение элементов на экране должно учитывать логику взгляда пользователя. Основные принципы:</p><ul><li><b>F-образный паттерн.</b> Пользователи читают экраны по горизонтали сверху вниз, что следует учитывать при размещении информации;</li><li><b>Визуальные маркеры.</b> Иконки, стрелки и выделения направляют внимание на важные действия.</li></ul><p>Эффективная иерархия помогает избежать перегрузки информацией, делая интерфейс более удобным.</p><h3>Баланс между текстом и визуальными элементами</h3><p>Сбалансированное использование текста и графики делает мобильные приложения понятными и эстетичными:</p><ul><li><b>Минимализм.</b> Четкие заголовки и лаконичные описания помогают удерживать внимание;</li><li><b>Графика.</b> Иллюстрации или иконки должны дополнять, а не заменять текстовую информацию;</li><li><b>Соотношение.</b> Не менее 40% пространства должно быть отведено под «воздух», чтобы элементы не выглядели сжатыми.</li></ul><h3>Примеры эффективного использования визуальной иерархии в мобильных приложениях</h3><p>Хороший пример: в приложении для заказа еды крупные фотографии блюд сопровождаются яркими кнопками «Добавить в корзину». Контраст помогает пользователю быстро сориентироваться.</p><p>Плохой пример: сложные таблицы без визуального разделения информации. Это снижает читабельность и затрудняет восприятие.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2024-12-03/4e7997e9-bb14-4501-83e5-d31f4b3cb10d.png" alt="" /><figcaption>Сгенерировано нейросетью</figcaption></figure><p>Визуальная иерархия — один из основных принципов проектирования мобильных интерфейсов. Грамотное использование размеров, цветов и баланса между текстом и визуальными элементами улучшает опыт взаимодействия пользователя с приложением.</p><h2>Обратная связь и взаимодействие</h2><p>Важный аспект проектирования мобильных интерфейсов — организация качественной обратной связи между пользователем и приложением. Это усиливает восприятие, улучшает опыт взаимодействия и повышает уровень юзабилити. Рассмотрим основные принципы.</p><h3>Предоставление визуальной и тактильной обратной связи при взаимодействии</h3><p>Пользователи ожидают мгновенной реакции приложения на любое действие, будь то нажатие кнопки или свайп. Важные элементы:</p><ul><li><b>Визуальная обратная связь.</b> Изменение цвета кнопок, всплывающие уведомления или выделение активных элементов сигнализируют об успешном действии;</li><li><b>Тактильная обратная связь.</b> Легкие вибрации при взаимодействии создают эффект физического присутствия и делают процесс интуитивно понятным. Самый банальный пример — 3D Touch на устройствах Apple, когда, например, ссылка в Safari открывается с вибрацией в новом окне, то же самое с фотографиями в пленке.</li></ul><h3>Использование анимаций и переходов для улучшения пользовательского опыта</h3><p>Анимации могут не только украшать интерфейс мобильных приложений, но и облегчать его восприятие:</p><ul><li><b>Плавные переходы.</b> Анимации помогают визуально объяснить, что происходит: например, как открывается меню или перемещается элемент;</li><li><b>Интерактивные элементы.</b> Кнопки с эффектом нажатия или иконки, которые анимируются при взаимодействии, делают приложение более живым.</li></ul><p>Важно соблюдать баланс: чрезмерное количество анимаций перегружает интерфейс и снижает производительность.</p><h3>Как сделать интерфейс отзывчивым и живым, не перегружая его анимацией</h3><p>Основной принцип — минимализм:</p><ul><li>Используйте анимацию для подсказок и подтверждений. Так, плавное появление сообщения об ошибке делает интерфейс более дружелюбным;</li><li>Адаптируйте анимации для разных устройств, чтобы сохранять производительность.</li></ul><p>Совет: избегайте сложных 3D-эффектов и длительных анимаций, которые могут отвлекать от основного действия.</p><h3>Примеры хорошей обратной связи в популярных приложениях</h3><p>Положительный пример: в приложении для заметок Google Keep кнопка «Добавить» анимируется, сигнализируя о том, что запись сохранена. Это интуитивно понятно и просто.</p><p>Отрицательный пример: в приложениях с перегруженными анимациями и задержкой реакции (например, медленно открывающиеся меню) пользователь теряет концентрацию.</p><p>Обратная связь — одна из основных характеристик качественного пользовательского интерфейса. Сбалансированное использование визуальных эффектов, тактильной реакции и анимаций делает мобильные приложения более удобными и отзывчивыми, улучшая общее восприятие и опыт пользователя.</p><h2>Минимализм и фокус на контенте</h2><p>Минимализм — ключевой принцип при проектировании мобильных интерфейсов, который способствует улучшению юзабилити и снижению когнитивной нагрузки на пользователя. Рассмотрим основные аспекты минималистичного подхода.</p><h3>Принцип «чем меньше, тем лучше»: избегайте избыточного функционала и информации</h3><p>В мире мобильных приложений избыточность отвлекает пользователя от главной цели. Оптимизация предполагает:</p><ul><li><b>Отказ от избыточных функций. </b>Приложение должно предлагать только те функции, которые необходимы для выполнения основных задач;</li><li><b>Упрощение визуального контента.</b> Минимум текста и графики помогает пользователю быстрее ориентироваться.</li></ul><p>Пример: приложение для концентрации внимания Forest, в котором основное внимание уделяется одной функции — вырастить дерево, не прикасаясь к телефону на протяжении определенного количества минут. Простая навигация и отсутствие лишних элементов позволяют сосредоточиться на главной цели.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2024-12-03/e149e11b-debb-4168-abeb-806a46260644.png" alt="" /></figure><h3>Минимизация элементов интерфейса для сохранения фокуса на контенте</h3><p>Интерфейс мобильных приложений должен подчеркивать контент, а не доминировать над ним. Это достигается за счет:</p><ul><li>Простой структуры экранов с акцентом на содержимое;</li><li>Использования цветовых акцентов для выделения ключевых действий;</li><li>Минимизации отвлекающих элементов: сложных иконок, избыточных меню, всплывающих окон.</li></ul><p>Совет: оставьте только те элементы, которые действительно необходимы для взаимодействия. Например, в Instagram* вся структура построена вокруг контента: фотографии и видео остаются в центре внимания, а, например, мессенджер выведен в отдельную вкладку и не отображается в главном меню снизу.</p><p><i>*Корпорация Meta признана экстремистской в РФ</i></p><h3>Уменьшение когнитивной нагрузки на пользователя</h3><p>Пользовательский опыт становится приятнее, если приложение избавляет от необходимости запоминать сложные маршруты или действия. Для этого:</p><ul><li>Убирайте ненужные этапы взаимодействия;</li><li>Делайте навигацию интуитивно понятной;</li><li>Используйте лаконичные инструкции и понятные иконки.</li></ul><h3>Примеры минималистичного подхода в мобильных приложениях</h3><p>Хороший пример: Тот же Google Keep, где интерфейс полностью сосредоточен на создании и хранении заметок. Никаких лишних настроек или сложных функций.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2024-12-03/b8af05d0-d824-4925-bdd1-1af5fd239fb6.png" alt="" /></figure><p>Плохой пример: приложения с избыточной анимацией или всплывающими окнами, которые отвлекают от контента.</p><p>Минималистичный подход к проектированию мобильных интерфейсов помогает пользователю сосредоточиться на выполнении основных задач и улучшает общее восприятие. Принципы минимализма — это отказ от лишнего, простота и удобство, что делает приложения более понятными и функциональными.</p><h2>Доступность (Accessibility)</h2><p>Доступность интерфейсов в мобильных приложениях — это не только забота о пользователях, но и важный фактор, повышающий юзабилити. Разработка доступных приложений расширяет аудиторию и делает взаимодействие удобным для всех, включая людей с ограниченными возможностями.</p><h2>Обеспечение доступности интерфейса для пользователей с ограниченными возможностями</h2><p>Чтобы интерфейс мобильных приложений был доступным, необходимо учитывать потребности людей с различными нарушениями, в том числе:</p><ul><li>Зрение (частичная или полная потеря, дальтонизм);</li><li>Слух;</li><li>Опорно-двигательный аппарат (ограниченные возможности взаимодействия с экраном);</li><li>Когнитивные особенности (дислексия, проблемы с вниманием).</li></ul><h2>Использование контрастных цветов, доступных шрифтов и альтернативных текстов</h2><p>Контрастные цветовые схемы и крупные, легко читаемые шрифты облегчают взаимодействие. Основные советы:</p><ul><li>Используйте шрифты без засечек (sans-serif), по типу Arial или Roboto;</li><li>Выбирайте контрастные сочетания текста и фона, которые соответствуют стандартам WCAG (например, чёрный текст на белом фоне);</li><li>Добавляйте альтернативные тексты к изображениям для работы с экранными дикторами. Это особенно важно для визуальных приложений.</li></ul><p>Пример: в Uber значки и шрифты адаптированы для режима высокой контрастности, что делает их удобными для пользователей с нарушениями зрения.</p><h2>Важность поддержки экранных дикторов и жестов</h2><p>Современные интерфейсы мобильных приложений должны быть оптимизированы для работы с технологиями вспомогательного ввода, такими как:</p><ul><li>Экранные дикторы (например, VoiceOver на iOS или TalkBack на Android);</li><li>Управление жестами, позволяющее заменить физические кнопки.</li></ul><p>Для этого важно структурировать интерфейс так, чтобы дикторы правильно озвучивали элементы: кнопки, заголовки, поля ввода.</p><h2>Как улучшить доступность с минимальными усилиями</h2><p>Достичь высокой доступности можно даже с небольшими изменениями:</p><ol><li>Используйте встроенные библиотеки платформ для включения функций доступности;</li><li>Проверяйте интерфейс с помощью симуляторов (например, Google Accessibility Scanner);</li><li>Стремитесь к простоте и интуитивности, чтобы сократить время на адаптацию.</li></ol><p>Основной принцип доступности — обеспечение равных возможностей для всех пользователей. Удобный и доступный пользовательский интерфейс не только улучшает опыт, но и делает мобильные интерфейсы соответствующими современным стандартам.</p>]]></content:encoded>
    </item>
    <item>
      <title>Мета-тренды в разработке интерфейсов: от нейроморфного дизайна к биоинформатике</title>
      <link>https://tproger.ru/articles/meta-trendy-v-razrabotke-interfejsov--ot-nejromorfnogo-dizajna-k-bioinformatike</link>
      <comments>https://tproger.ru/articles/meta-trendy-v-razrabotke-interfejsov--ot-nejromorfnogo-dizajna-k-bioinformatike?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Ксения Андреева]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/meta-trendy-v-razrabotke-interfejsov--ot-nejromorfnogo-dizajna-k-bioinformatike</guid>
      <description><![CDATA[<p>Чем быстрее развиваются технологии и меняются ожидания от проектов, тем чаще разработчики вынуждены адаптироваться и внедрять новые подходы в создании интерфейсов. Один из таких подходов — мета-тренды. А что это такое, как работает и для чего нужно — разберёмся в этой статье.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/meta-trendy-v-razrabotke-interfejsov--ot-nejromorfnogo-dizajna-k-bioinformatike">Мета-тренды в разработке интерфейсов: от нейроморфного дизайна к биоинформатике</a>»</p>]]></description>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Веб-дизайн]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 13 Nov 2024 10:00:04 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Что такое мета-тренды</h2><p>Мета-тренды в разработке интерфейсов отражают не только технологические изменения, но также социальные и культурные изменения. С одной стороны, в дизайне интерфейсов все стремятся к упрощению и минимализму, где акцент приходится на функциональность и удобство использования. С другой стороны, растёт интерес к VR и AR. А они требуют совершенно новых подходов к взаимодействию с пользователем.</p><p>Нейроморфный дизайн становится всё более популярным благодаря своей способности предлагать более персонализированный опыт. Концепт основан на изучении человеческого мозга и попытках перенести его принципы работы на ИИ.</p><p>Ещё один мета-тренд — биоинформатика, которая предлагает использовать данные о человеческом организме для создания более интуитивных и адаптивных систем. Понятие «биоинформатика» только звучит крипово, на самом деле она про изучение поведенческих паттернов и использование данных о состоянии человека для улучшения взаимодействия с устройствами.</p><p>Изучать и погружаться в мета-тренды важно в контексте понимания, что дальше будет происходить с дизайном интерфейсов. Понимание мета-трендов позволяет не только идти в ногу со временем, но также понимать потребности пользователей и предлагать им новые способы взаимодействия.</p><h2>Откуда ноги растут</h2><p>Благодаря активному развитию AI, ML и BigData, мир увидел появление новых мета-трендов, которые существенно улучшили взаимодействие пользователей с системами. ИИ и МО стали чуть ли не главными инструментами в разработке интерфейсов.</p><p>Искусственный интеллект автоматизирует анализ данных о поведении пользователя, выявляя его предпочтения и привычки. Кроме того, ИИ может анализировать контекст использования устройства (геолокация, тип устройства, да даже уровень заряда).</p><p>Машинное обучение позволяет разработчикам заранее учитывать возможные действия и реакции пользователей на различные изменения в интерфейсе. Это особенно актуально для игр или образовательных платформ.</p><p>BigData даёт целые массивы информации о пользователях и их взаимодействиях с системами. Анализ этих данных позволяет выявлять скрытые закономерности и тренды, которые невозможно заметить при обычных методах обработки информации. Например, адаптивные интерфейсы могут анализировать время использования приложения разными группами пользователей и оптимизировать дизайн под их конкретные нужды: так работает плашка «Включить тёмную тему?» в Яндексе в определённое время суток — так работает автоматическая смена яркости телефона.</p><p>Кроме того, с помощью BigData система может собирать обратную связь от огромного числа пользователей в реальном времени, а разработчики быстро выявляют проблемы и внедряют улучшения без долгих обновлений.</p><h2>Нейроморфный дизайн</h2><p>Основная идея нейроморфного дизайна заключается в том, чтобы создать интерфейсы, которые работают по аналогии с нейронами нашего мозга для более естественного и интуитивного взаимодействия.</p><p>Ключевые принципы — способность к самообучению, адаптивность, энергоэффективность. Такие интерфейсы могут анализировать поведение пользователя и приспосабливаться к его предпочтениям.</p><p>Нейроморфный дизайн уже активно используется: например, Siri, Google Assistant, Алиса используют элементы нейроморфного подхода для распознавания речи и адаптации ответа под конкретного пользователя. Они способны анализировать предыдущие запросы и предлагать более «правильные» ответы на основании предыдущих запросов. Помните, как у кого-то Алиса отвечает грубо, у кого-то шутит? Это всё — про нейроморфный дизайн в глобальном смысле.</p><p>Ещё концепция используется в системах прогнозирования потребностей пользователей в приложениях для электронной коммерции. Такие системы используют данные о предыдущих покупках и поведении клиента для персонализированных рекомендаций. Пользователь получает не просто список товаров, а именно те предложения, которые максимально соответствуют его интересам. Так работает не только e-comm, но и приложения, которыми мы пользуемся каждый день: Яндекс.Музыка, Spotify, приложения для изучения языков, карты и системы навигации.</p><p>Пользователям больше не нужно тратить время на изучение сложных инструкций, не нужно адаптироваться к новому продукту — система сама подстраивается под их привычки и предпочтения. Кроме того, такой подход повышает удовлетворённость пользователей за счёт персонализации контента. Когда интерфейс активно «учится» у пользователя, это всегда классно. А реально интересные рекомендации создают эдакий «вау»-эффект. А почему? Потому что именно так работает наш мозг — он сам учится и предлагает нам то, что нужно или чего хочется в моменте.</p><h2>Биоинформатика</h2><p>Биоинформатика ассоциируется с анализом биологических данных: обычно её используют не в контексте дизайна интерфейсов, а в контексте разработки умных приложений. Однако в последние годы биоинформатику применяют и в интерфейсах — смысл в том, чтобы использовать данные о пользователях для создания адаптивных и интуитивных интерфейсов, которые не просто реагируют на действия пользователя, но предугадывают их.</p><p>Биоинформатика позволяет учитывать поведение пользователя и его физическое состояние. Например, анализ сердечного ритма или уровня стресса может подсказать системе, когда пользователь нуждается в дополнительных функциях: так работают фитнес-трекеры, умные весы, некоторые программы по подбору плана питания. Есть и более простые примеры: интерфейс может предложить изменить цветовую схему и расположение элементов.</p><h2>Нейроморфизм + биоинформатика</h2><p>Нейроморфизм позволяет разработать системы, которые обучаются на примере поведения пользователей, а биоинформатика даёт возможность учитывать их физиологические особенности. Такой подход может привести к созданию по-настоящему интуитивных систем, которые чувствуют изменения в состоянии пользователя и адаптируются к ним без прямого вмешательства.</p><p><b>И это уже работает:</b></p><ul><li><b>Приложения для фитнеса</b> используют комбинацию сенсоров для отслеживания физической активности и состояния здоровья. На основе этих данных они предлагают персонализированные советы по тренировкам.</li><li>Некоторые <b>видеоигры</b> адаптируют сложность на основе эмоционального состояния игрока, определяемого через сенсоры.</li><li><b>Современные автомобили </b>могут анализировать уровень усталости водителя через показатели внимания или реакции, предлагая перерывы или изменяя режимы работы ассистентов. Например, если убрать руки с руля в Tesla, машина автоматически начнёт замедляться и сама припаркуется в разрешённом месте.</li></ul><h2>Вопросы этики и безопасности</h2><p>Развитие современных интерфейсов неизменно приводит к поднятию вопросов этики и безопасности, потому что такие технологии одновременно завораживают и пугают. В первую очередь это касается конфиденциальности данных пользователей. В эпоху, когда данные становятся новой мировой валютой, защита личной информации особенно важна. Сбор данных о поведении пользователя, его предпочтениях, а также использование биометрии для персонализации опыта взаимодействия ставят под угрозу конфиденциальность.</p><p>Одна из проблем — риск несанкционированного доступа к собранным данным. Как гарантировать, что компании используют данные исключительно в целях улучшения пользовательского опыта? Ответственность за защиту информации лежит как на создателях технологий, так и на законодательных органах, которые должны устанавливать строгие нормы и правила. А как быстро государства адаптируются под всё новые техно-тренды? Вопрос риторический, конечно.</p><p>Биометрические данные уникальны для каждого человека, а их утечка может иметь куда более серьезные последствия по сравнению с паролями или обычными данными аккаунта. Использование таких данных должно быть прозрачным: пользователи должны иметь полное понимание того, какие данные собираются и как они будут использоваться. И если раньше мы не глядя нажимали «Ок» при возникновении плашки «Мы собираем cookie», то в будущем, вероятно, появится плашка «Мы собираем информации о том, как вы глазами просматриваете наш сайт/приложение».</p><h2>Будущее: новое общество или восстание машин</h2><p>И всё-таки будущее разработки интерфейсов выглядит многообещающим. Прогнозы дальнейшего развития мета-трендов указывают на ещё более тесную интеграцию технологий с человеческим опытом. Ожидается увеличение использования ИИ для предиктивной аналитики: системы смогут предугадывать желания и потребности пользователя до того, как они будут явно выражены.</p><p>В дальнейшем биоинформатика может открыть новые возможности: интерактивные системы, адаптирующиеся к эмоциональному состоянию пользователя или изменяющие свой функционал в зависимости от контекста использования. Потенциальные инновации включают развитие интерфейсов «мозг-компьютер», которые позволят управлять устройствами — буквально — с помощью мыслей. Такие технологии могут кардинально изменить нашу повседневную жизнь и все сферы деятельности: от здравоохранения до развлечений.</p><p>Хотя развитие мета-трендов вызывает серьёзные этические вопросы, оно также открывает перспективы для улучшения взаимодействия человека с технологиями: например, быстрое обучение новым технологиям, <i>ещё более</i> умные устройства, повышенная инклюзивность решений.</p><p>Мета-тренды дают возможность разрабатывать системы, которые не только удобны в использовании, но и способны адаптироваться к пользователю на глубоком уровне. Взаимодействие человека с машиной становится более органичным, а это открывает новые горизонты для развития.</p>]]></content:encoded>
    </item>
    <item>
      <title>Хочу как у Apple: почему копирование дизайна сайта не работает и как найти подходящий стиль</title>
      <link>https://tproger.ru/articles/hochu-kak-u-apple--pochemu-kopirovanie-dizajna-sajta-ne-rabotaet-i-kak-najti-podhodyashhij-stil</link>
      <comments>https://tproger.ru/articles/hochu-kak-u-apple--pochemu-kopirovanie-dizajna-sajta-ne-rabotaet-i-kak-najti-podhodyashhij-stil?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Влада Петрова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/hochu-kak-u-apple--pochemu-kopirovanie-dizajna-sajta-ne-rabotaet-i-kak-najti-podhodyashhij-stil</guid>
      <description><![CDATA[<p>Рассказываем, почему не стоит копировать сайты успешных компаний и предлагаем алгоритм поиска уникального стиля для ваших проектов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/hochu-kak-u-apple--pochemu-kopirovanie-dizajna-sajta-ne-rabotaet-i-kak-najti-podhodyashhij-stil">Хочу как у Apple: почему копирование дизайна сайта не работает и как найти подходящий стиль</a>»</p>]]></description>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Веб-дизайн]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 04 Nov 2024 09:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Зачем нам вообще классный дизайн</h2><p>Хороший дизайн — это не просто «сделать красиво». В первую очередь он помогает бренду — человеку или компании — добиться своих целей, будь то большая узнаваемость, рост продаж или сбор пользовательских данных.</p><ul><li><b>Хороший дизайн вызывает доверие аудитории.</b> Понятная навигация, гармоничная цветовая схема и проработанные детали показывают пользователю, что вы позаботились о его удобстве и положительном опыте уже на самом первом этапе. Это формирует ожидание столь же добросовестной работы после обращения за вашими услугами или товаром.</li><li><b>Дизайн влияет на конверсию.</b> Чем проще и приятнее оформить заказ на сайте, тем с большей вероятностью пользователь это сделает. Имеют значение количество блоков, размер и расположение кнопок, вид форм для сбора данных, использование отрицательного пространства.</li><li><b>Дизайн сайта может влиять на его SEO-оптимизацию.</b> Поисковые системы лучше ранжируют страницы с хорошо организованным контентом, понятной навигацией и оптимизированными изображениями. В свою очередь, это привлекает на сайт больше органического трафика.</li><li><b>Дизайн сайта — важный элемент брендинга.</b> Выбор стиля, шрифтов и цветовой схемы формирует в головах пользователей определенный образ компании.</li></ul><h2>Почему дизайн должен быть оригинальным</h2><p>Дизайн — это средство подтолкнуть пользователя к определенному действию: покупке, регистрации, посещению мероприятия.</p><p>Задача сайта Apple — продавать гаджеты в высоком ценовом сегменте. Поэтому в центре всего дизайна изображения продукта — крупные, показанные с нескольких сторон 3D-модели новейших телефонов и смарт-часов. Apple не нужно объяснять, кто они и что предлагают — сильный бренд компании говорит сам за себя.</p><p>Но что, если у вас нет сильного бренда? Вы только вышли на рынок или работаете в узкой нише. А может, вы предоставляете консультационные услуги? В этом случае не обойтись изображениями товара на черном фоне.</p><ul><li><b>Дизайн должен отражать бренд.</b> Сайт не существует в вакууме — это лишь один из каналов коммуникации бренда с аудиторией. Следовательно, он должен соответствовать бренд-платформе, уникальной для каждой компании и проекта.</li><li><b>Дизайн должен соответствовать продукту.</b> Хорошо, если можно показать товар лицом, как делает Apple. Но если вы продаете цифровые товары или услуги, придется искать другие визуальные решения. Фотографии, иллюстрации, минималистичные графические элементы — выбор зависит от характера бренда, от ниши, от целевой аудитории. Это справедливо и для подбора цветовой схемы — черный фон магазина детской одежды вряд ли привлечет клиентов и повысит продажи, хотя у Apple он выглядит роскошно и футуристично.</li><li><b>Дизайн должен соответствовать аудитории.</b> Покупатели люксовых товаров, вчерашние подростки и инженеры в поисках оборудования на производство вряд ли сойдутся во мнении о том, что такое хороший дизайн сайта. Для каждой из этих групп и сотен других принципиально важны будут совершенно разные вещи — это стоит принимать во внимание, работая над дизайном.</li></ul><h2>Как создать уникальный стиль сайта</h2><h3>Соберите информацию</h3><p>Прежде чем приступить к разработке дизайна, важно узнать:</p><ol><li>Кто целевая аудитория сайта? Какие ее потребности закрывает продукт?</li><li>К какому действию мы хотим привести пользователей сайта?</li><li>Кто конкуренты заказчика?</li><li>Какие ограничения на нас накладывает платформа бренда?</li></ol><p>Составьте бриф, включающий эти и другие вопросы, которые вы считаете важными, и отдайте заказчику.</p><h3>Определитесь со стилем</h3><p>Существует множество направлений и стилей веб-дизайна, для которых характерны разные визуальные решения, но общепризнанной классификации пока нет. Перечислим несколько распространенных, с которых можно начать творческий поиск.</p><h4>Флэт или плоский дизайн</h4><p>В этом, пожалуй, самом популярном сейчас стиле объекты изображаются без передачи объема — вся графика на сайте двухмерна, схематична и находится на одном уровне. Главными выразительными средствами в плоском дизайне становятся цветовые контрасты и типографика. Такой минимализм позволяет страницам загружаться быстрее.</p><figure><img src="https://media.tproger.ru/user-uploads/104654/2024-10-25/82db588c-e994-40d5-97ff-d49dab4fb3ed.png" alt="" /><figcaption>Посмотреть сайт: https://grom-one.ru/</figcaption></figure><h4>Метро или карточный стиль</h4><p>Минималистичный и современный стиль впервые использовала в интерфейсах своих продуктов компания Microsoft в 2010 году. Его отличительная черта — размещение блоков информации в простых геометрических формах, «на карточках». Как правило, в этом стиле используют простые шрифты без засечек и уделяют внимание анимации. Такой дизайн хорошо смотрится на разных цифровых устройствах.</p><figure><img src="https://media.tproger.ru/user-uploads/104654/2024-10-25/76cf07fe-d192-4e83-b5ed-b541cbf8f73c.png" alt="" /><figcaption>Посмотреть сайт: https://real-frontend.tilda.ws/</figcaption></figure><h4>Минимализм</h4><p>Ровно то, что написано на упаковке — минимум декоративных элементов, много свободного пространства, 2–3 нейтральных цвета, простота навигации. Ничего лишнего.</p><figure><img src="https://media.tproger.ru/user-uploads/104654/2024-10-25/6ac3d6c9-0807-4a7e-aeef-3bc924358fc0.png" alt="" /><figcaption>Посмотреть сайт: https://woody.red/</figcaption></figure><h4>Брутализм</h4><p>Этот стиль легко узнать по намеренным ошибкам в логике, иерархии, интервалах — удобство и функциональность здесь принесены в жертву эстетике. На страницах бруталистского сайта, как правило, не будет разнообразия цветов, шрифтов или привычных элементов дизайна вроде теней, градиентов и текстур.</p><figure><img src="https://media.tproger.ru/user-uploads/104654/2024-10-25/c8b36d0d-b047-4321-a814-ba37f9e6c5ce.png" alt="" /><figcaption>Посмотреть сайт: https://gowtf.ru/</figcaption></figure><h4>Неоклассика</h4><p>Современная версия классического веб-дизайна с привычной интуитивно понятной композицией, аккуратной типографикой, отсутствием экстравагантных решений, но не без внимания к трендам.</p><figure><img src="https://media.tproger.ru/user-uploads/104654/2024-10-25/2b77814c-cd7c-4eb1-b8fb-6c25954dac99.png" alt="" /><figcaption>Посмотреть сайт: https://sintez42.ru/</figcaption></figure><h4>Рисованный стиль</h4><p>Как можно понять из названия, основное выразительное средство в этом стиле — рисунок. Это могут быть рукописные шрифты, сюжетные иллюстрации или сугубо декоративные элементы.</p><figure><img src="https://media.tproger.ru/user-uploads/104654/2024-10-25/f1983956-3d56-4667-bef1-b36510162601.png" alt="" /><figcaption>Посмотреть сайт: https://georgia-guide.com/</figcaption></figure><h4>Фестивальный стиль</h4><p>Максимум зрелищности — анимаций, визуализаций, 3D-эффектов, ярких цветов, видео. Фестивальный стиль требует работы опытного дизайнера и фронтендера, поэтому прибегают к нему редко и, как правило, для рекламы конкретного события. Многостраничными такие сайты бывают редко.</p><figure><img src="https://media.tproger.ru/user-uploads/104654/2024-10-25/b522b400-9b96-4487-906f-e02deac870cc.png" alt="" /><figcaption>Посмотреть сайт: https://mario-bros.tilda.ws/</figcaption></figure><h3>Референсы</h3><p>Даже определившись с направлением, разработать дизайн с нуля — непростая задача. Преодолеть страх чистого листа, найти подходящие решения и отстроиться от конкурентов помогает подбор референсов.</p><p>Референсом для веб-дизайнера могут стать не только другие сайты или блоки на сайтах, но и иллюстрации, фотографии, типографика — всё, от чего можно оттолкнуться при разработке собственной концепции.</p><p>Референсы можно условно разделить на стилевые и функциональные. Первые задают общее направление дизайна: настроение, стиль, цвета, формы. Вторые показывают удачные решения конкретных задач. Функциональным референсом может быть дизайн блока на сайте или расположение кнопки.</p><p>Другой подход к классификации референсов — разделение на «референсы для заказчика» и «референсы для себя».</p><p>Задача первых — свериться с ожиданиями заказчика и утвердить концепцию для дальнейшей работы. Их можно представить в формате мудборда — коллажа, передающего общее настроение проекта, и сопроводить комментариями о том, почему тот или иной источник вдохновения подходит для ваших целей.</p><p>Референсы для себя могут помочь докрутить идеи, одобренные заказчиком, и сделать более оригинальным каждый блок сайта.</p><h4>Где искать референсы для веб-сайтов</h4><p><a href="https://referest.ru/">Referest</a> — библиотека скриншотов сайтов, мобильных приложений и отдельных UX-элементов.</p><p><a href="https://madeontilda.ru/">Made on Tilda</a> — галерея сайтов, сделанных с помощью конструктора.</p><p><a href="https://readymag.com/examples">Made with Readymag</a> — коллекция лучших сайтов, собранных на платформе.</p><p><a href="https://www.lapa.ninja/">Lapa Ninja</a> — коллекция дизайнерских решений для лендингов.</p><p><a href="https://www.siteinspire.com/">Siteinspire</a> — витрина веб-сайтов со всего мира.</p><p><a href="https://www.landingfolio.com/">Landingfolio</a> — галерея посадочных страниц.</p><h3>Обсудите дизайн с заказчиком</h3><p>Презентуйте свои наработки заказчику, покажите мудборд, объясните свои решения и внимательно выслушайте обратную связь.</p><p>Безусловно, заказчики сайтов редко являются специалистами в области дизайна, но они точно специалисты в своей области и лучше всех понимают цели сайта и особенности аудитории. Возможно, их комментарии наведут вас на мысли о решениях, которые не приходили в вашу голову.</p>]]></content:encoded>
    </item>
    <item>
      <title>Фидбэк всемогущий: как edtech платформе работать с обратной связью от пользователей</title>
      <link>https://tproger.ru/articles/fidbek-vsemogushhij--kak-edtech-platforme-rabotat-s-obratnoj-svyazyu-ot-polzovatelej</link>
      <comments>https://tproger.ru/articles/fidbek-vsemogushhij--kak-edtech-platforme-rabotat-s-obratnoj-svyazyu-ot-polzovatelej?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Семён Чебурашкин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/fidbek-vsemogushhij--kak-edtech-platforme-rabotat-s-obratnoj-svyazyu-ot-polzovatelej</guid>
      <description><![CDATA[<p>Как EdTech платформе работать с обратной связью: собирайте фидбэк, анализируйте опросы и узнайте, почему поддержка — не главный источник инсайтов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/fidbek-vsemogushhij--kak-edtech-platforme-rabotat-s-obratnoj-svyazyu-ot-polzovatelej">Фидбэк всемогущий: как edtech платформе работать с обратной связью от пользователей</a>»</p>]]></description>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 05 Oct 2024 08:00:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Успех EdTech проекта — это всегда совокупность нескольких факторов. От выбранной образовательной модели и системы мотивации до интерфейса и IT-инфраструктуры платформы. Однако главной метрикой эффективности остается уровень удовлетворенности пользователей.</p><p>Универсальной системы его оценки в EdTech пока не придумали. Безусловно, есть объективные показатели: количество занятий на человека и их средняя продолжительность, retention — процент возврата пользователей после первой тренировки. Проблема в том, что понятия «нравится — не нравится — надо улучшить» остаются субъективными. Здесь на помощь разработчикам приходит работа с обратной связью от пользователей.</p><h2>Почему support — это не показатель</h2><p>Первое правило — не делать выводов о продукте только на основе данных от службы поддержки. Саппорт был и остается точкой концентрации максимального негатива. Довольные пользователи практически никогда не пишут в поддержку. До 99% обращений — это жалобы на технические сбои, проблемы с управлением подписками и так далее. Зачастую это точечные проблемы, которые решаются в оперативном режиме.</p><p>Есть и более необычные кейсы. Некоторые пользователи после длительного перерыва в занятиях требуют вернуть streak — показатель времени непрерывного обучения. Его шкала автоматически обнуляется, когда человек перестает заниматься. Есть и те, кто путает службу поддержки с репетиторами и терзает сотрудников просьбами объяснить то или иное грамматическое правило.</p><p>Таким образом, оценивать работу онлайн-школы только по службе поддержки — это все равно, что оценивать агрегатор такси по жалобам на водителей. Исправить конкретные недочеты, конечно, поможет, но представления об удобстве и классе сервиса все равно не даст.</p><h2>Собираем обратную связь</h2><p>Пользователи редко выступают инициаторами обратной связи (опять-таки если речь не о гневных жалобах). Здесь на первый план выходят две основные задачи. Первая — максимально упростить взаимодействие и дать пользователям возможность выбирать способ связи с поддержкой. Помимо e-mail это могут быть чат-боты и формы в приложении, чат-боты в мессенджерах.</p><p>Вторая задача — мотивировать пользователей оставлять фидбэк. Самый простой вариант — предложение поставить оценку пройденному уроку или оценить уровень сложности материала. Вариант продвинутый — более подробные опросы с оповещениями через email-рассылки или пуши в приложении. Повысить response rate (долю ответов) помогают дополнительные инструменты мотивации, например, скидки, бонусы или промокоды на бесплатное занятие.</p><p>Отдельное внимание необходимо уделить проработке самих опросов. Мы стараемся избегать формулировок вроде «хотелось бы вам иметь возможность» или «было бы вам интересно». Людям свойственно отвечать на такие вопросы утвердительно даже в тех случаях, когда они сомневаются или смутно представляют, о чем идет речь. Соответственно результаты таких опросов зачастую вообще не отражают реального положения дел. Так что мы концентрируемся исключительно на оценке имеющегося опыта — с какими проблемами сталкивался пользователь, какие функции приложения или элементы учебной программы понравились, а какие нет.</p><p>Обработку результатов мы всегда начинаем с поиска «общих мест» в ответах. Если таких пересечений нет, стараемся откалибровать ответы и ищем в них определенные зависимости, которые затем анализируем. Бывает, что находятся и какие-то яркие инсайты с потенциалом для масштабирования.</p><p>При работе с негативным фидбэком мы дополнительно перепроверяем, пытался ли пользовать как-то исправить беспокоившую его проблему. Если никаких шагов предпринято не было, возможно, поиск решения был не так уж и важен.</p><h2>Что волнует пользователя</h2><p>Сбор обратной связи должен охватывать разные категории пользователей. С одной стороны, необходимо работать с теми, кто учится давно и успешно. Таких студентов мы обычно спрашиваем, что мотивирует их продолжать учиться. С другой стороны, мы активно работаем с пользователями, которые ушли с платформы.</p><p>Вопросы условно можно разделить на продуктовые и методологические. В первом случае нас интересует все, что касается самого приложения и технических нюансов. Во втором – то, насколько эффективна образовательная методика и «слабые места», на которых сыпятся наши студенты.</p><h4>Технические моменты</h4><ul><li><b>Проблемы с работой приложения.</b> Мы контролируем работу серверов, но полностью застраховаться от технических накладок практически нереально. Например, приложение или сайт могут «виснуть» при соединении через отдельных провайдеров. Проследить это самостоятельно без фидбэка — фактически нереально.</li><li><b>Сложности с оплатой. </b>Эта проблема стала особенно актуальной в последние пару лет в связи с релокацией части пользователей. В частности, не всегда могут проходить оплаты по карте в приложении из-за рубежа. Решение таких проблем — это всегда индивидуальная история.</li></ul><h4>Контент и обучение</h4><ul><li><b>Нерегулярность занятий. </b>Проблема абсолютного большинства студентов — недостаток внутренней мотивации. Сам продукт, модель, принципы обучения таких пользователей обычно полностью устраивают. Но миссия «просто сесть и уделить занятию хотя бы 15 минут в день» все равно остается для них невыполнимой. Вне зависимости от того, как они учат язык — в онлайн-школе, с репетитором, самостоятельно по книгам и сериалам.</li><li><b>Дисбаланс сложности. </b>Материал должен отвечать уровню подготовки пользователя. И слишком сложный контент, и слишком легкий рано или поздно рискуют обернуться потерей мотивации. Просто в первом случае человек сломается «психологически», а во втором — утратит интерес.<br /></li><li><b>«Травмирование грамматикой». </b>Типичный барьер в изучении английского для многих пользователей с постсоветского пространства — то, что мы называем «травмирование грамматикой». Даже во взрослом возрасте люди нередко вспоминают школьные уроки английского с содроганием. Мысль о том, что придется опять зубрить грамматику вообще вселяет практически священный ужас и отбивает желание заниматься. При этом они не сразу понимают, что учить грамматические правила можно совершенно по-другому. Например, просто запоминать конструкции нативно или вообще не переживать, когда не получается разобраться с каким-то правилом.<br /></li><li><b>Отсутствие плана. </b>Пользователи часто верят, что добьются лучшего результата, если сами смогут выбирать что и в каком объеме учить. Вот только в реальности большинству людей нужен четкий пошаговый план обучения. Как показывают тесты: чрезмерная свобода выбора зачастую оборачивается фрустрацией, а не успехами.<br /></li></ul><h3>Пользователь как генератор идей</h3><p>Работа с обратной связью важна не только в плане решения проблем, но для анализа идей, которые предлагают пользователи. Как в области технических моментов, так и образовательного контента.</p><p>В Lingualeo мы всегда прислушиваемся к пожеланиям пользователей по поводу тем в английском, которые им бы хотелось добавить в программу. Это могут быть разделы грамматики или подборки лексики определенной тематики. Например, идея добавления грамматических подсказок в тренировках принадлежит именно нашим пользователям. С помощью этой функции студент может уточнить, в каком времени подается материал. Наглядность усиливает логические связи и помогает нативному запоминанию грамматики.</p><h3>Пользователь как тестировщик</h3><p>Самым активным и лояльным пользователям можно предложить поучаствовать в тестировании новых функций. Например, перед тем как внедрить обновление мы всегда «обкатываем» его на закрытой группе реальных пользователей, собираем и анализируем их отзывы. Обратную связь от пользователей важно не просто анализировать саму по себе, но обязательно в контексте базовых показателей эффективности:</p><ol><li>количество занятий на пользователя</li><li>retention или количество возвратов пользователей после первого контакта с продуктом</li><li>среднее проведенное на платформе время.</li></ol><p>Каждый из этих компонентов дополняет друг друга и помогает разобраться в причинах изменений пользовательского поведения. Почему пользователи стали заниматься активнее? В чем причина сокращения времени на платформе? Только благодаря всесторонней коммуникации с пользователями разработчики получают максимально объективную картину их удовлетворенности продуктом и понимание того, куда двигаться дальше. Какие моменты нужно срочно исправлять, а какие — развивать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Зачем художнику программирование: как стать продуктовым дизайнером</title>
      <link>https://tproger.ru/articles/zachem-hudozhniku-programmirovanie--kak-stat-produktovym-dizajnerom-250864</link>
      <comments>https://tproger.ru/articles/zachem-hudozhniku-programmirovanie--kak-stat-produktovym-dizajnerom-250864?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Артем Орлов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/zachem-hudozhniku-programmirovanie--kak-stat-produktovym-dizajnerom-250864</guid>
      <description><![CDATA[<p>Как UX/UI-дизайнеру стать продуктовым дизайнером: no-code инструменты, теория алгоритмов и нейросети. Пошаговый трек для роста карьеры и зарплаты.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/zachem-hudozhniku-programmirovanie--kak-stat-produktovym-dizajnerom-250864">Зачем художнику программирование: как стать продуктовым дизайнером</a>»</p>]]></description>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 25 Jun 2024 08:50:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>По данным UX Design Institute, в феврале 2024 года на мировом рынке труда отмечен спад количества вакансий в сфере UX. Сайт для поиска работы Indeed отмечает, что спрос на digital-дизайнеров уменьшился на 26% по сравнению с допандемийными годами. Как специалистам отрасли оставаться востребованными и высокооплачиваемыми, рассказал Артем Орлов, преподаватель Universal University и Британской высшей школы дизайна, руководитель направления инновации в онлайн-кинотеатре Wink.</p><p>Прежде всего, не следует впадать в уныние. Как и во многих других сферах ИТ, трудности с поиском работы в основном испытывают дизайнеры уровня джун, вкладываться в которых у компаний действительно все меньше интереса. Этот тренд вполне прослеживается и в России. В то же время эксперты рынка отмечают, что дефицит высококвалифицированных сотрудников продолжает ощущаться и вряд ли закончится в обозримом будущем. Связано это с бурным развитием профессии UX/UI-дизайнера и приходом в нее новых цифровых инструментов.</p><h2>Что не так с UX/UI-дизайнерами</h2><p>Давайте вспомним, как выглядел процесс создания большого сайта или мобильного интерфейса к какой-нибудь сервисной платформе еще несколько лет назад. Продакт-менеджер собирал всю необходимую информацию от аналитиков, формировал гипотезу и прорабатывал ТЗ, которое передавались дизайнеру. После нескольких циклов правок фронтенд приложения считался готовым для интеграции с бэкендом и выпуска в продуктивную среду.</p><p>По сути, от дизайнера требовалось наличие креативного видения, эстетической насмотренности, общих знаний в области архитектуры интерфейсов, а также владение несколькими профильными инструментами, такими как Photoshop. Постепенно, с ростом темпов разработки, популяризацией гибких методологий, становилось все очевиднее, что UX/UI-дизайнеры нуждаются в резком повышении производительности труда.</p><p>Современный бизнес крайне заинтересован в сокращении time-to-market — времени вывода новых цифровых продуктов на рынок. Одновременно с этим все большее распространение получают инструменты, которые дают дизайнеру возможность не просто «рисовать окошки», а сразу создавать полноценный функционирующий фронтенд — готовый модуль, который разработчик лишь подключает к сервисной платформе. Так началась трансформация профессии UX/UI-дизайнера в дизайнера продуктового.</p><h2>Скорость, гипотезы, прототипирование</h2><p>Преимущества такого подхода неоспоримы. Еще до передачи в разработку продуктовый дизайнер, освоивший новые инструменты, способен очень быстро создавать работоспособные версии (MVP) любых интерфейсных сред для пользователей, сразу проверять те или иные гипотезы, проводить А/Б-тесты в связке с аналитиком или даже без него. Работодатель получает ускорение выпуска обновлений и сокращение операционных расходов, а значит, может выделить больше средств для привлечения высококвалифицированных сотрудников.</p><p>Функциональность конкретного продуктового дизайнера зависит от его компетенций, а также размера компании, в которой он работает. Если это условный стартап или агентство, такой работник может совмещать в себе много навыков. Например, параллельно выполнять задачи аналитика. В крупной корпорации чаще приживаются узкие специалисты, зато глубоко знающие свой предмет деятельности. Если что их и объединяет, так это наличие креативных талантов и умение использовать платформы no-code.</p><h2>Программирование без кода</h2><p>Современный продуктовый дизайнер не просто рисует интерфейс — он наделяет его готовой функциональностью, собирая ее из отдельных модулей, как из кубиков. Самыми, пожалуй, известными инструментами, позволяющими выполнять такую работу, заслуженно считаются платформы бескодовой разработки Bubble и Webflow. Они предоставляют пользователю среду визуального программирования, достаточно универсальную для того, чтобы создавать полноценные приложения, не написав ни строчки кода.</p><p>Впрочем, наличие визуального редактора не означает, что стремящемуся расширить свои компетенции дизайнеру не придется изучать программирование. Да, заучивать синтаксис конкретных языков не придется, зато понадобятся серьезные знания в области теории алгоритмов. Без понимания, где необходимо использовать цикл, а где условное выражение, выстроить логику работы приложения не получится. То же можно сказать и о понимании структуры данных, принципах организации систем хранения, устройстве программных интерфейсов и многом другом.</p><p>Продуктовый дизайнер может совсем не писать код и для решения нестандартных задач всегда обращаться к разработчику. Однако без понимания теории программирования UX/UI-дизайнер не сможет занять ту профессиональную нишу, в которую стремится.</p><h2>Как проложить путь в продуктовый дизайн</h2><p>Вот как мог бы выглядеть трек по набору нужных компетенций для уже состоявшегося в профессии UX/UI-дизайнера, который хочет выйти на новый уровень.</p><p><b>Шаг первый:</b> самостоятельно или в составе комплексного обучающего курса получить основные представления о теории алгоритмов, структурах данных, СУБД и программных интерфейсах.</p><p><b>Шаг второй:</b> выполнить самостоятельную работу по созданию интерфейса сайта или приложения так, как будто проект подготовлен для передачи в разработку. Фактически это должно быть полноценное техническое задание, которое дизайнер ставит сам себе. В целом, этот формат привычен для специалиста по UX/UI.</p><p><b>Шаг третий:</b> подобрать инструменты для самостоятельного выполнения поставленного на предыдущем этапе ТЗ. Но растущие продуктовые дизайнеры, которые планируют работать на заказчиков в РФ, должны учитывать отечественные реалии. Недоступность глобальных облачных сервисов и закон «о приземлении персональных данных» делают упомянутые выше Bubble и Webflow неприменимыми. Однако выход есть. Инструменты no-code существуют и в виде «коробочного» ПО, которое можно установить внутри контура корпоративной безопасности работодателя и использовать локально. С этой целью разумно начать самостоятельное изучение таких продуктов, как FlutterFlow и Appsmith. Кстати, ряд таких платформ сейчас разрабатывается и уже применяется внутри крупных российских корпораций. В обозримом будущем они будут выпущены и как коммерческий продукт.</p><p><b>Шаг четвертый:</b> научиться сопрягать готовый интерфейс с бэкендом создаваемого сервиса. В этом может помочь, например, инструмент Supabase. Он позволяет без написания кода реализовать такие функции, как авторизация пользователей, база данных и прочее. Собственно, на этом этапе сайт или приложение должны обрести полную работоспособность.</p><p><b>Шаг пятый:</b> с готовым навыком создавать продукт с помощью инструментов no-code осталось сфокусироваться на повышении собственной производительности. И здесь на помощь придут генеративные нейросети. Их сотни, и они позволяют решать самые разные задачи. Даже писать код, если в этом возникнет необходимость. Через простой поиск можно выбрать ИИ-платформу, хорошо решающую какую-то ограниченную задачу: нарисовать сет иконок по заданным параметрам или готовый набор текстур в конкретной стилистике, рассчитать карту освещенности для 3D-сцен.</p><p>Дизайнеру не нужно объяснять, сколько часов или дней можно сэкономить таким образом. Отчасти из-за этого и падает спрос на соискателей уровня джун — все больше рутинных задач просто перекладывается на нейросети, освобождая профессионалу время на творчество.</p><h2>Трудоустройство и перспективы</h2><p>Сейчас мы живем в мире, где главным в резюме является последний абзац. Именно там обычно перечислены отдельные ценные компетенции, которые, как мозаика, формируют профессиональный профиль специалиста. Этот список важнее, чем то, что написано в графе «специальность», и работодатель об этом хорошо осведомлен.</p><p>В среднем по рынку UX/UI-дизайнер уровня «крепкий мидл» со знанием Photoshop и Figma может рассчитывать на компенсацию в размере максимум 150 тыс. рублей. Зато подкрепленная опытом строчка со словами Bubble, Webflow, FlutterFlow, Appsmith, Supabase и «промптинг ИИ» отодвигает потолок зарплаты за пределы психологической отметки 200 тыс. И за такого специалиста будут бороться и держаться.</p><p>Пройдет еще несколько лет, и возросшая производительность труда позволит дизайнеру выделять время на развитие в смежных областях — UX-исследованиях, аналитике, программировании. То же ждет и прикладные дисциплины: специалист сможет глубже погрузиться в основной бизнес компании, будь то медицинские технологии или привлечение подписчиков в онлайн-кинотеатры. А там уже, вполне возможно, на горизонте замаячат обоснованные притязания на позицию Product Owner.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как и зачем применяют принципы логики в дизайне интерфейсов</title>
      <link>https://tproger.ru/articles/kak-i-zachem-primenyayut-principy-logiki-v-dizajne-interfejsov</link>
      <comments>https://tproger.ru/articles/kak-i-zachem-primenyayut-principy-logiki-v-dizajne-interfejsov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Ваня Сержантов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-i-zachem-primenyayut-principy-logiki-v-dizajne-interfejsov</guid>
      <description><![CDATA[<p>Логика и дизайн-мышление помогают создавать выдающиеся интерфейсы. О том, как это работает, и как «прокачать» эти навыки рассказывает Иван Сержантов, продуктовый дизайнер компании IT_ONE.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-i-zachem-primenyayut-principy-logiki-v-dizajne-interfejsov">Как и зачем применяют принципы логики в дизайне интерфейсов</a>»</p>]]></description>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 04 Jun 2024 09:18:31 GMT</pubDate>
      <content:encoded><![CDATA[<p>Логика — фундаментальный инструмент, который помогает принимать решения и преодолевать проблемы. Она применима во всём — от простых повседневных действий до сложных научных исследований. И, конечно же, она играет огромную роль в дизайне интерфейсов.</p><p>Советую ориентироваться на правила логики, изложенные Георгием Челпановым в его «Учебнике логики», и на дизайн-мышление, принципы которого сформулировал Герберт Саймон в книге «Наука об искусственном». Эти два подхода помогают создавать интуитивно понятные и эффективные интерфейсы.</p><h2>Кто такой Георгий Челпанов</h2><p>Георгий Иванович Челпанов был выдающимся русским философом, логиком и психологом. Он оказал значительное влияние на развитие этих наук в России. Родился в 1862 году в Мариуполе. Уже в молодости заинтересовался философией и логикой. Получил высшее образование в Новороссийском университете в Одессе — окончил историко-филологический факультет со степенью кандидата.</p><p>Челпанов стремился понять основы человеческого мышления и восприятия — это привело его к изучению логики как средства формализации правильного мышления. Его «Учебник логики» стал одним из основных руководств по логике в России и использовался для обучения в гимназиях и самообразования. В этом труде Челпанов не только изложил теоретические основы логики, но и научил читателей применять их на практике. Он стремился сделать логику доступной для широкой аудитории.</p><p>Его работы по логике и психологии были направлены, в том числе, на подготовку квалифицированных специалистов, способных критически мыслить и анализировать сложные идеи.</p><h2>Вводная теория принципов логики</h2><p>Логика — это наука о правильном мышлении, которая помогает нам структурировать наши рассуждения таким образом, чтобы из истинных предпосылок следовали истинные выводы. Она включает в себя ряд принципов и правил, которые обеспечивают ясность и точность мысли.</p><p>Основные принципы логики включают:</p><ul><li><b>Принцип тождества</b>: утверждение всегда является истинным или ложным.</li><li><b>Принцип непротиворечия</b>: утверждение не может быть одновременно истинным и ложным.</li><li><b>Принцип исключенного третьего</b>: между истиной и ложью нет третьего.</li><li><b>Принцип достаточного основания</b>: для того чтобы считать утверждение истинным, должны быть достаточные основания.</li></ul><p>Эти принципы лежат в основе всех логических рассуждений и применимы во многих областях, включая дизайн интерфейсов.</p><p>Логика в UX/UI — это как фундамент дома. Она помогает нам определить, что именно должен делать продукт и как он должен это делать. Благодаря логике, мы можем создать интерфейс, который будет не только красивым, но и удобным для пользователей. Это значит, что каждая кнопочка и каждый переход будут на своих местах и всё будет работать как часы.</p><h2>А дизайн-мышление?</h2><p>Дизайн-мышление — это не просто метод, это целая философия, которая позволяет подходить к решению проблем совершенно по-новому. Этот подход был впервые описан Гербертом Саймоном в книге «Науки об искусственном». Саймон рассматривал дизайн-мышление как способ исследования искусственного и естественного миров, сравнивая методологии изучения психологии мышления человека и науки конструирования.</p><p>Логика в дизайн-мышлении работает как инструмент для структурирования процесса решения задач. Она помогает определить и оценить проблему, сгенерировать возможные решения, протестировать их и выбрать наиболее эффективное. В этом процессе логика выступает в роли критического фильтра, который отсеивает невозможные или неэффективные решения, оставляя только те, которые имеют потенциал привести к успеху.</p><p>Саймон подчеркивал важность моделирования и прототипирования в дизайн-мышлении. Он утверждал, что создание моделей и прототипов позволяет нам экспериментировать и исследовать различные варианты решений, прежде чем приступить к их реализации в реальном мире. Это подход, который позволяет нам «мыслить руками» и делать выводы, основанные на реальном опыте, а не только на теоретических предположениях.</p><p>В своей книге Саймон также описал, как логика и дизайн-мышление могут быть применены в различных областях, от создания физических объектов до разработки сложных социальных систем. Его идеи оказали значительное влияние на развитие дизайна, инженерии и управления, и продолжают вдохновлять дизайнеров и исследователей по всему миру.</p><p>Таким образом, дизайн-мышление и логика вместе создают мощный инструментарий для инноваций в дизайне интерфейсов, позволяя нам подходить к проблемам с новых позиций и находить решения, которые делают мир лучше.</p><h3>Примеры плохой логики в одном функционале</h3><p>Первоначальная цель функции удаления сообщений — помочь пользователю убрать случайно отправленное сообщение. WhatsApp показывает «Данное сообщение удалено», что сообщает получателю о факте удаления и противоречит цели. Telegram же напротив позволяет удалить сообщение незаметно, лучше соответствуя потребности пользователей.</p><figure><img src="https://media.tproger.ru/user-uploads/101501/2024-05-30/2306d98d-5d7a-43dc-87cd-7b89a3b917c8.png" alt="Функция удаления сообщений" /><figcaption>Функция удаления сообщений</figcaption></figure><p>Вот ещё один пример. Обратите внимание на элемент поиска в правом верхнем углу интерфейса. Пользователь, когда видит его, думает, что поиск осуществляется только по содержимому выбранной заметки, и не может найти функцию поиска по всему списку заметок. На самом деле, данный поиск работает именно по списку заметок, а не по содержимому текущей заметки.</p><figure><img src="https://media.tproger.ru/user-uploads/101501/2024-05-30/36296da2-89bc-4e8a-a779-f5dfefc578be.png" alt="Функция поиска по списку заметок" /><figcaption>Функция поиска по списку заметок</figcaption></figure><p>Ранее на сайте Apple для выбора аксессуаров использовалась UIPickerView, но длинные названия не помещались полностью, что затрудняло выбор. Впоследствии проблему исправили: теперь полные названия отображаются в селект-ячейке, для экономии места основные аксессуары вынесены на экран, а дополнительные — скрыты.</p><figure><img src="https://media.tproger.ru/user-uploads/101501/2024-05-30/5c48ddef-c06e-4141-ae2d-b1904dcd98bc.png" alt="UIPickerView и селект-ячейки" /><figcaption>UIPickerView и селект-ячейки</figcaption></figure><h2>Как это всё применять?</h2><p>Допустим, ты работаешь над банковским приложением и хочешь улучшить каталог продуктов. Вот как ты можешь использовать логику и дизайн-мышление:</p><ol><li><b>Исследование</b>. Понаблюдай за тем, как люди пользуются текущим каталогом. Где они запутываются? Что им не нравится?</li><li><b>Эмпатия. </b>Поставь себя на место пользователя. Какие у него потребности? Чего он ожидает от каталога?</li><li><b>Идеи. </b>Подумай, как можно улучшить каталог. Может быть, упростить навигацию или сделать описания продуктов понятнее?</li><li><b>Прототипы. </b>Создай несколько вариантов нового каталога и покажи их пользователям. Какой вариант им нравится больше?</li><li><b>Тестирование и анализ. </b>Проверь, как работают твои идеи на практике. Собери отзывы и улучшай каталог до тех пор, пока он не станет идеальным.</li></ol><h2>А если мне нужно найти информацию?</h2><p>Допустим, ты хочешь узнать, как цвет и форма кнопки влияют на поведение пользователя. Используй логику, чтобы сузить поиск:</p><ol><li><b>Цель. </b>Определи, что именно тебе нужно узнать. Например, как цвет кнопки влияет на кликабельность.</li><li><b>Запрос. </b>Сформулируй запрос, используя ключевые слова и логические операторы. Например, “влияние цвета кнопки на кликабельность — форма”.</li><li><b>Результаты. </b>Проанализируй информацию, которую ты нашел, и выбери самое важное и полезное.</li></ol><h2>Что изучить</h2><p>Логика и дизайн-мышление помогают создавать продукты, которые удовлетворяют потребности пользователей и обеспечивают положительный опыт использования.</p><p>Для тех, кто желает расширить свои знания в области логики и дизайн-мышления, оставляю список литературы к изучению:</p><ul><li>“Учебник логики” Георгия Челпанова;</li><li>“Наука об искусственном” Герберта Саймона;<br /></li><li>“Привычка достигать” Бернарда Роса;<br /></li><li>“Привычка достигать” Бернарда Роса;<br /></li><li>“Думай медленно… Решай быстро” Даниэля Канемана;<br /></li><li>“A Practical Guide to Information Architecture” Донна Спенсер; <br /></li><li>“The Elements of User Experience: User-Centered Design for the Web and Beyond” Джесси Джеймса Гарретта.<br /></li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Кто такой графический дизайнер, чем он занимается и как им стать</title>
      <link>https://tproger.ru/articles/kto-takoj-graficheskij-dizajner-chem-on-zanimaetsya-i-kak-im-stat-erid-ljn8kbk4h</link>
      <comments>https://tproger.ru/articles/kto-takoj-graficheskij-dizajner-chem-on-zanimaetsya-i-kak-im-stat-erid-ljn8kbk4h?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Владислав Юсупов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kto-takoj-graficheskij-dizajner-chem-on-zanimaetsya-i-kak-im-stat-erid-ljn8kbk4h</guid>
      <description><![CDATA[<p>Возможно, специальность графического дизайнера звучит просто — рисуешь себе макеты и всё. Однако нужно выполнять и другие сопутствующие задачи. Рассказываем, какие.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kto-takoj-graficheskij-dizajner-chem-on-zanimaetsya-i-kak-im-stat-erid-ljn8kbk4h">Кто такой графический дизайнер, чем он занимается и как им стать</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Обучающие курсы]]></category>
      <category><![CDATA[Веб-дизайн]]></category>
      <category><![CDATA[Образование]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 07 Feb 2024 13:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<ol><li><a href="https://tproger.ru/#one">Кто такой графический дизайнер</a></li><li><a href="https://tproger.ru/#two">Чем занимается графический дизайнер и какие задачи выполняет</a></li><li><a href="https://tproger.ru/#three">Пример работы графического дизайнера</a></li><li><a href="https://tproger.ru/#four">Какие плюсы и минусы профессии графический дизайнер</a></li><li><a href="https://tproger.ru/#five">Какая зарплата у графического дизайнера</a></li><li><a href="https://tproger.ru/#six">Обучение профессии графического дизайнера на курсе от MDA</a></li><li><a href="https://tproger.ru/#seven">Что будет на программе</a></li></ol><p>Графический дизайнер создает визуальные образы и концепции, чтобы передать определенное сообщение или идею. Он работает с различными инструментами и техниками, чтобы создать запоминающиеся и эффектные проекты. В этой статье рассмотрим, что делает графический дизайнер, какие навыки ему необходимы и как он может помочь бизнесу достичь целей.</p><h2>Кто такой графический дизайнер</h2><p>Графический дизайнер занимается созданием визуальных образов и композиций с помощью цифровых инструментов. Он работает над созданием логотипов, баннеров, плакатов, упаковки для товаров, книг, журналов, веб-сайтов и многого другого.</p><p>Графический дизайнер должен обладать развитым вкусом в области стиля и цвета, а также умением работать с различными типами шрифтов. Он должен обладать творческим мышлением и уметь генерировать уникальные решения для поставленных задач.</p><p>Специалисты могут работать в различных областях, таких как реклама, издательство, веб-дизайн. Они помогают бизнесу и организациям достигать целей, создавая привлекательные и эффективные визуальные материалы.</p><p>Например, такой специалист может создавать дизайн упаковки для нового продукта. В этом случае дизайнер должен учитывать множество факторов: целевую аудиторию, конкурентов на рынке, требования заказчика и т.д. Он должен создать такой дизайн упаковки, который будет привлекать внимание потенциальных покупателей и выделять продукт на полке магазина. Для этого дизайнер может использовать различные элементы: цвета, шрифты, изображения и т.д. В результате работы графического дизайнера получается готовый макет упаковки, который затем передается в производство.</p><h2>Чем занимается графический дизайнер и какие задачи выполняет</h2><p>Примеры некоторых задач, которые выполняет графический дизайнер:</p><ul><li><b>Создание логотипов и брендинга:</b> графический дизайнер разрабатывает логотипы и фирменный стиль. Он учитывает особенности бренда и создает уникальный дизайн, который будет узнаваться и запоминаться.</li><li><b>Разработка рекламных материалов:</b> специалист создает рекламные материалы, такие как баннеры, листовки, брошюры и т.д. Он учитывает целевую аудиторию и создает дизайн, который будет привлекательным и эффективным.</li><li><b>Создание веб-дизайна: </b>дизайнер разрабатывает дизайн веб-сайтов и приложений. Он учитывает пользовательский опыт и создает интерфейс, который будет удобным и интуитивно понятным.</li><li><b>Разработка упаковочных материалов:</b> он учитывает особенности продукта и создает дизайн, который будет привлекательным и информативным.</li><li><b>Создание иллюстраций:</b> графический дизайнер может создавать иллюстрации для различных целей, таких как книги, журналы, рекламные материалы и т.д.</li><li><b>Работа с типографикой:</b> специалист занимается выбором шрифтов и их компоновкой для создания читабельных и эстетически привлекательных текстовых материалов.</li></ul><h2>Пример работы графического дизайнера</h2><p>Допустим, есть компания по производству спортивной одежды. Они обратились к графическому дизайнеру с задачей разработать новый логотип и фирменный стиль для своей продукции.</p><p>Задачи, которые выполнял графический дизайнер в этом проекте, включали:</p><ul><li>Исследование рынка и конкурентов: дизайнер провел анализ рынка спортивной одежды, чтобы понять, какие тренды и тенденции существуют в этой области. Он также изучил логотипы и фирменные стили конкурентов, чтобы понять, что делает их уникальными и привлекательными для потребителей.</li></ul><ul><li>Создание концепции: на основе полученной информации дизайнер разработал несколько концепций логотипа и фирменного стиля. Он предложил различные варианты шрифтов, цветовых решений и графических элементов, чтобы компания могла выбрать наиболее подходящий вариант.</li></ul><ul><li>Доработка выбранной концепции: после того как компания выбрала одну из предложенных концепций, дизайнер доработал ее, учитывая все пожелания и требования заказчика. Он также создал набор фирменных элементов, таких как визитки, бланки, конверты и т.д., чтобы все они соответствовали новому логотипу и фирменному стилю.</li></ul><ul><li>Презентация и утверждение: после того как все работы были выполнены, дизайнер представил результат заказчику. Если все было утверждено, то новый логотип и фирменный стиль были готовы к использованию.</li></ul><p>Таким образом, графический дизайнер в этом проекте выполнял задачи по созданию визуального образа компании, который будет привлекать внимание потребителей и выделять ее на фоне конкурентов.</p><h2>Какие плюсы и минусы профессии графический дизайнер</h2><h3>Плюсы</h3><ul><li>Креативность: дизайнер может проявлять свою творческую натуру и создавать уникальные визуальные образы.</li><li>Широкий спектр задач: профессионал может работать над разнообразными проектами, что дает ему возможность постоянно расти и улучшать свои навыки.</li><li>Удаленная работа: многие специалисты работают удаленно, что позволяет работать из любой точки мира.</li><li>Высокая оплата труда.</li><li>Графический дизайнер может стать фрилансером и работать на себя.</li></ul><h3>Минусы</h3><ul><li>Конкуренция за проекты может быть высокой.</li><li>Необходимость постоянного обучения: специалист должен следить за новыми тенденциями и технологиями, чтобы выделяться среди конкурентов.</li><li>Стресс из-за необходимости выполнения проектов в срок и удовлетворения требований клиентов.</li><li>Необходимость работы на компьютере: графический дизайнер проводит большую часть времени за компьютером, что может быть утомительным для некоторых людей.</li></ul><h2>Какая зарплата у графического дизайнера</h2><p>Junior графические дизайнеры в России зарабатывают около 50 000 рублей. А специалисты с большим портфолио и опытом могут зарабатывать от 170 000 рублей и больше.</p><p>Заработная плата графического дизайнера может варьироваться в зависимости от региона. Например, в Москве и Санкт-Петербурге зарплата может быть выше.</p><figure><img src="https://media.tproger.ru/user-uploads/75379/2024-02-07/1405d969-043a-460c-9dbf-8151b43ede8a.jpeg" alt="" /></figure><figure><img src="https://media.tproger.ru/user-uploads/75379/2024-02-07/fb0e1073-f4c3-40b7-a5ed-aeceae36dd17.jpeg" alt="" /></figure><figure><img src="https://media.tproger.ru/user-uploads/75379/2024-02-07/c7eccf63-3fc0-4456-9c70-7d2462762f0d.jpeg" alt="" /></figure><h2>Обучение профессии графического дизайнера на курсе от MDA</h2><p>Графический дизайн — это профессия, которая находится на пике популярности и имеет огромный потенциал для развития в современном мире. С каждым годом <a href="https://www.comnews.ru/content/229875/2023-11-01/2023-w44/1010/za-god-dizaynerov-stalo-2-raza-bolshe">спрос на услуги графических дизайнеров только растет</a>, а вместе с ним и конкуренция на рынке труда. Если вы хотите стать успешным специалистом, то вам нужно получить практические навыки и качественное образование в целом.</p><p><a href="https://edpartners.scaletrk.com/click?o=32&amp;a=553&amp;link_id=500&amp;sub_id4=LjN8KBk4h">Курс</a> разработан опытными специалистами, которые знают все тонкости работы в этой области. В процессе обучения вы получите все необходимые знания и навыки для работы.</p><ul><li>На курсе вы изучите основные принципы дизайна, работу с цветом, шрифтами, композицией и другими элементами графического дизайна. Вы научитесь создавать логотипы, фирменные стили, упаковку товаров, рекламные материалы и многое другое.</li></ul><ul><li>Обучение в формате онлайн-занятий позволяет вам учиться так, как удобно вам. Вы сможете задавать вопросы преподавателям и получать обратную связь по своим работам.</li></ul><ul><li>Курс от MDA — это не просто обучение профессии графического дизайнера, но и возможность получить практический опыт работы в этой области. Вы будете создавать реальные проекты для реальных клиентов, что поможет вам набраться опыта и создать портфолио.</li></ul><h3>Что будет на программе</h3><ul><li>Разработка уникального стиля компании: от первоначального задания до полной реализации.</li><li>Создание брендбука и гайдлайнов: определение визуального кода бренда и паттернов дизайна.</li><li>Управление вниманием через композицию: баланс, динамика, визуальный ритм.</li><li>Создание осмысленного бренда: определение позиционирования и основных атрибутов бренда.</li><li>Работа в дизайн-программах: Illustrator, Photoshop, InDesign, Figma.</li><li>Верстка сложных макетов: использование модульной сетки, иерархии и стилей текста.</li><li>Оформление работ и поиск заказчиков: создание кейсов, упаковка портфеля, работа на фрилансе и поиск заказчика.</li><li>Презентация своего проекта: защита перед клиентом, обоснование концепции.</li></ul><p>Обучают по образовательной лицензии.</p><p>Это значит, что вы можете:</p><ul><li>вернуть 13% стоимости программы, оформив налоговый вычет,</li><li>получить сертификат об успешном окончании программы.</li></ul><p>Государственная лицензия № Л035-01298-77/00769377.</p><p>Будущее профессии графического дизайнера выглядит очень перспективным. С каждым годом спрос на услуги графических дизайнеров только растет, а вместе с ним и конкуренция на рынке труда. Курс от MDA — это отличная возможность для тех, кто хочет освоить профессию графического дизайнера и стать успешным специалистом в этой области.</p><p><i>Реклама ООО «Стратеджик Инсайтс», LjN8KBk4h</i></p>]]></content:encoded>
    </item>
  </channel>
</rss>