Мотивацией для написания этого поста стали два года собеседований JS/TS-инженеров. Я интересуюсь языками и функциональным программированием, поэтому всегда «разбавлял» технические вопросы разговором о парадигмах. И заметил любопытную асимметрию.Об ООП кандидаты рассуждали уверенно — но в основном на концептуальном уровне, не вдаваясь в то, как именно ООП реализовано в JavaScript. С FP картина была другой: уверенности меньше, зато критика — конкретная и повторяющаяся: «иммутабельность дорогая по…
Привет, Хабр. Это история о том, как мы собрались и по вечерам за полгода создали интерактивный веб-проект про российское телевидение 90-х и 00-х.Сайт называется Окна.ТВ ссылка в конце. Заходите, скролльте и вспомните время, когда телевизор был нашим главным развлечением.Главный экран сайта — вид дома с окнами, таймлайн справа, десктоп Стек в двух словах: ванильный JS, собственная CMS, собственный видеоплеер, деплой в Kubernetes. По дороге познакомился с S3, OOM killer, mask-border и Safari — …
Смысл создания и использования новых библиотек и фреймворков в том, чтобы решить задачи, которые не были решены ранее. Либо, в том, чтобы решить какую-либо задачу более эффективно, чем это уже было сделано кем-то.Сегодня мы начнем разговор о задачах, которые можно решать с помощью Symbiote.js, и делать это гораздо проще и элегантнее, чем с другими фреймворками.Symbiote.js - это легкая (~6 кб brotli), но очень мощная библиотека, основанная на веб-компонентах. Ее основным отличием от конкурентов …
Всем привет! Думаю, что не ошибусь если скажу, что почти каждому фронтендеру приходится заниматься разработкой сложных форм. Те, кто уже имеют такой опыт знают, что работа с формами доставляет боль и страдания. Необходимо держать в голове все правила валидации и заполнения форм, связи между зависимыми полями, нужно как-то связывать данные формы с UI, при этом избегая лишних ререндеров.На большом проекте мы писали формы через MobX + MVC, думаю, что это не самый плохой подход для написания форм, …
Около года назад мне захотелось чуть большего от десктопного музыкального клиента, который и так все знают, чем просто “работает и ладно”. Уже тогда в нём ощущались ограничения, которые сегодня стали только заметнее. Но началось всё, конечно же, с интерфейса: он казался слишком стерильным, а возможностей кастомизации почти не было. Поиски быстро привели меня не к официальным настройкам, а в небольшое сообщество вокруг PulseSync — ещё молодого проекта, который позволял модифицировать клиент чере…
Всем привет ! Текст полностью написан человеком и не форматировался ИИ !На днях вышла локальная модель от алибабы - Qwen 3.6, весь реддит забит этой темой. И я рискнул проверить что она может в сравнении с Gemma 4 Оборудование на котором тестировал (ноутбук Asus Tuf Gaming + дискретная Nvidia rtx 4070 8GB): Софт: Windows + LMstudio + Zed IDE* сразу отвечу почему не использовал opencode/claude/pi.dev и прочие cli клиенты, так как работа tools в них слабая, многое не запускается, либо на старте д…
Frontend Status: Привет! Свежий дайджест фронтенда и AIПривет!Это 13-й выпуск Frontend Status — дайджеста по фронтенд-разработке.В этом выпуске:📺 Для тех, кто хочет делать игровые интерфейсы быстрее: видео про 2D-игры с AI и Phaser, где генеративные инструменты работают как напарник, а не как «чёрный ящик».🤖 В AI-разделе — разбор того, что уже можно брать в прод: micro-ml на Rust/WASM, кейс крупной техкомпании с роем из 50+ агентов, Flint Alpha и практическая интеграция Claude с видео.🛡️ По без…
Как всё началосьВ августе 2024 я наткнулся на проблему в рабочем проекте на Next.js. Несколько страниц импортировали константы из общего файла через barrel (index.ts с реэкспортами). Каждая страница использовала 2-3 значения, но в бандл попадало всё — десятки неиспользуемых экспортов. Разница оказалась колоссальной: когда я добавил sideEffects: false и перешёл на direct export — бандл уменьшился в два раза.Я завёл issue на GitHub, покопался, нашёл обходной путь и закрыл. Но вопрос не отпускал: …
Привет, All!Как вам идея, отказаться от тегов вообще и делать WEB-проекты исключительно на классах? А еще, чтобы и клиентский, и серверный коды шли рядом, как в десктопном приложениии. И чтобы с одними и теми же переменными можно было работать и в PHP, и в JavaScript.«Зачем?» - сапросит кто-то. Отвечу: чтобы можно было строить не DOM-элементы, а объекты предметной области бизнес-процессов, которые автоматизирует мое приложение. И чтобы не тратить время на разные async, promise, ajax и т.д., пус…