Пролог: Знакомая боль Привет, Хабр! У каждого JS-разработчика есть своя история. История о том, как он впервые встретился с этим. Сидишь, пишешь код, всё логично, всё под контролем. И тут, чтобы проверить одну мелочь, открываешь консоль и из чистого любопытства пишешь: [] + {} // Получаешь: "[object Object]" // Хм, ладно, массив привел себя к строке, а объект стал... объектом. Логично. {} + [] // Получаешь... 0 ??? // ЧТО?! Стоп. Как это вообще возможно? Мы только что поменяли местами …
Привет, Хабр! Сегодня хочу представить вам HTML Builder — визуальный редактор HTML-структур с drag-and-drop интерфейсом, который я разрабатываю как часть библиотеки нестилизованных компонентов vue-dnd-kit/components (по аналогии с shadcn). Проект находится в стадии бета-тестирования зачаточном виде, и мне бы хотелось получить обратную связь от сообщества разработчиков и дизайнеров.Что такое HTML Builder?HTML Builder — это компонент для визуального создания и редактирования HTML-структур без нео…
Всем привет! Сегодня хочу разобрать кейс, с которым сталкивается почти каждый Angular-разработчик на существующем проекте.Часто в компонентах можно встретить такой код:public user: User | null = null; public posts: Post[] | null = null; public stats: Stats | null = null; constructor(private readonly apiService: ApiService) {} public ngOnInit(): void { this.apiService.getUser().subscribe((user) => this.user = user); this.apiService.getPosts().subscribe((posts) => this.posts = pos…
Всем привет! Сегодня я хочу поделиться историей одного странного и затянувшегося расследования, главным героем которого стал мой компьютер, а антагонистом — веб-версия Telegram. Эта история не только о поиске прожорливого процесса, но и о глубоких аномалиях в поведении современных веб-приложений, которые вызывают серьезные вопросы. Пролог: Внезапный враг внутри ChromeЯ не системщик и не шарю особо в безопасности и в том как бы схватить за хвост призрака, даже если он майнер, думаю в комментария…
Неделя назад мой проект был "швейцарским ножом в картонной коробке". Сегодня это настоящая платформа с PWA, AI-анализом по зонам, системой защиты от ботов, отслеживанием износа снаряжения, прогнозом погоды для маршрутов и детальной аналитикой клубов. Рассказываю, что изменилось под капотом и почему это важно.Привет, Хабр! Снова на связи Александр, создатель Peakline. Прошла неделя с момента публикации первой статьи о проекте, и я обещал рассказывать о развитии. Но даже я не ожидал таког…
В данной статье мы подробно рассмотрим процесс настройки среды unit-тестирования веб-приложений на базе React и Next.js с использованием Jest и React Testing Library. Расскажем об установке необходимых зависимостей, создании конфигурационных файлов, настройке Babel и TypeScript, подключении SCSS и SVG, а также организации структуры проекта. Особое внимание уделено специфике настройки Jest в среде Next.js. Материал будет полезен для frontend-разработчиков и команд разработки, которые работают с…
Кажется, мы окончательно запутались в терминах.За последнюю неделю меня назвали вайб-кодером раз 20. Не то, чтобы меня это как-то оскорбляло, каюсь, пишу код в Cursor, но просто... Это ведь не так - просто по определению. Похожие чувства я испытывал, когда хакатонами стали называть любые мероприятия с кодингом, а их участников - хакерами. Но язык - штука живая, и писать душную статью о том, как мы все неправильно юзаем термины - точно не то, на что я хочу убить вечер воскресенья.В этой статье я…
Привет, Хабр! Недавно я представил вам Vue DnD Kit — библиотеку для создания интерфейсов с перетаскиванием в Vue 3. Сегодня хочу рассказать о новом пакете vue-dnd-kit/components, который значительно упрощает разработку сложных drag & drop интерфейсов.Важно: Эта публикация — краткая новость о выходе пакета компонентов. Для полноценных примеров и подробной документации рекомендую перейти на официальный сайт документации.⚠️ Статус проекта: Пакет находится в активной разработке (бета-версия). A…
Кликджекинг (подделка UI) — известный приём обмана пользователей интернета, когда поверх видимой страницы располагается невидимый слой, куда загружается фальшивка. То есть пользователю кажется, что он вводит пароль на доверенной странице, но на самом деле вводит его в стороннюю форму, которая принадлежит злоумышленнику. В последние годы его риск значительно снизился, потому что все браузеры по умолчанию запретили межсайтовые куки, в то время как самые опасные варианты использования требуют а…