<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Все статьи с рейтингом ≥10 / JavaScript / Хабр]]></title>
    <link>https://habr.com/ru/hubs/javascript/articles/rated10/</link>
    <description><![CDATA[JavaScript – прототипно-ориентированный язык программирования]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Mon, 04 May 2026 23:02:52 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Проблемы санации SVG]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1029558/</guid>
      <link>https://habr.com/ru/articles/1029558/?utm_campaign=1029558&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/928/5e4/812/9285e481221f889d9f9b2281e9439cf4.png" /><p>Рендерер Scratch имеет долгую историю связанных с SVG уязвимостей. Их источником становится то, что Scratch парсит сгенерированный пользователем (то есть контролируемый нападающими) контент в элемент <code>&lt;svg&gt;</code>&nbsp;и добавляет его в основной документ для выполнения различных операций (например, для измерения ограничивающего прямоугольника SVG более надёжным образом, чем viewbox или width/height).</p><p>Даже если SVG остаётся в основном документе очень недолго, это небезопасная по своей природе операция. Для обеспечения защиты Scratch реализовывал всё более сложную инфраструктуру парсинга SVG и находящейся внутри разметки, чтобы устранить опасные части.</p><p>Я считаю, что подход Scratch к санации SVG обречён на провал. Чтобы объяснить это, нам нужно совершить путешествие по истории санации SVG в Scratch и посмотреть, насколько хорошо он с этим справлялся.</p> <a href="https://habr.com/ru/articles/1029558/?utm_campaign=1029558&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 29 Apr 2026 12:45:07 GMT</pubDate>
      <dc:creator><![CDATA[PatientZero]]></dc:creator>
      
      <category>scratch</category><category>svg</category><category>рендеринг</category><category>xss</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Рабочее место не-вайбкодера по методу Spec-Driven Development: запускаем Claude Code]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/yadro/articles/1029288/</guid>
      <link>https://habr.com/ru/companies/yadro/articles/1029288/?utm_campaign=1029288&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/8b4/b66/a88/8b4b66a8807e87f26afac855c58de752.png" /><p>Привет, Хабр! Меня зовут Даниил Подольский, я программист и архитектор, разрабатываю программное обеспечение и спецификации для создания ПО в YADRO. Вот уже девять месяцев я использую методологию Spec-Driven Development (SDD) в работе и управляю AI-агентами, которые пишут код. При этом я не считаю себя вайбкодером, потому что мой подход к работе более комплексный, чем просто «общение с AI».&nbsp;&nbsp;</p><p>Это первая статья из цикла об оборудовании рабочего места SDD-кодера. Я расскажу о базовой настройке AI-агента Claude Code: что делать, если вы хотите оперативно и без перезагрузки переключать используемые модели и делать это для каждого проекта отдельно.</p> <a href="https://habr.com/ru/articles/1029288/?utm_campaign=1029288&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 29 Apr 2026 11:40:23 GMT</pubDate>
      <dc:creator><![CDATA[onokonem (YADRO)]]></dc:creator>
      
      <category><![CDATA[claude code]]></category><category><![CDATA[opencode go]]></category><category><![CDATA[harness]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[WebAssembly: обзор технологии, эксперименты с числами и мечты о браузере без JS]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/psb/articles/1028368/</guid>
      <link>https://habr.com/ru/companies/psb/articles/1028368/?utm_campaign=1028368&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/780/ae1/491/780ae149132076cddca7b87dc302ec1c.png" /><p>WebAssembly находится в разработке уже более 8 лет. Технология прошла долгий путь развития и недавно разработчики из Bytecode Alliance <a href="https://webassembly.org/news/2025-09-17-wasm-3.0/">выкатили версию 3.0</a>.</p><p>О WebAssembly уже много материалов, но сегодня нам важна сама суть. У нас есть возможность, воспользовавшись <a href="https://webassembly.org/getting-started/developers-guide/">любым из доступных</a> языков программирования, написать модуль с необходимой нам логикой и запустить в исполняемой среде браузера. Разработчики обещают: модули будут быстрее и безопаснее, чем JavaScript, а также созданные ранее технологии, наподобие <a href="https://developer.mozilla.org/en-US/docs/Games/Tools/asm.js?source=post_page">asm.js</a>.</p><p>На связи Борис Мещеряков, frontend-разработчик в ПСБ и чаще всего мне приходится работать с javascript-фреймворками - React, Angular и прочими. Узнав о WebAssembly, я какое-то время наблюдал за его развитием. Мне стало интересно, может ли новая технология помочь мне уже сейчас? Какие ее возможности существуют на данный момент и какие реальны в будущем?</p><p>Разберёмся вместе?</p> <a href="https://habr.com/ru/articles/1028368/?utm_campaign=1028368&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 28 Apr 2026 06:40:55 GMT</pubDate>
      <dc:creator><![CDATA[TheMadLord (ПСБ)]]></dc:creator>
      
      <category><![CDATA[webassembly]]></category><category><![CDATA[js]]></category><category><![CDATA[javascript]]></category><category><![CDATA[обзор]]></category><category><![CDATA[обзор технологии]]></category><category><![CDATA[браузеры]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Пишем быстрые UI-автотесты без флаков, стендов и боли: изоляционный подход в CI/CD]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/982296/</guid>
      <link>https://habr.com/ru/articles/982296/?utm_campaign=982296&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/bd4/9a5/ad9/bd49a5ad91e755b43aab2bd5b6c9a2de.png" /><p>Большинство UI-тестов флакают, медленно работают и в итоге отключаются в CI. Показываю альтернативу — изоляционные UI-тесты без стендов, таймингов и боли.</p> <a href="https://habr.com/ru/articles/982296/?utm_campaign=982296&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 27 Apr 2026 06:35:48 GMT</pubDate>
      <dc:creator><![CDATA[sound_right]]></dc:creator>
      
      <category><![CDATA[python]]></category><category><![CDATA[ui]]></category><category><![CDATA[qa]]></category><category><![CDATA[qa automation]]></category><category><![CDATA[автотесты]]></category><category><![CDATA[docker]]></category><category><![CDATA[cicd]]></category><category><![CDATA[mock]]></category><category><![CDATA[моки]]></category><category><![CDATA[мокирование]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Тренд на деградацию: как я написал прокси-шакализатор на Next.js, чтобы помочь замедлить интернет]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1027376/</guid>
      <link>https://habr.com/ru/articles/1027376/?utm_campaign=1027376&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/d86/cd9/978/d86cd997873abc18ac49cddbcf48c692.PNG" /><p>Современные проблемы требуют современных решений. Когда важные люди в высоких кабинетах планомерно замедляют привычные сервисы, режут трафик и заставляют глобальную сеть работать со скоростью уставшего почтового голубя, у любого нормального инженера рано или поздно сдают нервы.</p><p>Смотреть на то, как твой вылизанный бандл грузится рывками из-за отваливающихся узлов связи, больше нет сил. Все эти бесконечные битвы за 100/100 в Google PageSpeed, микро-оптимизации LCP и внедрение Edge-кэширования теряют смысл, когда пакеты просто не доходят до адресата.</p><p>И в какой-то момент я осознал простую истину: <strong>если ты не можешь остановить глобальную деградацию веба — возглавь её.</strong></p><p>Раз уж мы летим в прошлое, давайте лететь туда с ветерком. Под скрежет диалап-модема, с вырвиглазными GIF-баннерами, кислотными фонами и ломающейся вёрсткой.</p><p>Встречайте: <strong>Шакализатор сайтов </strong><span class="habrahidden"><strong>3000</strong></span>.</p> <a href="https://habr.com/ru/articles/1027376/?utm_campaign=1027376&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Обшакалиться</a>]]></description>
      
      <pubDate>Fri, 24 Apr 2026 08:06:29 GMT</pubDate>
      <dc:creator><![CDATA[JuxaDan]]></dc:creator>
      
      <category><![CDATA[next.js]]></category><category><![CDATA[cheerio]]></category><category><![CDATA[парсинг]]></category><category><![CDATA[web 1.0]]></category><category><![CDATA[деградация]]></category><category><![CDATA[ретровэб]]></category><category><![CDATA[sharp]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Intl: мощный браузерный API, который вы, возможно, не используете]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/timeweb/articles/1026356/</guid>
      <link>https://habr.com/ru/companies/timeweb/articles/1026356/?utm_campaign=1026356&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/7a1/c18/91f/7a1c1891f743fd0fb21c2faf66a3dd61.png" /><p><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl">Intl API</a> широко доступен (за исключением <code>Intl.DurationFormat</code>, который работает во всех современных браузерах, но существует недостаточно долго, чтобы считаться «широко доступным») и может удовлетворить почти все требования к форматированию непосредственно в браузере, без загрузки кода и без необходимости его парсинга. Он также учитывает языковые предпочтения пользователей, поэтому даты и числа можно форматировать так, как им удобно, без дополнительных усилий.</p> <a href="https://habr.com/ru/articles/1026356/?utm_campaign=1026356&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 23 Apr 2026 14:05:09 GMT</pubDate>
      <dc:creator><![CDATA[aio350 (Timeweb Cloud)]]></dc:creator>
      
      <category>javascript</category><category>js</category><category>intl</category><category>datetimeformat</category><category>numberformat</category><category>locale</category><category>internationalization</category><category>timeweb_статьи_перевод</category><category>web api</category><category>localization</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Готовимся к отключению. Эффективные форматы для упаковки и раздачи HTML-страниц]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/ruvds/articles/1020916/</guid>
      <link>https://habr.com/ru/companies/ruvds/articles/1020916/?utm_campaign=1020916&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/ef9/9fc/371/ef99fc3711a01074ce6615e2e7d0c02a.gif" /><p>В 2026 году растёт риск перебоев и ограничений в работе интернета в РФ. В таких условиях имеет смысл заранее продумать, как сохранить привычное окружение при нестабильном доступе к сети.</p><p>Помимо личных файлов, кино и музыки, хочется сохранить архив сайтов и веб-страниц для чтения в будущем — на месяцы или даже годы вперёд. Но в каком формате это лучше делать?</p> <a href="https://habr.com/ru/articles/1020916/?utm_campaign=1020916&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 20 Apr 2026 09:01:56 GMT</pubDate>
      <dc:creator><![CDATA[alizar (RUVDS.com)]]></dc:creator>
      
      <category><![CDATA[Gwtar]]></category><category><![CDATA[долговременное хранение]]></category><category><![CDATA[ПК для апокалипсиса]]></category><category><![CDATA[архивирование]]></category><category><![CDATA[сжатие веб-страниц]]></category><category><![CDATA[WARC]]></category><category><![CDATA[MHTML]]></category><category><![CDATA[MAFF]]></category><category><![CDATA[SingleFile]]></category><category><![CDATA[ruvds_статьи]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Почему JS/TS — не функциональный язык (и почему это важно понимать)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1025100/</guid>
      <link>https://habr.com/ru/articles/1025100/?utm_campaign=1025100&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Мотивацией для написания этого поста стали два года собеседований JS/TS-инженеров. Я интересуюсь языками и функциональным программированием, поэтому всегда «разбавлял» технические вопросы разговором о парадигмах. И заметил любопытную асимметрию.</p><p>Об ООП кандидаты рассуждали уверенно — но в основном на концептуальном уровне, не вдаваясь в то, как именно ООП реализовано в JavaScript. С FP картина была другой: уверенности меньше, зато критика — конкретная и повторяющаяся: <em>«иммутабельность дорогая по памяти»</em>, <em>«рекурсия небезопасна из-за стека»</em>. Что характерно — эти аргументы почти всегда были сформулированы через опыт работы с JS, а не с Haskell, Clojure или Scala.</p><p>Это важная деталь. Любая парадигма существует на двух уровнях: концептуальном (идеальная модель) и имплементационном (как конкретный язык эту модель выражает). Судить о FP по JS — примерно то же самое, что судить об ООП по bash-скриптам с глобальными переменными.</p><p>Параллельно я регулярно слышал, что JS — функциональный язык. Аргументы варьировались от «там есть <code>.map()</code>» до рассуждений о чистых функциях и каррировании. Именно это и стало поводом для поста: я хочу объяснить, что я считаю функциональным языком — и почему JS таковым не является. Не перечислить отсутствующие фичи, а показать, <em>почему</em> их нет и что это значит в реальном рантайме.</p> <a href="https://habr.com/ru/articles/1025100/?utm_campaign=1025100&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 18 Apr 2026 19:15:33 GMT</pubDate>
      <dc:creator><![CDATA[divideme]]></dc:creator>
      
      <category><![CDATA[fp]]></category><category><![CDATA[scala]]></category><category><![CDATA[js]]></category><category><![CDATA[ts]]></category><category><![CDATA[functional programming]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Frontend Status: свежий дайджест фронтенда и AI — 18.04.2026]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1025036/</guid>
      <link>https://habr.com/ru/articles/1025036/?utm_campaign=1025036&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/3b4/d76/574/3b4d76574f7dfe0f68fd0e11378ae80f.webp" /><p>Привет!</p><p>Это 13-й выпуск Frontend Status — дайджеста по фронтенд-разработке.</p><p>В этом выпуске:</p><p>📺 Для тех, кто хочет делать игровые интерфейсы быстрее: видео про 2D-игры с AI и Phaser, где генеративные инструменты работают как напарник, а не как «чёрный ящик».</p><p>🤖 В AI-разделе — разбор того, что уже можно брать в прод: micro-ml на Rust/WASM, кейс крупной техкомпании с роем из 50+ агентов, Flint Alpha и практическая интеграция Claude с видео.</p><p>🛡️ По безопасности фокус на снижении рисков: прикладной XSS, бесплатная оценка уязвимостей кода от GitHub и дорожная карта крупной техкомпании по постквантовой криптографии.</p><p>🎨 CSS-блок про баланс визуала и доступности: почему <code>box-shadow</code> не заменяет <code>outline</code> в <code>forced-colors</code> и как сохранить корректный фокус.</p><p>⚛️ React-секция для тех, у кого интерфейсный слой растёт в сложности: управление модалками без хаоса, UI без брейкпоинтов и состояние компонентов через radio state machine.</p><p>⚡ В JS/TS — практичный набор без перегруза: Pretext для текста, k-means для палитр, модульная архитектура, <code>Intl</code> API и Web Audio API в Node/Bun.</p><p>🅰️ Angular-раздел посвящён Signal Forms в v21 и тому, как перейти к типизированным формам без ручных подписок.</p><p>🌐 В стандартах и дизайне — что уже можно внедрять сейчас: CSS Image Animation, Baseline за март, Liquid UI и UX-подходы для legacy-систем.</p><p>…и многое другое.</p> <a href="https://habr.com/ru/articles/1025036/?utm_campaign=1025036&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 18 Apr 2026 14:56:09 GMT</pubDate>
      <dc:creator><![CDATA[frontend-status]]></dc:creator>
      
      <category><![CDATA[javascript]]></category><category><![CDATA[typescript]]></category><category><![CDATA[css]]></category><category><![CDATA[react]]></category><category><![CDATA[angular]]></category><category><![CDATA[vuejs]]></category><category><![CDATA[css3]]></category><category><![CDATA[браузеры]]></category><category><![CDATA[node.js]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как я тестировал локально новый Qwen 3.6 и Gemma 4]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1024932/</guid>
      <link>https://habr.com/ru/articles/1024932/?utm_campaign=1024932&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/a78/efe/aed/a78efeaed6b0334f949deeb0f77b7d6c.jpg" /><p>Всем привет <br><strong>! Текст полностью написан человеком !</strong></p><p>На днях вышла модель<strong> Qwen 3.6</strong>, весь реддит забит этой темой. И я рискнул проверить что она может</p><p>Оборудование на котором тестировал (Ноутбук Asus TUF AMD Ryzen + дискретная Nvidia rtx 4070 8GB): </p> <a href="https://habr.com/ru/articles/1024932/?utm_campaign=1024932&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 18 Apr 2026 13:26:30 GMT</pubDate>
      <dc:creator><![CDATA[x4team_only]]></dc:creator>
      
      <category><![CDATA[qwen3.6]]></category><category><![CDATA[lmstudio]]></category><category><![CDATA[rtx4070]]></category><category><![CDATA[llm]]></category><category><![CDATA[gemma4]]></category><category><![CDATA[gemma-4]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Я потратил 10 лет на создание легкого PHP фреймворка для разработки WEB-приложений]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1024496/</guid>
      <link>https://habr.com/ru/articles/1024496/?utm_campaign=1024496&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/9ea/d1f/6aa/9ead1f6aabc36a54e3fc39c0d5fca01d.jpg" /><p>Привет, All!</p><p>Как вам идея, отказаться от тегов вообще и делать WEB-проекты исключительно на классах? А еще, чтобы и клиентский, и серверный коды шли рядом, как в десктопном приложении.И чтобы с&nbsp;одними и теми&nbsp;же переменными можно&nbsp;было работать и в&nbsp;PHP, и в&nbsp;JavaScript.</p><p>«Зачем?»&nbsp;— сапросит кто‑то. Отвечу: чтобы можно&nbsp;было строить не&nbsp;DOM‑элементы, а&nbsp;объекты предметной области бизнес‑процессов, которые автоматизирует мое приложение. И чтобы не&nbsp;тратить время на&nbsp;разные async, promise, ajax и так далее, пусть за&nbsp;это отвечает фреймворк! </p><p>Я говорю примерно вот о&nbsp;таком построении WEB-приложения:</p> <a href="https://habr.com/ru/articles/1024496/?utm_campaign=1024496&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 17 Apr 2026 08:16:22 GMT</pubDate>
      <dc:creator><![CDATA[O-Planet]]></dc:creator>
      
      <category><![CDATA[php]]></category><category><![CDATA[framework]]></category><category><![CDATA[opensource]]></category><category><![CDATA[open source]]></category><category><![CDATA[download]]></category><category><![CDATA[web app]]></category><category><![CDATA[web application]]></category><category><![CDATA[web приложения]]></category><category><![CDATA[фреймворк]]></category><category><![CDATA[скачать]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Почему ваш бандл тяжелее чем должен быть — тестирую tree shaking на 7 бандлерах]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1024404/</guid>
      <link>https://habr.com/ru/articles/1024404/?utm_campaign=1024404&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/7e5/2c9/59b/7e52c959bbe7763831f411a673c86a6a.png" /><p>Вы уверены, что ваш бандлер вырезает неиспользуемый код? Я тоже был уверен — пока бандл Next.js проекта не оказался в два раза тяжелее, чем нужно. Прогнал одинаковый тест на webpack, rollup, vite, esbuild и Next.js — 5 из 7 ломаются на банальном barrel файле. Полез в исходники, нашёл основную причину — и она оказалась не там, где ожидал.</p> <a href="https://habr.com/ru/articles/1024404/?utm_campaign=1024404&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 16 Apr 2026 22:12:43 GMT</pubDate>
      <dc:creator><![CDATA[lykianovsky]]></dc:creator>
      
      <category><![CDATA[tree shaking]]></category><category><![CDATA[webpack]]></category><category><![CDATA[barrel file]]></category><category><![CDATA[bundler]]></category><category><![CDATA[next.js]]></category><category><![CDATA[rollup]]></category><category><![CDATA[vite]]></category><category><![CDATA[esbuild]]></category><category><![CDATA[оптимизация бандла]]></category><category><![CDATA[фронтенд]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Пишем свой текстовый 3D движок в браузере]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1024010/</guid>
      <link>https://habr.com/ru/articles/1024010/?utm_campaign=1024010&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/312/382/ff8/312382ff839b1aa08eaa3817eac5d85d.png" /><p>Сразу скажу: это перевод моей же статьи на Medium, но с небольшими дополнениями и более практичным разбором реализации.</p> <a href="https://habr.com/ru/articles/1024010/?utm_campaign=1024010&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 16 Apr 2026 05:28:31 GMT</pubDate>
      <dc:creator><![CDATA[alexander_kubarski]]></dc:creator>
      
      <category>3d</category><category>voxel</category><category>javascript</category><category>graphics</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Разработка нового статического анализатора: PVS-Studio JavaScript]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/pvs-studio/articles/1023894/</guid>
      <link>https://habr.com/ru/companies/pvs-studio/articles/1023894/?utm_campaign=1023894&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/de3/e38/953/de3e389534d2b5572b4ce53ef4b88494.png" /><p>Вот уже 18 лет статический анализатор кода PVS-Studio находится на рынке. За это время он обзавёлся поддержкой языков C, C++, C# и Java. Разумеется, останавливаться на этих языках мы не планируем, и в этой статье расскажем про разработку нового JavaScript/TypeScript анализатора, который выйдет уже совсем скоро.</p> <a href="https://habr.com/ru/articles/1023894/?utm_campaign=1023894&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 15 Apr 2026 14:47:18 GMT</pubDate>
      <dc:creator><![CDATA[Volokhovskii (PVS-Studio)]]></dc:creator>
      
      <category><![CDATA[pvs-studio]]></category><category><![CDATA[open-source]]></category><category><![CDATA[javascript]]></category><category><![CDATA[typescript]]></category><category><![CDATA[java]]></category><category><![CDATA[gRPC]]></category><category><![CDATA[static analysis]]></category><category><![CDATA[статический анализ]]></category><category><![CDATA[AST]]></category><category><![CDATA[семантический анализ]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Предварительная загрузка изображений с помощью JavaScript]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/timeweb/articles/1020138/</guid>
      <link>https://habr.com/ru/companies/timeweb/articles/1020138/?utm_campaign=1020138&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/cae/1c3/b12/cae1c3b126605623da8fecefa77fa907.png" /><p>Я узнал, что задача предварительной загрузки изображений с помощью JavaScript удивительно сложна. Существует несколько способов это сделать, и лучший из них зависит от требований конкретного приложения.</p> <a href="https://habr.com/ru/articles/1020138/?utm_campaign=1020138&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 14 Apr 2026 08:05:32 GMT</pubDate>
      <dc:creator><![CDATA[aio350 (Timeweb Cloud)]]></dc:creator>
      
      <category>javascript</category><category>js</category><category>html</category><category>css</category><category>timeweb_статьи_перевод</category><category>image</category><category>img</category><category>изображение</category><category>предварительная загрузка</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Формы в Angular: от Reactive Forms к Signal Forms]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/domclick/articles/1018180/</guid>
      <link>https://habr.com/ru/companies/domclick/articles/1018180/?utm_campaign=1018180&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c61/e9f/603/c61e9f6036605826ced94c7be9a6bd07.jpg" /><p>Привет! Меня зовут Егор Молчанов, я разработчик в&nbsp;компании Домклик. </p><p>В&nbsp;прошлой <a href="https://habr.com/ru/companies/domclick/articles/854530/">статье </a>мы познакомились с&nbsp;новыми функциями <code>input()</code>, <code>output()</code> и <code>model()</code>, которые закладывают фундамент для&nbsp;будущего Angular без&nbsp;Zone.js. Сегодня мы поговорим о&nbsp;том, как&nbsp;эти изменения дошли до&nbsp;самой, пожалуй, наболевшей темы в&nbsp;любом приложении&nbsp;— работы с&nbsp;формами. </p><p>В&nbsp;Angular v21&nbsp;появился новый, экспериментальный способ управления формами&nbsp;—&nbsp;<strong>Signal Forms</strong>. Он не&nbsp;отменяет старые добрые Reactive Forms, но&nbsp;предлагает совершенно иной подход, основанный на&nbsp;сигналах. Давайте разберёмся, как&nbsp;работали формы раньше, как&nbsp;они будут работать с&nbsp;Signal Forms, и что&nbsp;это нам даёт. </p> <a href="https://habr.com/ru/articles/1018180/?utm_campaign=1018180&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 14 Apr 2026 08:01:29 GMT</pubDate>
      <dc:creator><![CDATA[EgorMolchanov (Домклик)]]></dc:creator>
      
      <category><![CDATA[angular]]></category><category><![CDATA[signals]]></category><category><![CDATA[signal]]></category><category><![CDATA[forms]]></category><category><![CDATA[reactive]]></category><category><![CDATA[javascript]]></category><category><![CDATA[ангуляр]]></category><category><![CDATA[веб-разработка]]></category><category><![CDATA[web-разработка]]></category><category><![CDATA[формы]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Baseline: март 2026 или самый насыщенный выпуск]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1018200/</guid>
      <link>https://habr.com/ru/articles/1018200/?utm_campaign=1018200&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/fb2/3ba/527/fb23ba527511f456974ab25562ecc9e1.png" /><p>В этом выпуске 12 фич, которые стали доступы повесеместно с хорошей поддержкой. От трёх фич я в полном воссторге.</p><p>Обзор на браузерные API, которые стали <strong>Widely available</strong> в марте 2026. Раз в месяц я буду вам напоминать, что вы уже можете использовать в проде.</p><p>Каждый месяц выходят новые CSS-свойства, HTML-атрибуты, JavaScript-методы и WebAPI, но применять в проде мы их конечно же не будем.  </p><p>2.5 года назад также каждый месяц выходили новые фичи в браузере, а вот их уже пора начинать применять.</p> <a href="https://habr.com/ru/articles/1018200/?utm_campaign=1018200&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Узнать, что можно применять в проде</a>]]></description>
      
      <pubDate>Sat, 11 Apr 2026 10:59:02 GMT</pubDate>
      <dc:creator><![CDATA[nikolayshabalin]]></dc:creator>
      
      <category><![CDATA[baseline]]></category><category><![CDATA[widely available]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Сегодня мы построим свою локальную модель на смартфоне. С блэкджеком и WebUI]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1021610/</guid>
      <link>https://habr.com/ru/articles/1021610/?utm_campaign=1021610&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/b11/faf/746/b11faf746f3f4e41dd496f80ccc4e164.png" /><p>Недавно Apple подтвердила стратегическое партнерство с Google для интеграции ИИ Gemini в свои устройства.&nbsp;  Сегодня мы их опередим и поднимем свою LLM в Android-смартфоне. С блэкджеком и WebUI.</p> <a href="https://habr.com/ru/articles/1021610/?utm_campaign=1021610&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 10 Apr 2026 03:56:28 GMT</pubDate>
      <dc:creator><![CDATA[BlackJackBander]]></dc:creator>
      
      <category><![CDATA[AI]]></category><category><![CDATA[termux]]></category><category><![CDATA[LLM]]></category><category><![CDATA[Ollama]]></category><category><![CDATA[android]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Pretext — библиотека, которая считает текстовую вёрстку в 500 раз быстрее браузера. Зачем это нужно и как работает]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1020058/</guid>
      <link>https://habr.com/ru/articles/1020058/?utm_campaign=1020058&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c7c/4b7/180/c7c4b71805179b9db496e5339993a319.png" /><p>28&nbsp;марта 2026&nbsp;года инженер Midjourney Cheng Lou выложил в&nbsp;открытый доступ библиотеку, которая за&nbsp;неделю набрала почти 40&nbsp;тысяч звёзд на&nbsp;GitHub. И имя ей&nbsp;— <strong>Pretext</strong>. Это движок текстовой верстки на&nbsp;чистом TypeScript, который полностью обходит DOM и браузерный layout рефлоу. За&nbsp;этим стоит вполне большая проблема и красивое решение.</p><p>Давайте разберемся, что&nbsp;это такое, зачем оно нужно, как&nbsp;устроено и стоит&nbsp;ли тащить к&nbsp;себе в&nbsp;проект.</p> <a href="https://habr.com/ru/articles/1020058/?utm_campaign=1020058&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 09 Apr 2026 17:01:11 GMT</pubDate>
      <dc:creator><![CDATA[ab429]]></dc:creator>
      
      <category><![CDATA[pretext]]></category><category><![CDATA[javascript]]></category><category><![CDATA[text layout]]></category><category><![CDATA[производительность]]></category><category><![CDATA[dom reflow]]></category><category><![CDATA[typescript]]></category><category><![CDATA[виртуализация]]></category><category><![CDATA[open source]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[WebSocket и SSE просто, для собеседований и не только]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1021414/</guid>
      <link>https://habr.com/ru/articles/1021414/?utm_campaign=1021414&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/507/ac4/a7a/507ac4a7a9b5045218c38ef6bcf1c99f.png" /><p>WebSocket vs SSE простым языком: двустороннее и однонаправленное соединение, как&nbsp;работает TCP и HTTP upgrade, и какие вопросы по&nbsp;этим темам чаще всего задают на&nbsp;собеседовании.</p> <a href="https://habr.com/ru/articles/1021414/?utm_campaign=1021414&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 09 Apr 2026 12:51:52 GMT</pubDate>
      <dc:creator><![CDATA[Artur_frontDev]]></dc:creator>
      
      <category><![CDATA[websocket]]></category><category><![CDATA[websocket api]]></category><category><![CDATA[websocket js]]></category><category><![CDATA[tcp]]></category><category><![CDATA[двустороннее соединение]]></category><category><![CDATA[собеседование вопросы]]></category><category><![CDATA[собеседование в it]]></category><category><![CDATA[sse]]></category><category><![CDATA[frontend]]></category><category><![CDATA[api]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Frontend Status: свежий дайджест фронтенда и AI — 09.04.2026]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1021402/</guid>
      <link>https://habr.com/ru/articles/1021402/?utm_campaign=1021402&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/003/588/494/003588494b55bd3f2723fc8f67d6e245.webp" /><p>Привет!</p><p>Это 12-й выпуск Frontend Status - дайджеста по фронтенд-разработке.</p><p>В этом выпуске:</p><p>📺 Крупные релизы и видео: Babylon.js 9.0 и доклад Таннера Линсли про TanStack Start.</p><p>🤖 AI в проде без розовых очков: как агенты «видят» веб, что не так с персонами в промптах и почему Cloudflare меняет подход к кэшу.</p><p>🛡️ Supply chain снова в фокусе: пауза bug bounty в Node.js, кейс с axios и практичные меры защиты зависимостей.</p><p>🎨 CSS-практика без магии: containment, sticky по осям, subgrid, dino game и «жидкие» анимации от Темани Афифа.</p><p>⚡ JavaScript/TypeScript: главное по JS 2026, новый JSIR от Google и утилиты для View Transitions.</p><p>🅰️ Angular-экосистема для AI-эпохи и не только: ngxtension, LLMs.txt в NG-ZORRO и MCP-страница в PrimeNG.</p><p>🌎 Веб-стандарты и браузеры: W3C про AI и голосовых агентов, JetStream 3 и MCP-коннектор в Opera Neon.</p><p>🖌️ UI/UX и доступность: WebAIM Million 2026, дизайн для людей с тревожностью и разборы про принципы дизайна.</p><p>…и многое другое.</p> <a href="https://habr.com/ru/articles/1021402/?utm_campaign=1021402&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 09 Apr 2026 12:43:25 GMT</pubDate>
      <dc:creator><![CDATA[frontend-status]]></dc:creator>
      
      <category><![CDATA[javascript]]></category><category><![CDATA[typescript]]></category><category><![CDATA[react]]></category><category><![CDATA[angular]]></category><category><![CDATA[vue.js]]></category><category><![CDATA[css]]></category><category><![CDATA[браузеры]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Обновления функциональности GigaIDE за март 2026]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/sberbank/articles/1019478/</guid>
      <link>https://habr.com/ru/companies/sberbank/articles/1019478/?utm_campaign=1019478&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c5c/cd0/ec6/c5ccd0ec61c21989ac21fa2105028968.jpeg" /><p>Закончился еще один месяц, а значит нам пора поделиться с Вами новостями о развитии <strong>GigaIDE</strong>. Ниже краткий обзор обновлений <strong>PRO-функционала GigaIDE</strong>, которые можно найти на нашем <a href="https://gitverse.ru/features/gigaide/marketplace/">маркетплейсе</a>. Обзор инкремента за <a href="https://habr.com/ru/companies/sberbank/articles/1006448/">февраль </a>доступен по данной ссылке.</p> <a href="https://habr.com/ru/articles/1019478/?utm_campaign=1019478&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 08 Apr 2026 10:22:04 GMT</pubDate>
      <dc:creator><![CDATA[GIGAIDECommunity (Сбер)]]></dc:creator>
      
      <category><![CDATA[gigaide]]></category><category><![CDATA[java]]></category><category><![CDATA[javascript]]></category><category><![CDATA[python]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[TTF-DOOM: как я запустил 3D-рейкастер внутри TrueType-шрифта]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1020668/</guid>
      <link>https://habr.com/ru/articles/1020668/?utm_campaign=1020668&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/987/1a7/c44/9871a7c447466c9fb5f8b62546d2264d.gif" /><p>Каждый, кто хоть раз заглядывал на Hacker News или r/ItRunsDoom, знает традицию: DOOM должен работать на всём. PDF-файлы, SQL-запросы, кишечные бактерии, тест на беременность - список бесконечен, и каждый новый порт абсурднее предыдущего</p><p> Но я задался вопросом: а можно ли запустить DOOM внутри шрифта?  </p><p> Оказалось, что можно. И вот как.</p> <a href="https://habr.com/ru/articles/1020668/?utm_campaign=1020668&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 08 Apr 2026 07:16:09 GMT</pubDate>
      <dc:creator><![CDATA[Priiiiiinter]]></dc:creator>
      
      <category><![CDATA[doom]]></category><category><![CDATA[truetype]]></category><category><![CDATA[font]]></category><category><![CDATA[raycasting]]></category><category><![CDATA[hinting]]></category><category><![CDATA[javascript]]></category><category><![CDATA[creative coding]]></category><category><![CDATA[turing-complete]]></category><category><![CDATA[байткод]]></category><category><![CDATA[компилятор]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Зная эти паттерны ты решишь 60% задач на собеседовании]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1020222/</guid>
      <link>https://habr.com/ru/articles/1020222/?utm_campaign=1020222&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/df7/efa/f5a/df7efaf5aaac93b8c14f63689cf95ec1.png" /><p>Простые, но мощные паттерны для JavaScript: научитесь выбирать подходящий паттерн перед решением задачи и ускорьте своё решение алгоритмических задач.</p> <a href="https://habr.com/ru/articles/1020222/?utm_campaign=1020222&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 07 Apr 2026 08:16:19 GMT</pubDate>
      <dc:creator><![CDATA[Artur_frontDev]]></dc:creator>
      
      <category><![CDATA[javascript]]></category><category><![CDATA[frontend]]></category><category><![CDATA[алгоритмы]]></category><category><![CDATA[структуры данных]]></category><category><![CDATA[two pointers]]></category><category><![CDATA[hashmap]]></category><category><![CDATA[stack]]></category><category><![CDATA[собеседования]]></category><category><![CDATA[собеседования задачи]]></category><category><![CDATA[паттерны]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как мы подружили фронтенд с четырьмя платформами и сократили время разработки в два раза]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/tochka/articles/1017312/</guid>
      <link>https://habr.com/ru/companies/tochka/articles/1017312/?utm_campaign=1017312&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c91/188/424/c91188424edcf6fc7ebad20b2600cb54.png" /><p>Если у вас одна платформа, фронтенд работает стабильно и предсказуемо. Но стоит добавить десктоп, мобильное приложение, PWA — и простая логика превращается в гору if-ов.</p><p>Меня зовут Денис Кондратьев, я фронтенд-разработчик Точка Банк. В статье расскажу, как мы интегрировали наш мессенджер на четыре разные платформы (браузер, Electron, Capacitor, PWA) и сократили время адаптации новых фич в три раза.</p> <a href="https://habr.com/ru/articles/1017312/?utm_campaign=1017312&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 06 Apr 2026 07:39:16 GMT</pubDate>
      <dc:creator><![CDATA[KondratevDenis (Точка Банк)]]></dc:creator>
      
      <category><![CDATA[платформы]]></category><category><![CDATA[js]]></category><category><![CDATA[html5]]></category><category><![CDATA[паттерны программирования]]></category><category><![CDATA[фабрика]]></category><category><![CDATA[наследование]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как я поднял AmneziaWG 2.0 на роутере ASUS: DPI, GeoIP и веб-интерфейс]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1019440/</guid>
      <link>https://habr.com/ru/articles/1019440/?utm_campaign=1019440&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/b78/797/1d5/b787971d510a2e7e742e5c9811e9cfaf.jpg" /><p>Когда VPN на телефоне уже не спасает, а DPI провайдера научился резать WireGuard за секунды, приходит время переносить обфускацию на роутер. В этой статье расскажу, как я сделал полноценный аддон для Asuswrt-Merlin с веб-интерфейсом, выборочной маршрутизацией и поддержкой AmneziaWG 2.0. И почему пришлось отказаться от kernel module.</p><p><strong>Проблема:</strong></p><p>У меня ASUS GT-AX11000 с прошивкой Asuswrt-Merlin. Обычный WireGuard на роутере через встроенный клиент Merlin работает, но провайдер его видит и режет. AmneziaWG решает эту проблему за счёт обфускации, DPI не может отличить трафик от обычного UDP.</p><p>На телефоне и ПК есть клиент Amnezia VPN, и там всё работает. Но есть нюанс...</p> <a href="https://habr.com/ru/articles/1019440/?utm_campaign=1019440&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 05 Apr 2026 10:15:58 GMT</pubDate>
      <dc:creator><![CDATA[r00tx]]></dc:creator>
      
      <category><![CDATA[go]]></category><category><![CDATA[asus]]></category><category><![CDATA[merlin]]></category><category><![CDATA[amnezia]]></category><category><![CDATA[vpn]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как же устал это слышать: «React для создания сложных приложений, а Vue так уж…»]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1019294/</guid>
      <link>https://habr.com/ru/articles/1019294/?utm_campaign=1019294&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/6fb/d99/60b/6fbd9960bdd20b48dd68c7337c350abf.jpg" /><p>На дворе 2026-й, и за это время как React, так и Vue сделали гигантский скачок в развитии и создании экосистемы вокруг себя. Но статистика до сих пор беспощадна к Vue. На React в два раза больше вакансий, чем на Vue. Сколько я ни спрашивал React-инженеров, ответ был всегда один и тот же: «React для серьезных проектов, а Vue так уж».. Серьезно? Почему вы до сих пор так думаете?? Ну хоть один пример приведите, что нельзя сделать во Vue. Хотя бы потратьте 1 день на изучение экосистемы Vue 3 Composition API, Vue Router, Pinia - да вы после этого забудете про свой React. А про различные <code>useState</code> я вообще молчу, Vue тут вообще вас всех обошел с обычными <code>ref</code>. Это вы еще не слышали про <code>keep-alive</code>.</p><p>Я считаю, что такое мнение построилось из-за простой причины: люди просто поставили свою карьеру на React, вот почему они его защищают, а компании продолжают его использовать.</p> <a href="https://habr.com/ru/articles/1019294/?utm_campaign=1019294&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 04 Apr 2026 16:15:33 GMT</pubDate>
      <dc:creator><![CDATA[Pnym]]></dc:creator>
      
      <category><![CDATA[vue]]></category><category><![CDATA[react]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Что не так с веб-компонентами?]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1019206/</guid>
      <link>https://habr.com/ru/articles/1019206/?utm_campaign=1019206&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/df3/ee8/185/df3ee81852cd48f79b6a9914f654c76e.png" /><p>Если кратко - <strong>да все с ними ТАК</strong>. Это замечательный набор современных браузерных технологий, для решения реальных задач веб-разработки. Веб-компоненты позволяют делать очень многое, более просто и элегантно, чем это было бы без них. А главное, они позволяют, с потрясающей гибкостью, решать задачи “со звездочкой” - те, которые немного выходят за рамки и требуют более творческого подхода от разработчика.</p><p>Почему-же тогда по Хабру гуляют, кхм… некие одиозные личности (не будем показывать пальцем) и рассказывают нам про то, что  веб-компоненты это ужас-ужас и полный провал? Давайте разберемся.</p> <a href="https://habr.com/ru/articles/1019206/?utm_campaign=1019206&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 04 Apr 2026 10:06:32 GMT</pubDate>
      <dc:creator><![CDATA[i360u]]></dc:creator>
      
      <category><![CDATA[custom elements]]></category><category><![CDATA[shadow dom]]></category><category><![CDATA[symbiote.js]]></category><category><![CDATA[web components]]></category><category><![CDATA[Lit]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Claude Code бесплатно: как использовать ии бесплатно в 2026 году]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1018234/</guid>
      <link>https://habr.com/ru/articles/1018234/?utm_campaign=1018234&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/a69/d84/19e/a69d8419eb6f0a3f22858f34ccd2af3e.png" /><p>31 марта из npm source maps утёк исходный код Claude Code. Через часы появился OpenClaude — форк с OpenAI-совместимым шимом, который позволяет подключить GPT-4o, DeepSeek, Llama через Ollama или любую модель. Разбираю, как это устроено, что реально работает, что нет, и почему «бесплатный Claude Code» — не совсем то, чем кажется.</p> <a href="https://habr.com/ru/articles/1018234/?utm_campaign=1018234&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 01 Apr 2026 22:09:11 GMT</pubDate>
      <dc:creator><![CDATA[nlaik]]></dc:creator>
      
      <category><![CDATA[claude-code]]></category><category><![CDATA[ollama]]></category><category><![CDATA[ai]]></category><category><![CDATA[llm]]></category><category><![CDATA[open-source]]></category><category><![CDATA[typescript]]></category><category><![CDATA[агенты]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Observability в финтехе: связываем клик пользователя с падением интеграции]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1017650/</guid>
      <link>https://habr.com/ru/articles/1017650/?utm_campaign=1017650&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/d6a/65a/90c/d6a65a90cece00af6f102050095d00b1.png" /><p>Привет! Я Никита, Staff-инженер в крупном финтехе. В этой статье я хочу поделиться нашим опытом построения системы observability. Мы прошли путь от простых логов до сквозной трассировки, и я покажу, как это работает на фронтенде.</p><p><strong>TL;DR:</strong> В статье разбираем опыт внедрения OpenTelemetry в крупном финтех-проекте.<br> <strong>Проблема:</strong> Логи без контекста не позволяют быстро найти причину 500-й ошибки в распределенной системе.<br> <strong>Решение:</strong> Сквозная трассировка (Distributed Tracing) от фронтенда до бэкенда.<br> <strong>Что внутри:</strong> Реализация <code>CompositeLogger</code> на TypeScript, патчинг <code>fetch</code> для сохранения контекста и примеры того, как превратить технические трейсы в карту бизнес-процесса. А именно - frontend реализация и практические детали интеграции.</p> <a href="https://habr.com/ru/articles/1017650/?utm_campaign=1017650&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 31 Mar 2026 16:45:37 GMT</pubDate>
      <dc:creator><![CDATA[DorianMood]]></dc:creator>
      
      <category><![CDATA[opentelemetry]]></category><category><![CDATA[observability]]></category><category><![CDATA[distributed tracing]]></category><category><![CDATA[frontend мониторинг]]></category><category><![CDATA[логирование]]></category><category><![CDATA[трассировка]]></category><category><![CDATA[react]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Атака на axios в npm: как один захваченный аккаунт поставил под угрозу миллионы JavaScript-проектов]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/first/articles/1017244/</guid>
      <link>https://habr.com/ru/companies/first/articles/1017244/?utm_campaign=1017244&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c37/582/aab/c37582aabf1f7e7b68b6a83ce18a4fb0.png" /><p>В экосистеме JavaScript произошёл серьёзный инцидент, который хорошо показывает,   насколько опасными стали атаки на open source и цепочки поставок. Исследователи StepSecurity <a href="https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan">сообщили</a> о компрометации <strong>axios</strong> — одной из самых популярных HTTP-библиотек в npm (~83 миллионов загрузок в неделю). Злоумышленник получил доступ к аккаунту одного из ведущих мейнтейнеров проекта и опубликовал две вредоносные версии пакета: <code>axios@1.14.1</code> и <code>axios@0.30.4</code>.</p><p>На первый взгляд это выглядит как обычное обновление зависимости. Но на деле установка этих версий могла привести к заражению системы трояном удалённого доступа.</p> <a href="https://habr.com/ru/articles/1017244/?utm_campaign=1017244&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 31 Mar 2026 05:37:00 GMT</pubDate>
      <dc:creator><![CDATA[YukinoKingu (FirstVDS)]]></dc:creator>
      
      <category><![CDATA[axios]]></category><category><![CDATA[взлом]]></category><category><![CDATA[javascript]]></category><category><![CDATA[атака]]></category><category><![CDATA[npm]]></category><category><![CDATA[безопасность веб-приложений]]></category><category><![CDATA[безопасность]]></category><category><![CDATA[программирование]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[12 слов вместо номера телефона: как мы сделали мессенджер невидимым для файрволов]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1016900/</guid>
      <link>https://habr.com/ru/articles/1016900/?utm_campaign=1016900&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/37f/248/0fd/37f2480fd5dffa42b700f9b219e637e9.png" /><p>BIP39 вместо номера телефона, ECDH P-256 + AES-256-GCM, non-extractable CryptoKey, трафик неотличимый от HTTPS. Как это устроено, что сломалось в процессе и почему некоторые решения были болезненными.</p> <a href="https://habr.com/ru/articles/1016900/?utm_campaign=1016900&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 30 Mar 2026 11:04:49 GMT</pubDate>
      <dc:creator><![CDATA[MistM]]></dc:creator>
      
      <category><![CDATA[e2ee]]></category><category><![CDATA[мессенджер]]></category><category><![CDATA[шифрование]]></category><category><![CDATA[bip39]]></category><category><![CDATA[web crypto api]]></category><category><![CDATA[pwa]]></category><category><![CDATA[seed phrase]]></category><category><![CDATA[приватность]]></category><category><![CDATA[dpi]]></category><category><![CDATA[typescript]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] 37 советов и приемов по написанию качественных тестов для фронтенда]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/timeweb/articles/1006680/</guid>
      <link>https://habr.com/ru/companies/timeweb/articles/1006680/?utm_campaign=1006680&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/9b9/cf9/cbc/9b9cf9cbc8020967571de59fae81916f.png" /><p>Мне нравится писать тесты. Написание теста и последующее обновление кода для его прохождения — всегда увлекательный процесс.</p><p>Но нет ничего хуже, чем выяснение того, что проверяют существующие тесты (раньше я сам часто был автором таких тестов).</p><p>Представляю вашему вниманию мои советы по написанию высококачественных тестов для фронтенда.</p> <a href="https://habr.com/ru/articles/1006680/?utm_campaign=1006680&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 30 Mar 2026 08:05:06 GMT</pubDate>
      <dc:creator><![CDATA[aio350 (Timeweb Cloud)]]></dc:creator>
      
      <category>javascript</category><category>js</category><category>testing</category><category>test</category><category>jest</category><category>vitest</category><category>timeweb_статьи_перевод</category><category>тестирование</category><category>тест</category><category>tdd</category>
    </item>
  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Рендеринг — это не про сервер]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1015354/</guid>
      <link>https://habr.com/ru/articles/1015354/?utm_campaign=1015354&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Когда меня просят подсказать, как структурировать веб-сервис, я всегда начинаю с одного и того же: напишите сервер, который в ответ на HTTP-запросы выдаёт текст в формате HTML.</p><p><a href="https://unplannedobsolescence.com/blog/hard-page-load/" rel="noopener noreferrer nofollow">Это наиболее долговечный, финансово оправданный и понятный пользователю способ написать веб-сервис</a>. Большинство веб-сервисов следует выстраивать именно так, если только у вас нет очень веской причины действовать иначе.</p><p>Выслушав меня, веб-разработчики часто отвечают: «о, так вам нравится рендеринг на стороне сервера», на что я обычно, поморщившись, парирую — «да, в какой-то мере». Не распыляйтесь по пустякам, если собеседника отделяет от вас десятилетие невежества. Хотя бы они понимают, о чём я.&nbsp; </p><p>Но «рендеринг на стороне сервера» — ужасный термин. Он подразумевает, что сервер не просто <em>больше</em> работает, но и выполняет <em>сложную</em> работу — такую, которую лучше оставить экспертам. Ни то, ни другое не соответствует истине. На самом деле, «рендеринг» на стороне сервера можно организовать почти без труда, какой бы язык программирования вы ни предпочитали.</p><p>Стоит вам это понять — и Веб откроется вам таким, каким его вижу я: как самый простой, лёгкий и наиболее мощный интерфейс для вычислений, какой только есть на свете.</p> <a href="https://habr.com/ru/articles/1015354/?utm_campaign=1015354&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 26 Mar 2026 11:24:33 GMT</pubDate>
      <dc:creator><![CDATA[Sivchenko_translate]]></dc:creator>
      
      <category>React</category><category>HTML</category><category>server-side rendering</category><category>json</category><category>веб-сайт</category><category>api</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Vue.js Amsterdam 2026: будущее экосистемы Vite]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/first/articles/1015150/</guid>
      <link>https://habr.com/ru/companies/first/articles/1015150/?utm_campaign=1015150&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c27/47d/ec5/c2747dec5ffd0a370eeb94957038bc8f.png" /><p>Недавно в Амстердаме прошла конференция Vue.js Amsterdam 2026 — ежегодное мероприятие, посвящённое экосистеме <strong>Vite </strong>и современным инструментам фронтенд-разработки.</p><p>В этом году программа оказалась особенно насыщенной. Команда экосистемы показала сразу несколько направлений развития: обновления ключевых инструментов, новые эксперименты в архитектуре фронтенд-фреймворков и попытку собрать полноценную платформу разработки вокруг Vite.</p><p>В этой статье разберём основные анонсы конференции: <strong>Vite 8</strong>, <strong>Vite+</strong>, <strong>Void Cloud</strong>, а также обновления <strong>Vue</strong> и <strong>Nuxt</strong>.</p> <a href="https://habr.com/ru/articles/1015150/?utm_campaign=1015150&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 26 Mar 2026 05:57:54 GMT</pubDate>
      <dc:creator><![CDATA[YukinoKingu (FirstVDS)]]></dc:creator>
      
      <category><![CDATA[vue]]></category><category><![CDATA[vue.js]]></category><category><![CDATA[vite]]></category><category><![CDATA[rolldown]]></category><category><![CDATA[nuxt]]></category><category><![CDATA[nuxtjs]]></category><category><![CDATA[vue3]]></category><category><![CDATA[vapor]]></category><category><![CDATA[javascript]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] 10 веб-API, заменяющих многие библиотеки JavaScript]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1015134/</guid>
      <link>https://habr.com/ru/articles/1015134/?utm_campaign=1015134&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/618/051/e43/618051e431f349225e88b7d5343d17f7.png" /><p>Современные браузеры тихо съедают экосистему JavaScript живьем.</p><p>За последние несколько лет основные браузеры выпустили нативные веб-API, которые заменяют удивительно большое количество утилит, которые мы до сих пор устанавливаем по привычке. Тем не менее, многие разработчики продолжают использовать уже ненужные, но привычные библиотеки. Если зависимость всегда работала, она остается в стеке, даже если браузер уже умеет выполнять ту же работу.</p><p>Такой подход обходится дороже, чем кажется. Каждый дополнительный пакет увеличивает вес сборки, затраты на обслуживание, частоту обновления версий и риск отказа от проекта в долгосрочной перспективе. Нативные API-интерфейсы стоят пользователям 0 КБ данных, работают глубоко в движке (часто вне основного потока (main thread)) и используют оптимизации, недоступные библиотекам.</p> <a href="https://habr.com/ru/articles/1015134/?utm_campaign=1015134&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 26 Mar 2026 04:35:16 GMT</pubDate>
      <dc:creator><![CDATA[aio350]]></dc:creator>
      
      <category>javascript</category><category>js</category><category>webapi</category><category>fetch</category><category>formdata</category><category>url</category><category>popover</category><category>clipboard</category><category>resizeobserver</category><category>viewtransitions</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Будни разработки моего онлайн-САПР КонтрБагCAD]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/timeweb/articles/1006682/</guid>
      <link>https://habr.com/ru/companies/timeweb/articles/1006682/?utm_campaign=1006682&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/79a/d92/63f/79ad9263f9b818ce873aac29b7addb57.png" /><p>Изначально проект планировался как простенький 3D-редактор, а-ля Tinkercad, но на стероидах, с чертежами, фасками и другими продвинутыми операциями.</p><p>После предыдущей статьи вектор разработки немного сменился. Народ захотел полноценный САПР, прямо в браузере, прям как onshape. Правда onshape работает не совсем в браузере, это тонкий клиент, который работает на серверах ..., а пользователю выводит просто картинку.</p><p>У меня на данный момент сервера нет :) Для работы моего редактора он практически не нужен. Но об этом чуть позже.</p><p>В общем вектор развития из «сделано на коленке» перешел к «народ начал пользоваться, надо сделать нормально». Поэтому я решил сделать несколько глобальных изменений, чтобы обеспечить моему редактору будущее.</p> <a href="https://habr.com/ru/articles/1006682/?utm_campaign=1006682&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 25 Mar 2026 14:05:09 GMT</pubDate>
      <dc:creator><![CDATA[EnvalidGamer (Timeweb Cloud)]]></dc:creator>
      
      <category><![CDATA[контрбагcad]]></category><category><![CDATA[cad]]></category><category><![CDATA[сапр]]></category><category><![CDATA[своими руками]]></category><category><![CDATA[контрбагтех]]></category><category><![CDATA[3d печать]]></category><category><![CDATA[разработка приложений]]></category><category><![CDATA[разработка сайтов]]></category><category><![CDATA[timeweb_статьи]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] JavaScript считает все данные датами]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1014486/</guid>
      <link>https://habr.com/ru/articles/1014486/?utm_campaign=1014486&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/941/063/a92/941063a9298fcc1c1c4fa4cc497318eb.jpg" /><p>Excel не единственный, кто любит превращать любые данные в даты.</p><p>Если вы работаете с датами в JavaScript, то, вероятно, рано или поздно пользовались <code>new Date(someString)</code>. Это удобно: передаём строку, получаем объект Date. Но привыкнув к Python, я был удивлён тем, насколько свободно JavaScript обращается с форматами дат. Позвольте мне проиллюстрировать это примерами.</p> <a href="https://habr.com/ru/articles/1014486/?utm_campaign=1014486&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 24 Mar 2026 17:39:44 GMT</pubDate>
      <dc:creator><![CDATA[PatientZero]]></dc:creator>
      
      <category>date</category><category>даты</category><category>дата и время</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Вы и я не знаем ни JavaScript ни какой-либо другой язык]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1014012/</guid>
      <link>https://habr.com/ru/articles/1014012/?utm_campaign=1014012&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Я 10 лет пишу на JavaScript и публично заявляю: я его не знаю. Но почему-то уверен, что закрою любую задачу из вашего бэклога. Разбираю манипулятивную схему, которой грешит весь рынок найма, особенно сейчас, во время кризиса.</p> <a href="https://habr.com/ru/articles/1014012/?utm_campaign=1014012&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 23 Mar 2026 21:33:16 GMT</pubDate>
      <dc:creator><![CDATA[gtosss]]></dc:creator>
      
      <category><![CDATA[собеседование]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[найм разработчиков]]></category><category><![CDATA[карьера в IT]]></category><category><![CDATA[рынок труда]]></category><category><![CDATA[soft skills]]></category><category><![CDATA[манипуляции на собеседовании]]></category><category><![CDATA[знание языка программирования]]></category><category><![CDATA[бэклог]]></category><category><![CDATA[кризис в IT]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Три причины раздувания JavaScript]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1013772/</guid>
      <link>https://habr.com/ru/articles/1013772/?utm_campaign=1013772&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/7e0/861/25e/7e086125e8cb397878e5f61e176d33e1.png" /><p>Последнюю пару лет мы наблюдали существенный рост сообщества <a href="https://e18e.dev/" rel="noopener noreferrer nofollow">e18e</a>&nbsp;и связанного с этим увеличения количества коммитов, направленных на повышение производительности. Во многом причиной этого стала инициатива по «очистке»: сообщество избавлялось от избыточных, устаревших или неподдерживаемых пакетов.</p><p>В процессе такой работы одной из самых часто поднимаемых тем становится «раздувание зависимостей»: деревья зависимостей npm со временем становятся больше, и зачастую это вызвано давно уже избыточным кодом, возможности которого платформа уже предоставляет нативно.</p><p>В этом посте я бы хотел вкратце рассказать о трёх основных, на мой взгляд, типах раздувания в деревьях зависимостей, причинах их существования и способах решения проблемы.</p> <a href="https://habr.com/ru/articles/1013772/?utm_campaign=1013772&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 23 Mar 2026 13:03:40 GMT</pubDate>
      <dc:creator><![CDATA[PatientZero]]></dc:creator>
      
      <category>зависимости</category><category>дерево зависимостей</category><category>npm</category>
    </item>
  

  

      

      

      

    
  </channel>
</rss>
