dragonscave.space is one of the many independent Mastodon servers you can use to participate in the fediverse.
A fun, happy little Mastodon/Glitch instance.

Server stats:

244
active users

#вебразработка

0 posts0 participants0 posts today
Habr<p>Интеграция Vue.js в Битрикс24: Как разработать сложный фронтенд за два месяца</p><p>Представьте, что к вам приходит владелец с видео-концептом новой фичи для клиента, функционал которой отдаленно напоминает космический корабль, а у вас всего два месяца на разработку, и один — на тестирование. Если смогли представить, значит эта статья для вас, а если нет — то и для вас тоже, чтобы заранее знать, как выходить из таких ситуаций.</p><p><a href="https://habr.com/ru/companies/bitrix/articles/880530/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/bitrix/a</span><span class="invisible">rticles/880530/</span></a></p><p><a href="https://zhub.link/tags/%D0%B1%D0%B8%D1%82%D1%80%D0%B8%D0%BA%D1%81" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>битрикс</span></a> <a href="https://zhub.link/tags/crm" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>crm</span></a> <a href="https://zhub.link/tags/%D0%BE%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>онлайнзапись</span></a> <a href="https://zhub.link/tags/bitrix24" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>bitrix24</span></a> <a href="https://zhub.link/tags/javascript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>javascript</span></a> <a href="https://zhub.link/tags/vue" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>vue</span></a> <a href="https://zhub.link/tags/vuejs" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>vuejs</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a></p>
Habr<p>[Перевод] Динамические формы с Flask</p><p>Одной из распространенных задач в веб-приложениях является создание формы, в которую можно вводить заранее неопределённое количество элементов. Этот подход часто используется при вводе пользовательской информации, например, телефонных номеров или адресов. В примере ниже можно увидеть, как пользователь динамически добавляет дополнительные телефонные номера в форму, нажимая на кнопку "Add another".</p><p><a href="https://habr.com/ru/articles/880864/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/880864/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>python</span></a> <a href="https://zhub.link/tags/flask" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>flask</span></a> <a href="https://zhub.link/tags/bootstrap" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>bootstrap</span></a> <a href="https://zhub.link/tags/%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>руководство</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%84%D0%BE%D1%80%D0%BC%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебформы</span></a> <a href="https://zhub.link/tags/%D1%82%D1%83%D1%82%D0%BE%D1%80%D0%B8%D0%B0%D0%BB" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>туториал</span></a> <a href="https://zhub.link/tags/%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D1%84%D0%BE%D1%80%D0%BC%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>динамические_формы</span></a> <a href="https://zhub.link/tags/html" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>html</span></a> <a href="https://zhub.link/tags/html%D0%B2%D0%B5%D1%80%D1%81%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>htmlверстка</span></a></p>
Habr<p>[Перевод] Почему именно в Chrome под Windows на сайтах не работают эмодзи флагов</p><p>Предположим, вы захотели приукрасить в UI своего сайта опцию выбора страны/языка симпатичными эмодзи флагов. Превосходно! Это создаст дополнительный визуальный ориентир, который поможет пользователям быстро находить нужную страну, да и в целом это просто красиво. Более того, вы даже можете легко реализовать динамическое определение иконок на основе кода региона: // Смещение для корректировки кода ASCII каждого символа в строке кода ISO страны для определения соответствующего флага.<br>const EMOJI_CHARACTER_OFFSET = 127397;</p><p>const getEmojiForCountryCode = (countryCode: string) =&gt;<br>String.fromCodePoint(<br>...countryCode<br>.toUpperCase()<br>.split('')<br>.map((char) =&gt; char.charCodeAt(0) + EMOJI_CHARACTER_OFFSET),<br>);</p><p>// "en-US"<br>const currentLanguageCode = navigator.language;<br>// "US"<br>const currentCountryCode = currentLanguageCode.split("-")[1];<br>// "🇺🇸"<br>getEmojiForCountryCode(currentCountryCode);<br>// "🇫🇷"<br>getEmojiForCountryCode("FR");<br>// "🇸🇪"<br>getEmojiForCountryCode("SE"); Всё идёт шикарно! Как вдруг…</p><p><a href="https://habr.com/ru/companies/ruvds/articles/879938/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/ruvds/ar</span><span class="invisible">ticles/879938/</span></a></p><p><a href="https://zhub.link/tags/ruvds_%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ruvds_перевод</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>программирование</span></a> <a href="https://zhub.link/tags/%D0%B1%D0%B0%D0%B3%D0%B8" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>баги</span></a> <a href="https://zhub.link/tags/%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>браузеры</span></a> <a href="https://zhub.link/tags/chrome" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>chrome</span></a> <a href="https://zhub.link/tags/firefox" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>firefox</span></a> <a href="https://zhub.link/tags/windows" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>windows</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a> <a href="https://zhub.link/tags/ui" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ui</span></a> <a href="https://zhub.link/tags/css" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>css</span></a></p>
Habr<p>Ежегодный опрос PHP-сообщества: итоги 2024 года</p><p>2024 стал насыщенным годом для русскоязычного сообщества PHP-разработки. PHP Russia 2024, релизы PHP 8.4, Symfony 7.2 и Laravel 11. Как и в последние 4 года, мы провели масштабный опрос, чтобы узнать, чем живут разработчики, какие инструменты используют и куда движется индустрия. На этот раз своим мнением делились 1207 респондентов.</p><p><a href="https://habr.com/ru/articles/880552/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/880552/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/php" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>php</span></a> <a href="https://zhub.link/tags/laravel" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>laravel</span></a> <a href="https://zhub.link/tags/%D0%B8%D1%82%D0%BE%D0%B3%D0%B8_%D0%B3%D0%BE%D0%B4%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>итоги_года</span></a> <a href="https://zhub.link/tags/Yii" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Yii</span></a> <a href="https://zhub.link/tags/%D0%92%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Вебразработка</span></a> <a href="https://zhub.link/tags/stateofphp" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>stateofphp</span></a> <a href="https://zhub.link/tags/symfony" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>symfony</span></a></p>
Habr<p>Как использовать собственный опыт и успешные наработки для ускорения разработки</p><p>Мы в компании запускали много проектов электронной коммерции, внедряли на них различные интересные решения, порой очень сложные. И, как любая команда разработчиков, не раз задумывались о том, чтобы повысить скорость и эффективность работы. Рассказываю о том, как мы агрегировали личный опыт и нашли подход, который, возможно, будет полезен и командам разработки, и заказчикам.</p><p><a href="https://habr.com/ru/articles/879992/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/879992/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/1%D1%81%D0%B1%D0%B8%D1%82%D1%80%D0%B8%D0%BA%D1%81" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>1сбитрикс</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%81%D0%B0%D0%B9%D1%82" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебсайт</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a> <a href="https://zhub.link/tags/%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82%D0%BC%D0%B0%D0%B3%D0%B0%D0%B7%D0%B8%D0%BD" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>интернетмагазин</span></a> <a href="https://zhub.link/tags/%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D1%8B%D0%B5_%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>готовые_решения</span></a></p>
Habr<p>Как из каши импортов сделать сортированный список Frontend</p><p>Всем привет! Меня зовут Владимир и работаю джуниор фронтенд разработчиком в одной из лучших компаний:) Сегодня хочу вам рассказать, как можно немного причесать ваш проект чтобы он выглядел более читабельным.</p><p><a href="https://habr.com/ru/articles/878638/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/878638/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/Frontend" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Frontend</span></a> <a href="https://zhub.link/tags/react" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>react</span></a> <a href="https://zhub.link/tags/nextjs" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>nextjs</span></a> <a href="https://zhub.link/tags/%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>оптимизация</span></a> <a href="https://zhub.link/tags/prettier" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>prettier</span></a> <a href="https://zhub.link/tags/%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%B4%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>форматирование_кода</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a> <a href="https://zhub.link/tags/%D1%84%D1%80%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D0%B4" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>фронтенд</span></a></p>
Habr<p>Как из каши импортов сделать сортированный список Frontend</p><p>Всем привет! Меня зовут Владимир и работаю джуниор фронтенд разработчиком в одной из лучших компаний:) Сегодня хочу вам рассказать, как можно немного причесать ваш проект чтобы он выглядел более читабельным.</p><p><a href="https://habr.com/ru/articles/878636/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/878636/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/Frontend" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Frontend</span></a> <a href="https://zhub.link/tags/react" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>react</span></a> <a href="https://zhub.link/tags/nextjs" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>nextjs</span></a> <a href="https://zhub.link/tags/%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>оптимизация</span></a> <a href="https://zhub.link/tags/prettier" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>prettier</span></a> <a href="https://zhub.link/tags/%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BE%D0%B4%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>форматирование_кода</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a> <a href="https://zhub.link/tags/%D1%84%D1%80%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D0%B4" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>фронтенд</span></a></p>
Habr<p>Безопасность на уровне кода: руководство по защите веб-приложений для начинающих</p><p>Привет, Хабр! Я — Виталий Киреев, руковожу разработкой в хостинг-провайдере SpaceWeb. Сегодня поделюсь с вами базовыми практиками в области безопасности кода для веб-приложений и расскажу о пяти подходах, которые мы применяем в компании для повышения общей безопасности нашей экосистемы и продуктов. Эта статья будет интересна, прежде всего, для начинающих разработчиков и веб-мастеров.</p><p><a href="https://habr.com/ru/companies/spaceweb/articles/878066/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/spaceweb</span><span class="invisible">/articles/878066/</span></a></p><p><a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>программирование</span></a> <a href="https://zhub.link/tags/%D0%BA%D0%BE%D0%B4" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>код</span></a> <a href="https://zhub.link/tags/%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>безопасность</span></a> <a href="https://zhub.link/tags/%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%B2%D0%B5%D0%B1%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>безопасность_вебприложений</span></a> <a href="https://zhub.link/tags/%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%89%D0%B8%D0%BC" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>начинающим</span></a> <a href="https://zhub.link/tags/%D0%B4%D0%B6%D1%83%D0%BD%D0%B8%D0%BE%D1%80%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>джуниорразработчик</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D0%BC%D0%B0%D1%81%D1%82%D0%B5%D1%80" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебмастер</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a> <a href="https://zhub.link/tags/%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%B0%D1%8F_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>безопасная_разработка</span></a></p>
Habr<p>[Перевод] Создаем мультитенантные Symfony-приложения с помощью Ecotone</p><p>Способ реализации мультитенантности (multitenancy, мультиарендности) зависит от сферы деятельности, в которой мы работаем. В некоторых случаях нам может хватать одной общей базы данных, а в некоторых нам могут потребоваться отдельные базы данных для полной изоляции. У нас может быть всего пара арендаторов (tenants, тенантов) или же наоборот сотни, нам может потребоваться замедлить или ускорить производительность для конкретного арендатора. Все это создает уникальную среду, в которой мультитенантность является не только техническим вопросом, но и вопросом бизнес‑логики. Данная статья представляет из себя практическое руководство, после изучения которого вы узнаете, как и зачем следует применять мультитенантность для различных сценариев в вашем проекте.</p><p><a href="https://habr.com/ru/companies/otus/articles/877348/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/otus/art</span><span class="invisible">icles/877348/</span></a></p><p><a href="https://zhub.link/tags/symfony" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>symfony</span></a> <a href="https://zhub.link/tags/%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D1%82%D0%B5%D0%BD%D0%B0%D0%BD%D1%82%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>мультитенантные_приложения</span></a> <a href="https://zhub.link/tags/Ecotone" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Ecotone</span></a> <a href="https://zhub.link/tags/php" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>php</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a></p>
Habr<p>Что такое MR-стенды и с чем их едят</p><p>В условиях непрерывной интеграции и высокой скорости разработки фронтенд неизбежно сталкивается с вызовами, связанными с тестированием изменений до их слияния в основную ветку. Любой, даже минимальный апдейт, способен повлиять на пользовательский опыт, поэтому эффективность процессов тестирования становится критически важной. Для нас спасением стали MR-стенды, которые предоставляют возможность изолированного тестирования новой функциональности, минимизируя риски и сокращая время на выявление и исправление ошибок. Рассказываем, как работают MR-стенды, в каких случаях они особенно полезны и как их внедрение повлияло на качество и скорость нашей разработки.</p><p><a href="https://habr.com/ru/companies/samolet/articles/870308/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/samolet/</span><span class="invisible">articles/870308/</span></a></p><p><a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a> <a href="https://zhub.link/tags/%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B2%D0%B5%D0%B1%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>тестирование_вебприложений</span></a> <a href="https://zhub.link/tags/devops" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>devops</span></a> <a href="https://zhub.link/tags/ci" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ci</span></a> <a href="https://zhub.link/tags/cd" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>cd</span></a> <a href="https://zhub.link/tags/merge_request" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>merge_request</span></a></p>
Habr<p>[Перевод] Что случилось с легковесными десктопными приложениями? История Electron</p><p>Electron — это один из самых известных инструментов современного разработчика. Если присмотреться, то это родственник Reactive Native, манящий лозунгом «пиши один раз, запускай везде!», но с гораздо меньшими издержками по сборке и релизу, чем в случае мобильной разработки. Его уникальное преимущество заключается в комбинации Node.js и Chromium, создающей мощную десктопную среду для веб-технологий. Официальный блог Electron не так давно отметил своё десятилетие, что весьма удивляет с учётом того, насколько глубоко этот инструмент успел проникнуть в культуру разработки.</p><p><a href="https://habr.com/ru/companies/ruvds/articles/873714/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/ruvds/ar</span><span class="invisible">ticles/873714/</span></a></p><p><a href="https://zhub.link/tags/ruvds_%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ruvds_перевод</span></a> <a href="https://zhub.link/tags/electron" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>electron</span></a> <a href="https://zhub.link/tags/github" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>github</span></a> <a href="https://zhub.link/tags/%D0%B4%D0%B5%D1%81%D0%BA%D1%82%D0%BE%D0%BF%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>десктопные_приложения</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a> <a href="https://zhub.link/tags/ui" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ui</span></a> <a href="https://zhub.link/tags/nodejs" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>nodejs</span></a> <a href="https://zhub.link/tags/chromium" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>chromium</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>программирование</span></a></p>
Habr<p>Исследование: победители awwwards и их performance в Lighthouse</p><p>Все дизайнеры обожают сайт awwwards – площадку с платной публикацией, где собраны самые классные работы в сфере веб-дизайна. А поскольку мы душнилы по части performance, мы собрали почти 5000 сайтов, определили их фреймворк и проверили производительность в Lighthouse. Также собрали статистику по их авторам. И вот что получилось.</p><p><a href="https://habr.com/ru/articles/874094/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/874094/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/%D1%84%D1%80%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D0%B4" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>фронтенд</span></a> <a href="https://zhub.link/tags/lighthouse" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>lighthouse</span></a> <a href="https://zhub.link/tags/awwwards" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>awwwards</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a> <a href="https://zhub.link/tags/%D0%B8%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>исследование</span></a> <a href="https://zhub.link/tags/performance" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>performance</span></a> <a href="https://zhub.link/tags/%D1%84%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA%D0%B8" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>фреймворки</span></a> <a href="https://zhub.link/tags/nextjs" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>nextjs</span></a> <a href="https://zhub.link/tags/gatsbyjs" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>gatsbyjs</span></a> <a href="https://zhub.link/tags/wordpress" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>wordpress</span></a></p>
Habr<p>Работает? Трогай! Рефакторинг</p><p>«Работает — не трогай!» — знакомая фраза? Звучит как девиз стабильности. Но в наше время все меняется со слишком большой скоростью, а такой подход может стать настоящей ловушкой Джокера. Оставленный без внимания проект рискует превратиться из мощного инструмента решения проблем в неподъемный багаж, неспособный соответствовать новым требованиям. Как же понять, когда «не трогать» становится опаснее, чем «поменять»? Как определить момент, когда старый код начинает замедлять развитие, а не поддерживать его? Сегодня я хочу поговорить с вами о рефакторинге — о том, как найти баланс между работоспособностью и необходимостью изменений, как сохранить проект конкурентоспособным и жизнеспособным, и как, наконец, сделать этот самый рефакторинг.</p><p><a href="https://habr.com/ru/articles/873386/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/873386/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/%D1%80%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>рефакторинг</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>разработка</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>программирование</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>проектирование</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a> <a href="https://zhub.link/tags/%D1%81%D0%BE%D0%B2%D0%B5%D1%82%D1%8B_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>советы_разработчику</span></a> <a href="https://zhub.link/tags/%D1%81%D0%BE%D0%B2%D0%B5%D1%80%D1%88%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>совершенный_код</span></a> <a href="https://zhub.link/tags/%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>инструменты</span></a> <a href="https://zhub.link/tags/%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B4%D0%BE%D0%BB%D0%B3" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>технический_долг</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>практики_программирования</span></a></p>
Habr<p>Почему джуны путаются в асинхронном коде (и как научиться с ним работать)</p><p>Асинхронный код часто становится камнем преткновения для начинающих разработчиков. Почему функции выполняются не в том порядке, зачем нужны промисы, и что делает async/await? В статье я простыми словами объясняю: - Как работает Event Loop и почему это важно. - Какие ошибки чаще всего допускают джуны при работе с асинхронностью. - Как научиться писать понятный и предсказуемый асинхронный код. Если асинхронность вызывает больше вопросов, чем ответов, загляните в статью - там всё по шагам. 🙂</p><p><a href="https://habr.com/ru/articles/871328/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/871328/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/%D0%90%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Асинхронность</span></a> <a href="https://zhub.link/tags/javascript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>javascript</span></a> <a href="https://zhub.link/tags/event_loop" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>event_loop</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%BC%D0%B8%D1%81%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>промисы</span></a> <a href="https://zhub.link/tags/callbacks" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>callbacks</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a> <a href="https://zhub.link/tags/%D0%BE%D1%82%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0_%D0%BA%D0%BE%D0%B4%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>отладка_кода</span></a> <a href="https://zhub.link/tags/%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8E" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>обучение_программированию</span></a> <a href="https://zhub.link/tags/asyncawait" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>asyncawait</span></a></p>
Habr<p>Vue 3 под капотом и тонкости Composition API: Reactivity, Provide/Inject, Suspense</p><p>Vue 3 уже давно в строю, но его "прокси-движок" и особенности Composition API по-прежнему раскрывают себя всё глубже. В статье мы разберём, как Track/Trigger помогают отслеживать изменения, зачем нужны customRef и как грамотно использовать &lt;Suspense&gt; для асинхронных компонентов. Всё это - на примерах и с советами по оптимизации в крупных проектах. Приступаем к деталям!</p><p><a href="https://habr.com/ru/articles/870986/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/870986/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/vue" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>vue</span></a> <a href="https://zhub.link/tags/vue_3" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>vue_3</span></a> <a href="https://zhub.link/tags/javascript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>javascript</span></a> <a href="https://zhub.link/tags/composition_api" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>composition_api</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B5%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>реактивность</span></a> <a href="https://zhub.link/tags/proxy" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>proxy</span></a> <a href="https://zhub.link/tags/customRef" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>customRef</span></a> <a href="https://zhub.link/tags/suspense" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>suspense</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a> <a href="https://zhub.link/tags/provideinject" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>provideinject</span></a></p>
Habr<p>Оптимизация React-приложений: Используем useTransition, useDeferredValue и useOptimistic для плавного UI</p><p>Сделайте интерфейс React-приложения более отзывчивым и плавным с помощью хуков useTransition , useDeferredValue и useOptimistic . Управляйте приоритетами рендеринга, избегайте подвисаний при работе с большими данными и реализуйте оптимистичные обновления для мгновенной реакции интерфейса. Практические примеры и полезные советы ждут вас! 🚀</p><p><a href="https://habr.com/ru/articles/870748/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/870748/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/react" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>react</span></a> <a href="https://zhub.link/tags/react_hooks" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>react_hooks</span></a> <a href="https://zhub.link/tags/%D0%BE%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>оптимизация_производительности</span></a> <a href="https://zhub.link/tags/%D0%BF%D0%BB%D0%B0%D0%B2%D0%BD%D1%8B%D0%B9_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>плавный_интерфейс</span></a> <a href="https://zhub.link/tags/javascript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>javascript</span></a> <a href="https://zhub.link/tags/usetransition" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>usetransition</span></a> <a href="https://zhub.link/tags/usedeferredvalue" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>usedeferredvalue</span></a> <a href="https://zhub.link/tags/useOptimistic" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>useOptimistic</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C_UI" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>производительность_UI</span></a></p>
Habr<p>useActionState: новый герой в мире React</p><p>Привет, React-энтузиаст! Случалось ли тебе писать логику для форм, где нужно не только обработать кучу полей, но и синхронизировать их с асинхронными действиями (запросы, загрузка данных, показ успеха или ошибок)? Если да, то, возможно, ты уже слышал об экспериментальном хуке useFormState в React. Однако на смену ему пришёл более мощный инструмент - useActionState . В статье обсуждается, почему прежний подход ушёл на пенсию, чем хорош новый, и как он может упростить жизнь каждому фронтенд-разработчику.</p><p><a href="https://habr.com/ru/articles/870216/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/870216/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/react" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>react</span></a> <a href="https://zhub.link/tags/useActionState" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>useActionState</span></a> <a href="https://zhub.link/tags/JavaScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>JavaScript</span></a> <a href="https://zhub.link/tags/Frontend" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Frontend</span></a> <a href="https://zhub.link/tags/react_hooks" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>react_hooks</span></a> <a href="https://zhub.link/tags/react_hook_form" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>react_hook_form</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a> <a href="https://zhub.link/tags/%D0%B0%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>асинхронные_операции</span></a></p>
Habr<p>[Перевод] 9 open source библиотек для вашего следующего проекта</p><p>Разработчики часто сталкиваются с выбором, какие инструменты использовать для своего следующего проекта. Даже если вы серьёзно настроены на разработку продукта, проблема остаётся той же. В этой статье я расскажу о 9 библиотеках с открытым исходным кодом, которые улучшат ваш проект.</p><p><a href="https://habr.com/ru/companies/otus/articles/869326/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/otus/art</span><span class="invisible">icles/869326/</span></a></p><p><a href="https://zhub.link/tags/%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>инструменты_разработки</span></a> <a href="https://zhub.link/tags/%D0%BE%D0%BF%D0%B5%D0%BD%D1%81%D0%BE%D1%80%D1%81_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B8" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>опенсорс_библиотеки</span></a> <a href="https://zhub.link/tags/%D0%B1%D0%B8%D0%B1%D0%B8%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B8" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>бибилиотеки</span></a> <a href="https://zhub.link/tags/%D0%BF%D0%BE%D0%B4%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>подборка_инструментов</span></a> <a href="https://zhub.link/tags/javascript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>javascript</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a></p>
Habr<p>«Улучшая доступность для одной категории пользователей, вы делаете сервис удобнее для всех»</p><p>Привет! Инклюзивная организация Everland запускает подкаст «Скоро будет доступно?». Мы хотим вдохновить бизнес создавать доступные услуги и показать, как это влияет на пользователей и компанию.</p><p><a href="https://habr.com/ru/articles/869194/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/869194/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/%D0%BD%D0%B5%D0%B2%D0%B8%D0%B7%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>невизуальная_доступность</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a></p>
Habr<p>WeakMap и WeakSet в JavaScript</p><p>Привет, Хабр! Когда дело доходит до коллекций данных в JavaScript, большинство разработчиков сразу вспоминают про массивы, объекты, Map или Set . Но есть и другие, менее известные структуры данных, которые можно назвать «инструментами для особых случаев» — это WeakMap и WeakSet . WeakMap и WeakSet — это структуры, которые созданы для работы с объектами. Их основная фичи — слабые ссылки , благодаря которым можно избежать утечек памяти. Эти структуры подчищают за собой автоматически, когда объект, используемый в них, становится недостижимым. Однако их область применения не ограничивается только управлением памятью.</p><p><a href="https://habr.com/ru/companies/otus/articles/865512/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/otus/art</span><span class="invisible">icles/865512/</span></a></p><p><a href="https://zhub.link/tags/js" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>js</span></a> <a href="https://zhub.link/tags/%D0%B2%D0%B5%D0%B1%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>вебразработка</span></a> <a href="https://zhub.link/tags/%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>структуры_данных</span></a></p>