В предыдущих статьях мы подробно рассмотрели воркеры в JavaScript. В этой уделим внимание похожему на них механизму, созданному для параллельных вычислений. В модуле child_process, определены функции для запуска других программ как дочерних процессов.Если воркеры запускают отдельный поток внутри одного процесса в котором работает программа, то модуль child_process порождает новый процесс в ОС, что является гораздо более тяжёлой операцией. Архитектура многопоточки в JavaScript, такова что потоки…
Привет, Хабр! С вами Карлен, Lead Fullstack разработчик в ITFB Group.Для любого специалиста в веб-разработке DevTools — это незаменимый инструмент диагностики. Однако его истинная мощь часто остаётся «в тени»: многие используют лишь базовый функционал, упуская из виду целый арсенал возможностей для тонкой настройки и глубокого анализа.В этой статье я хочу сосредоточиться на практических приёмах, которые ежедневно использую сам. Мы пройдём путь от эффективной работы с консолью до анализа произво…
Знакомо чувство, когда читаешь документацию, а через десяток страниц уже не помнишь, что именно успел изучить? Или когда возвращаешься к старой статье и не можешь понять – ты уже видел эту ссылку или нет?В эпоху информационного перегруза даже закладки перестают быть спасением – они просто копятся где‑то на панели, а на странице по‑прежнему нет никаких намеков, что ты здесь уже был.Но что если заставить браузер самому отмечать ссылки, которые у вас уже сохранены? Чтобы слева от каждой знакомой с…
В очередной раз столкнулся с тем, что разработчик игры (в качестве демо-версии программных функций) использовал генератор случайных чисел "в лоб", что повлекло за собой повторы ходов (игра была "морской бой", и клетка, по которой стрелял компьютер определялось как Math.floor(Math.random()*100), что подразумевает бесконечное повторение ходов). Поэтому хочу предложить простой и эффективный способ создать последовательность случайных чисел без повторения. Этот способ основан на пер…
После работы над множеством фронтенд- и full-stack-проектов (в основном React + TypeScript + какой-нибудь сервер/бэкенд), я постоянно возвращаюсь к одному и тому же небольшому набору паттернов. Они добавляют структуру, снижают когнитивную нагрузку и делают кодовую базу поддерживаемой даже при росте.Это не революционные идеи — просто прагматичные решения, которые хорошо работают в разных приложениях. Вот текущий набор, который я использую почти всегда.1. React Query + фабрика ключей запросов (Qu…
Всем привет, на связи снова я — Дмитрий, React-разработчик. И сегодня хочу поднять тему, которая на первый взгляд кажется простой, но на практике может доставить немало сюрпризов - округление и форматирование чисел в интерфейсе.Изначально может показаться, что здесь сложного практически ничего нет: есть toFixed() и toLocaleString(), но практика показывает, что реальные интерфейсы почти никогда в это не укладываются.Почему? Потому что в разных диапазонах чисел пользователи ждут разного поведения…
Команда JavaScript for Devs подготовила перевод большой практической статьи о создании игрового движка с нуля — без шейдеров, GPU-магии и «взрослых» фреймворков. Автор шаг за шагом показывает, как из простых веб-примитивов вырастает полноценная игра, а затем — универсальный движок, и почему такой подход даёт больше свободы и выразительности, чем готовые решения.Мы собираемся написать игровой движок на JavaScript — без AI, и под AI я имею в виду LLM. Да, ребята, это будет олдскул. Если, конечно,…
Пока Я нахожусь в процессе написания второй статьи из цикла про capacitor, решил выпустить в виде статьи перевод анонса Capacitor 8 с замечаниями по миграции с предыдущей версии. Статья предназначена для тех, кто уже использует платформу в продакшене и не подписан на новости платформы. Если у вас есть приложение на Capacitor 7, переход на новую версию вполне логичен.В статье разберём:какие изменения появились в Capacitor 8;зачем имеет смысл обновляться сейчас;как выглядит миграция с версии 7 на…
Привет, Хабр!Многие разработчики пишут код в условиях неопределенности. Перечислим их:Недостаток требований"В первый раз". Новая задача через исследованиеТоропятсяЗнают только некоторые приемы, их используют вездеНе погружаются глубже в задачуПрименяют допущения, которые работают не во всех случаяхВ данной статье хочу разобрать простейшую задачу с собеседования. Уровень задачи элементарный, но как показывает практика, этот инструментарий регулярно упускается из виду.ВведениеЭто не конкр…