Category : javascript

javascript
Safe-fetch 1.0: от библиотеки к экосистеме за 72 часа

Три дня назад я опубликовал статью про safe-fetch — библиотеку, которая убирает try/catch из HTTP-запросов. Вчера статья набрала 8,5K просмотров и 64 добавления в закладки. А сегодня представляю safe-fetch 1.0 — уже не просто библиотеку, а целую экосистему.Ссылка на первую статьюИстория о том, как фидбек сообщества за 72 часа превратил обертку над fetch в полноценную платформу для типобезопасного HTTP.Как всё началось1 сентября выпустил safe-fetch 0.1.0 и написал статью. Идея простая: вместо tr…

  • суббота, 6 сентября 2025 г. в 00:00:03
javascript
librats: новая библиотека для распределённых P2P-приложений

Всем привет! Я являюсь создателем распределённого поисковика rats-search на базе DHT (GitHub). Его принцип работы довольно прост: поисковик собирает торренты у всех участников сети и формирует большую распределённую базу для поиска, включая метаданные (например, описания и прочую информацию).В этой статье я хочу рассказать о своей новой библиотеке для построения распределённых приложений (p2p), где знание IP-адресов участников не обязательно, а поиск ведётся через различные протоколы — DHT, mDN…

  • пятница, 5 сентября 2025 г. в 00:00:11
javascript
Хватит писать try/catch вокруг fetch: история о том, как я устал ловить ошибки

"You can't have errors in your code if you wrap the entire codebase in a try/catch block"Этот мем смешной, пока не осознаешь, что в реальных проектах мы именно так и поступаем. Только заворачиваем не весь код сразу, а каждый HTTP-запрос по отдельности.Пишешь fetch и рефлекторно добавляешь try/catch. Где-то словил TypeError, где-то таймаут, где-то сервер вернул 500. В итоге половина кода превращается в кашу проверок, а другая половина - в обработчики ошибок.Я годами так делал, пока н…

  • пятница, 5 сентября 2025 г. в 00:00:10
javascript
Календарь домашних тренировок — 10 улучшений в пет-проекте

5 месяцев назад я публиковал материал про пет-проект календаря домашних тренировок. Сегодня хочу рассказать, что было сделано мной за прошедшее с тех пор время.Самим приложением пользуюсь регулярно. На главной странице для незарегистрированных пользователей в качестве примера как раз показывается моя статистика. Помимо меня есть ещё 53 зарегистрированных пользователя с подтверждённым email.Исходный код приложенияВидео про разработкуFrontend: Typescript, Vite, Vue, Tanstack Query, Vitest, Vue I1…

  • пятница, 5 сентября 2025 г. в 00:00:09
javascript
Обработка исключений на JS – неудобная, но не безнадежная

Привет, Хабр! Меня зовут Владимир, я фронтенд-разработчик в Rusprofile. Давайте поговорим о работе с исключениями.Ситуация: пишешь код на JS, хочешь обработать исключение, пробрасываешь throw, ловишь его с помощью try-catch. Но добавим нюанс: пусть это нужно сделать для setTimeout. Эта функция использует окружения браузера – не JS-функция, асинхронная. // Не сработает try { setTimeout(() => { throw new Error('Ошибка'); }, 0); } catch (e) { // Этот код никогда не выполнится …

  • пятница, 5 сентября 2025 г. в 00:00:08
javascript
Настройка ESLint и Prettier в веб-приложении на Next.js и TypeScript

Когда команда разработчиков начинает активно расти, неизбежно возникают вопросы консистентности кода. Разные стили написания, различные подходы к форматированию и отсутствие единых стандартов могут серьезно замедлить разработку и усложнить поддержку проекта.В данной статье мы рассмотрим пошаговую настройку ESLint и Prettier на примере нашего веб-приложения, построенного на Next.js и TypeScript.ВведениеДля обеспечения качества кода в нашем проекте мы используем комбинацию проверенных инструменто…

  • пятница, 5 сентября 2025 г. в 00:00:06
javascript
It's a match

С ростом сложности фронтенда разработчики начали уделять больше внимания архитектуре. Кто-то предпочитает «чистую», кто-то — её производные, например, FSD. В той или иной степени этот вопрос волнует многих. В данной статье я предлагаю присмотреться повнимательнее к аспекту, который часто остаётся в тени при обсуждении архитектуры, — к маршрутизации.Давайте вспомним, как мы строим роутинг в наших приложениях. В примере ниже — react-router-dom, но в других фреймворках/библиотеках всё примерно так…

  • пятница, 5 сентября 2025 г. в 00:00:05
javascript
Искусство проектирования URL: Роутинг, Query и Hash параметры

Привет, Хабр! Меня зовут Алексей Фомин, я Technical Lead во Frontend в компании Devs Universe. В своей работе я часто сталкиваюсь с тем, что даже опытные разработчики не всегда задумываются о проектировании URL-структуры приложения, а ведь это критически важный элемент пользовательского опыта, SEO и архитектуры. В этой статье я хочу системно разобрать анатомию URL и дать практические рекомендации по его проектированию.Содержание Анатомия URL: из чего он состоит?Иерархия и структура (Правильное …

  • пятница, 5 сентября 2025 г. в 00:00:05
javascript
Создание приложения для сопоставления резюме с помощью tRPC, NLP и Vertex AI

Создание приложения для сопоставления резюме с помощью tRPC, NLP и Vertex AIНедавно я сделал небольшое приложение на TypeScript, которое сравнивает PDF-резюме с вакансиями. Мне нужен был быстрый способ прототипировать API, поэтому я выбрал tRPC для бэкенда.tRPC — это RPC-фреймворк с ориентацией на TypeScript, который обещает «end-to-end typesafe APIs» (сквозную типизацию API), то есть я могу делиться типами между клиентом и сервером без написания схем OpenAPI или GraphQL SDL.На практике это озн…

  • четверг, 4 сентября 2025 г. в 00:00:07