Category : javascript

javascript
Документирование фронтенд-приложений: обзор JSDoc и Storybook

В современной веб-разработке качественная документация так же важна, как и качественный код. Когда ваше приложение разрастается до десятков или сотен компонентов, функций и модулей, становится практически невозможно удерживать в памяти все детали их работы. Хорошая документация не только облегчает поддержку проекта в долгосрочной перспективе, но и значительно ускоряет вхождение новых разработчиков в команду.В этой статье мы рассмотрим два популярных подхода к документированию фронтенд-кода: JSD…

  • суббота, 9 августа 2025 г. в 00:00:09
javascript
История разработки офлайн‑медиасервера: от идеи до open-source проекта

💡 Идея Всё началось с простой, но насущной проблемы: я хотел быстро передать файлы между своими устройствами — без интернета, без Bluetooth и без облаков. Существующие способы были либо медленными, либо ограниченными: Bluetooth — устаревший и слишком медленный для видео и больших папокОблачные сервисы — требуют авторизации, интернета, да ещё и часто сжимают файлыAirdrop — работает только между устройствами AppleФлешка — не всегда под рукой, да и не подходит для телефонов🧠 Тогда я задал себе …

  • суббота, 9 августа 2025 г. в 00:00:07
javascript
Перестаньте использовать CustomEvent

Привет, Хабр! Это моя первая статься, хоть и перевод, но все же, готов выслушать конструктивную критику)Я часто вижу, как веб-разработчики используют CustomEvent в коде своих компонентов. Настолько часто, что у многих складывается впечатление, будто CustomEvent — единственный способ создавать custom события (с маленькой "c"), а то и вообще единственный способ генерировать собственные события. Это понятно. Это прямо указано в названии: "Пользовательское" событие. Создается впеча…

  • суббота, 9 августа 2025 г. в 00:00:07
javascript
React Custom Hook: useMediaQuery

В этой серии статей мы отправимся в путешествие по миру пользовательских хуков React, открывая для себя их огромный потенциал для улучшения ваших проектов разработки. Сегодня мы сосредоточимся на хуке «useMediaQuery», одном из многих тщательно разработанных хуков, доступных в коллекции пользовательских хуков React. Github: https://github.com/sergeyleschev/react-custom-hooks import { useState, useEffect } from "react" import useEventListener from "../useEventListener/useEventListen…

  • пятница, 8 августа 2025 г. в 00:00:08
javascript
Dependency Injection в JavaScript: зачем он вам нужен

Вы когда-нибудь оказывались по уши в JavaScript‑приложении, следуя за цепочкой вызовов require() как по хлебным крошкам, чтобы понять, как всё связано? Один модуль импортирует другой, тот тянет глобальную переменную, и вот вы уже гоняетесь за ссылками по всему коду, просто чтобы протестировать один компонент. Это как готовить блюдо, где каждый ингредиент спрятан в отдельном шкафу — вы тратите половину времени на поиски, а не на готовку. Именно эту проблему и решает dependency injection (внедрен…

  • пятница, 8 августа 2025 г. в 00:00:07
javascript
Принцип единой ответственности SOLID в React

Всем привет! Меня зовут Дмитрий, и я руководитель фронтенд-разработки в компании Интелси.Сегодня хочу рассказать о принципе единственной ответственности (Single Responsibility Principle) — первом из пяти принципов SOLID, сформулированных Робертом Мартином в его книге "Agile Software Development: Principles, Patterns, and Practices". Суть этого принципа звучит так: «Класс должен иметь только одну причину для изменения» (A class should have only one reason to change).Если вы скажете, что …

  • пятница, 8 августа 2025 г. в 00:00:06
javascript
Когда if-else не нужен: знакомство с тернарным оператором и switch в JS

Привет! Я — Александр Дудукало, автор базового курса по JavaScript. Если вы читаете эту статью, значит, вероятно, уже знакомы с одной из основных логических конструкций в JavaScript — if-else. Если нет, рекомендую сначала прочитать предыдущий материал, где я подробно разобрал эту тему.В этой же статье мы поговорим о других способах управления логикой в коде — тернарном операторе и конструкции switch. Да, звучит сложно и, возможно, пугающе. Но я уверяю, все очень просто. В итоге вы узнаете, когд…

  • пятница, 8 августа 2025 г. в 00:00:05
javascript
Как я устал вручную писать сервис-воркеры и сделал next-pwa-pack, чтобы больше не страдать

Сколько лет уже кто-то говорит: «А можно, чтобы оно работало без интернета и ставилось на домашний экран?» И каждый раз после этой фразы начинается медленный спуск в персональный ад — ты лезешь в документацию по PWA, где всё разваливается на ровном месте, service worker живёт своей жизнью, кеш то работает, то ломается, App Router рушит весь твой кастомный пайплайн, а пользователи сидят на старых версиях, потому что вручную обновлять им, конечно, влом.Словом, если ты когда-то пробовал прикрутить…

  • пятница, 8 августа 2025 г. в 00:00:04
javascript
Удалить полпроекта: как мы переписывали MobX‑сторы на React Query в большом Next.js‑проекте

Привет. Я Дима Рагозин, фронтенд-разработчик в KTS. Эту статью я хочу начать с предыстории.Полтора года назад на проекте для одного крупного клиента мы получили задачу — ускорить главную страницу. К тому моменту в кодовой базе уже жили два отдельных фронтенд-приложения под две разные платформы — CSR-версия (Client Side Rendering) и SSR‑версия (Server Side Rendering), — а MobX‑сторы все время жизни проекта разрастались вместе с функциональностью.Каждый новый экран приносил еще один класс (а то и…

  • пятница, 8 августа 2025 г. в 00:00:03