Category : javascript

javascript
Архитектура от тестов: Проектируем код, который легко поддерживать

Привет! Мы, фронтендеры, постоянно в поиске идеальной архитектуры. Слои, фича-слайсы, атомарный дизайн, фрактальность... Все эти подходы имеют право на жизнь. Но сегодня я хочу поделиться не столько новой структурой папок, сколько способом мышления, который сделает любой ваш код лучше, а любую архитектуру – яснее.Идея проста и элегантна: код, который легко и удобно тестировать, — это хорошо спроектированный код. Точка. Представьте, что вы строите дом и в первую очередь думаете о том, как его бу…

  • суббота, 10 мая 2025 г. в 00:00:08
javascript
Как ускорить написание повторяющегося кода в 10 раз

Привет, Хабр! Меня зовут Никита и я пишу сайты на React.Эта статья — про создание шаблонов для ускорения написания кода, знакомство с двумя расширениями для VSCode, которые помогают создавать новые папки/файлы на потоке — то есть много и часто. Возможно, эти плагины пригодятся и вам.В статье разберём:ПроблемуКакие есть решенияПлагины для VSCodeНемного теории и практикиЗаключениеПроблема: Рутина замедляет прогрессЧасто приходится заниматься создании множества однотипных компонентов, включающих в…

  • суббота, 10 мая 2025 г. в 00:00:07
javascript
Есть ли жизнь на GitVerse? Расширения

Я давний пользователь GitHub. Можно сказать, что на моих глазах он вырос из самобытного GIT-хостинга до внушительной экосистемы для разработчиков под патронажем само́й Microsoft, и по факту стал индустриальным стандартом.Со временем я стал задаваться вопросом — можем ли мы в своей стране своими силами создать аналогичную экосистему? В которой нет проблем с платежами, не удаляют репозитории и аккаунты из-за поездки в Крым, где российские компании заказчики не опасаются хостить свои коммерческие …

  • пятница, 9 мая 2025 г. в 00:00:05
javascript
Как сделать мобильное приложение, если у тебя лапки? Путь от PWA до TWA

Привет, Хабр! Меня зовут Влад, и я тот самый человек, который привык использовать костыли в решении задач. По крайней мере, я считаю, что это лучший подход при подготовке MVP. Яркий пример — прототипирование простых скриптов под микроконтроллеры на MicroPy или десктопных приложений на Electron. Но, как оказалось, это не все виды ухищрений в разработке. Если вы веб-разработчик, но руки «чешутся» написать мобильное приложение, варианты есть. В этой статье я расскажу, как создать собственное про…

  • пятница, 9 мая 2025 г. в 00:00:04
javascript
Измерение покрытия UI тестами. Следующий уровень

Представьте: вы заходите в рабочий чат, а там коллега пишет — "Смотри, что я нашёл и прикрутил к нашим тестам! Кажется, у нас с покрытием беда." И кидает скриншот.Естественно, у вас начинается внутренняя буря. Как? В смысле? Я пять лет клепал эти пять тысяч тест-кейсов, автоматизировал их с любовью и болью, а тут — «не всё покрыто»? Это что вообще за инструмент? Зачем ты мне это показал? Убери это немедленно. А потом вы просыпаетесь в холодном поту — вроде бы это был сон... но нет. Это …

  • четверг, 8 мая 2025 г. в 00:00:07
javascript
Zod v4: Стал в 17 раз медленнее? (и почему это важно)

Всем привет! 👋Я — Дмитрий, автор Sury — самой быстрой библиотеки для работы со схемами. Если вы фанат Zod (а кто не фанат?), эта статья для вас. Сегодня я поделюсь неожиданными результатами тестов производительности Zod v4, расскажу, что это значит для вас, и как избежать подводных камней.Zod v4: Стал в 17 раз медленнееб и никто этого не заметил 🙈Начнём с небольшого кликбейта)Это действительно так, но, конечно, не вся правда. Давайте разберёмся.Недавно, готовясь к большому релизу Sury v10, я ре…

  • четверг, 8 мая 2025 г. в 00:00:06
javascript
JavaScript: структуры данных и алгоритмы. Часть 11

Привет, друзья! В этой серии статей мы разбираем структуры данных и алгоритмы, представленные в этом замечательном репозитории. Это одиннадцатая часть серии. Сегодня мы рассмотрим несколько простых, но интересных алгоритмов машинного обучения, а также один весьма любопытный статистический алгоритм. Код, представленный в этой и других статьях серии, можно найти в этом репозитории. Интересно? Тогда прошу под кат. Первая часть Вторая часть Третья часть Четвертая часть Пятая часть Шестая часть С…

  • среда, 7 мая 2025 г. в 00:00:07
javascript
Всё, что можно автоматизировать, должно быть автоматизировано. Даже aria-label

Я написала свой ESLint-плагин для доступности. Вот как и зачем.Я люблю автоматизацию: если что-то можно доверить инструменту, это стоит делать. Особенно то, что повторяется из проекта в проект: aria-label, alt, tabIndex.Линтер - это как фоновый напарник: один раз настроил - и он работает. Не устает, не отвлекается, не забывает. А в контексте доступности, где многое завязано на деталях, это особенно важно.Почему мне захотелось написать свой плагин?На самом деле, всё началось не с бага. Скорее - …

  • среда, 7 мая 2025 г. в 00:00:06
javascript
Как делать внешние редиректы с JavaScript?

Вопрос перенаправлений кажется простым или не особо серьезным для обдумывания, но в будущем может вызвать проблемы при слишком халатном подходе.Здесь я хочу рассказать о том, как делать внешние редиректы безопасно и удобно. Для внутренних перенаправлений пользуйтесь History API.Давайте сравним самые популярные методы для перенаправления (с добавлением записей в историю браузера):window.location.hrefwindow.location.assignСходстваБазово: оба способа перенаправляют на другую страницу с новой запис…

  • вторник, 6 мая 2025 г. в 00:00:04