Category : javascript

javascript
Почему JS/TS — не функциональный язык (и почему это важно понимать)

Мотивацией для написания этого поста стали два года собеседований JS/TS-инженеров. Я интересуюсь языками и функциональным программированием, поэтому всегда «разбавлял» технические вопросы разговором о парадигмах. И заметил любопытную асимметрию.Об ООП кандидаты рассуждали уверенно — но в основном на концептуальном уровне, не вдаваясь в то, как именно ООП реализовано в JavaScript. С FP картина была другой: уверенности меньше, зато критика — конкретная и повторяющаяся: «иммутабельность дорогая по…

  • понедельник, 20 апреля 2026 г. в 00:00:10
javascript
108 окон: как команда без разработчиков и бюджета построила Интерактивный дом-таймлайн про ТВ 90-х

Привет, Хабр. Это история о том, как мы собрались и по вечерам за полгода создали интерактивный веб-проект про российское телевидение 90-х и 00-х.Сайт называется Окна.ТВ ссылка в конце. Заходите, скролльте и вспомните время, когда телевизор был нашим главным развлечением.Главный экран сайта — вид дома с окнами, таймлайн справа, десктоп Стек в двух словах: ванильный JS, собственная CMS, собственный видеоплеер, деплой в Kubernetes. По дороге познакомился с S3, OOM killer, mask-border и Safari — …

  • понедельник, 20 апреля 2026 г. в 00:00:08
javascript
Symbiote.js: суперспособности для веб-компонентов

Смысл создания и использования новых библиотек и фреймворков в том, чтобы решить задачи, которые не были решены ранее. Либо, в том, чтобы решить какую-либо задачу более эффективно, чем это уже было сделано кем-то.Сегодня мы начнем разговор о задачах, которые можно решать с помощью Symbiote.js, и делать это гораздо проще и элегантнее, чем с другими фреймворками.Symbiote.js - это легкая (~6 кб brotli), но очень мощная библиотека, основанная на веб-компонентах. Ее основным отличием от конкурентов …

  • понедельник, 20 апреля 2026 г. в 00:00:07
javascript
Год с React Hook Form и Zod: меньше кода, но не без нюансов

Всем привет! Думаю, что не ошибусь если скажу, что почти каждому фронтендеру приходится заниматься разработкой сложных форм. Те, кто уже имеют такой опыт знают, что работа с формами доставляет боль и страдания. Необходимо держать в голове все правила валидации и заполнения форм, связи между зависимыми полями, нужно как-то связывать данные формы с UI, при этом избегая лишних ререндеров.На большом проекте мы писали формы через MobX + MVC, думаю, что это не самый плохой подход для написания форм, …

  • понедельник, 20 апреля 2026 г. в 00:00:05
javascript
Лицензии уходят, музыка остаётся: как я превратил тему для музыкального клиента в runtime-аддон с б…

Около года назад мне захотелось чуть большего от десктопного музыкального клиента, который и так все знают, чем просто “работает и ладно”. Уже тогда в нём ощущались ограничения, которые сегодня стали только заметнее. Но началось всё, конечно же, с интерфейса: он казался слишком стерильным, а возможностей кастомизации почти не было. Поиски быстро привели меня не к официальным настройкам, а в небольшое сообщество вокруг PulseSync — ещё молодого проекта, который позволял модифицировать клиент чере…

  • понедельник, 20 апреля 2026 г. в 00:00:04
javascript
Как я тестировал локально новый Qwen 3.6 и Gemma 4

Всем привет ! Текст полностью написан человеком и не форматировался ИИ !На днях вышла локальная модель от алибабы - Qwen 3.6, весь реддит забит этой темой. И я рискнул проверить что она может в сравнении с Gemma 4 Оборудование на котором тестировал (ноутбук Asus Tuf Gaming + дискретная Nvidia rtx 4070 8GB): Софт: Windows + LMstudio + Zed IDE* сразу отвечу почему не использовал opencode/claude/pi.dev и прочие cli клиенты, так как работа tools в них слабая, многое не запускается, либо на старте д…

  • воскресенье, 19 апреля 2026 г. в 00:00:11
javascript
Frontend Status: свежий дайджест фронтенда и AI — 18.04.2026

Frontend Status: Привет! Свежий дайджест фронтенда и AIПривет!Это 13-й выпуск Frontend Status — дайджеста по фронтенд-разработке.В этом выпуске:📺 Для тех, кто хочет делать игровые интерфейсы быстрее: видео про 2D-игры с AI и Phaser, где генеративные инструменты работают как напарник, а не как «чёрный ящик».🤖 В AI-разделе — разбор того, что уже можно брать в прод: micro-ml на Rust/WASM, кейс крупной техкомпании с роем из 50+ агентов, Flint Alpha и практическая интеграция Claude с видео.🛡️ По без…

  • воскресенье, 19 апреля 2026 г. в 00:00:10
javascript
Почему ваш бандл тяжелее чем должен быть — тестирую tree shaking на 7 бандлерах

Как всё началосьВ августе 2024 я наткнулся на проблему в рабочем проекте на Next.js. Несколько страниц импортировали константы из общего файла через barrel (index.ts с реэкспортами). Каждая страница использовала 2-3 значения, но в бандл попадало всё — десятки неиспользуемых экспортов. Разница оказалась колоссальной: когда я добавил sideEffects: false и перешёл на direct export — бандл уменьшился в два раза.Я завёл issue на GitHub, покопался, нашёл обходной путь и закрыл. Но вопрос не отпускал: …

  • суббота, 18 апреля 2026 г. в 00:00:11
javascript
Я потратил 10 лет на создание легкого PHP фреймворка для разработки WEB-приложений

Привет, All!Как вам идея, отказаться от тегов вообще и делать WEB-проекты исключительно на классах? А еще, чтобы и клиентский, и серверный коды шли рядом, как в десктопном приложениии. И чтобы с одними и теми же переменными можно было работать и в PHP, и в JavaScript.«Зачем?» - сапросит кто-то. Отвечу: чтобы можно было строить не DOM-элементы, а объекты предметной области бизнес-процессов, которые автоматизирует мое приложение. И чтобы не тратить время на разные async, promise, ajax и т.д., пус…

  • суббота, 18 апреля 2026 г. в 00:00:09