Обновить
128K+

JavaScript *

Прототипно-ориентированный язык программирования

237,36
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Почему баги кроссбраузерности до сих пор никуда не исчезли

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели12K

Выкатили новую фичу, а потом бэкендер со своим Firefox пишет, что у него что-то не работает? Или пользователь с Safari жалуется на неудобства? Ничего страшного: поищу причину в интернете, починю баг и продолжу использовать для разработки Chrome </sarcasm>.

В этой статье рассмотрим, почему проблемы кроссбраузерности никуда не пропали в 2026 году, и попробуем понять, как заранее определять появление ошибок.

Читать далее

Лучший хостинг для Node.js-приложений и Next.js-сайтов с SSR в 2026

Время на прочтение8 мин
Охват и читатели10K

В статье мы рассмотрим специализированные PaaS-облака и особенности хостинга сайтов с SSR (рендерингом на стороне сервера) на React (Next.js, Remix, Astro), Vue (Nuxt.js, Quasar) и Angular. Рассмотрим сильные и слабые стороны сервисов. А также рассмотрим хостинг у VPS и Serverless-провайдеров. И приведём пример деплоя Node.js приложения с BullMQ и Redis.

Читать далее

Как разделить фронтенд на модули и связать их между собой: на примере маркетплейса

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели9.2K

На примере маркетплейса разберём, как разделить приложение на feature-модули, связать сервисы через DI, организовать состояние и изолировать работу с браузерными API.

Читать далее

JS/TS библиотека для транслитераций между 50 языками (2450 комбинаций)

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели6.8K

Обычно под термином транслитерация подразумевают написание русскоязычного текста latinskimi bukvami. Однако это лишь одна сторона транслитерации — романизация.

Существует множество библиотек, которые романизируют различные языки. Ещё меньше библиотек, которые транслитерируют в обратную сторону (то есть латиницу в нелатинскую письменность). И почти нет библиотек, которые транслитерируют между самыми разнообразными письменностями и языками — например, армянский в греческий, хинди в арабский, чешский в корейский, и так далее

Более того, существующие библиотеки часто не учитывают контекст и преобразовывают побуквенно. Результаты могут быть трудночитаемыми и нарушать всевозможные языковые правила. Например, 北海道 (Хоккайдо) становится Bei Hai Dao, بغداد (Багдад) становится bGdd, и так далее

Что, если нужна бесплатная библиотека, которая живёт на нашем сервере, и которая каждый раз выдаёт предсказуемые результаты? Что, если нужна правильная, удобочитаемая транслитерация? Что, если нужна не только романизация, но и транслитерация между самыми разнообразными письменностями и языками?

В этой статье я расскажу, как я делал такую библиотеку, с какими лингвистическими особенностями столкнулся, какими инструментами пользовался, и при чём здесь ИИ.

Читать далее

React в 2026 году: вайб-кодинг, Next.js, рынок и фронтенд после прихода ИИ — интервью с Александром Ломковым

Уровень сложностиСредний
Время на прочтение37 мин
Охват и читатели11K

React давно перестал быть просто библиотекой для отрисовки интерфейсов. Вокруг него выросла огромная экосистема, а сама работа фронтенд-разработчика меняется под влиянием ИИ быстрее, чем успевают обновляться привычные roadmap. Нужно ли сегодня глубоко знать JavaScript, стоит ли учить Next.js «по умолчанию», чем React выигрывает у Angular, что не так с вайб-кодингом и останется ли вообще ручное написание кода через пять лет?

Я, Александр, автор телеграм-канала «Shulepov Code», поговорил с Александром Ломковым — фронтенд-разработчиком и автором YouTube-канала «Friendly Frontend». Обсудили рынок найма, переход из VK в Wildberries, нейросети в реальной разработке, React и его экосистему, серверный рендеринг и то, какие навыки становятся важнее самого умения писать код.  

Читать далее

Уведомления для Slack в Allure 3

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.4K

Уведомления о результатах прогонов — важный элемент удобства при работе с тестами. Вместо того чтобы каждые пять минут проверять, закончился прогон или нет, вы просто получаете сообщение в Slack. Меньше отвлекающих факторов, больше времени в состоянии потока.

В Allure Report такие уведомления были реализованы в версии 3.0 с помощью плагина для уведомлений в Slack. В этом руководстве я покажу, как настроить канал в Slack так, чтобы каждый запуск Allure Report отправлял туда сводку по результатам.

Читать далее

Бесплатный плагин для входа через VK ID на WordPress: как закрыли потребность, когда готовых решений не нашлось

Время на прочтение2 мин
Охват и читатели7.8K

Начал я делать очередной сайт на Wordpress и решил упростить регистрацию пользователям. По этому пошел по схеме вход через другие сервисы. Как стало нынче модно‑сковородно использовать авторизацию через ВК. Ее то я и решил прикрутить. Делал уже это раньше но вот сегодня столкнулся с проблемой.

И есть решение

Проектирование архитектуры плагинов для сторонних провайдеров баз данных в TypeScript-приложении

Уровень сложностиСложный
Время на прочтение2 мин
Охват и читатели10K

Я работал над архитектурой LibreDB Studio — IDE для баз данных на TypeScript, которая поддерживает несколько SQL/NoSQL баз данных.

Работая над слоем провайдеров, я пришёл к довольно строгой архитектуре провайдеров, чтобы сделать добавление новых баз данных безопаснее и сократить объём основного кода, который нужно менять.

Читать далее

Standard JSON Schema vs JSON Schema

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели11K

JSON Schema - стандарт для описания JSON. Standard JSON Schema - стандарт для… Нет, это не опечатка и не один и тот же стандарт дважды.

Читать далее

Устал листать неинтересные проекты на Kwork.ru добавил кнопку Скрыть

Уровень сложностиПростой
Время на прочтение1 мин
Охват и читатели10K

На kwork.ru/projects каждый день 50 проектов, половина не подходит. Фильтра «скрыть» нет листаешь одно и то же. Сделал расширение Kwork Hider. Кто листал, тот знает.

Читать далее

Рендеринг Angular‑приложения в Minecraft

Уровень сложностиСложный
Время на прочтение18 мин
Охват и читатели12K

Что потребуется, чтобы Angular-приложение отображалось в Minecraft и реагировало на действия игрока? Разбор собственной платформы и Renderer2, расчёта layout через Yoga, отрисовки текста и изображений блоками. В результате получается интерактивный прогноз погоды, которым можно управлять прямо из игрового мира.

Читать далее

Я просил ход, который сделал бы человек. Stockfish ответил правильным

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели9.9K

С лета у меня в браузере рядом с доской работает локальный Stockfish и подсказывает стрелкой на лучшем ходу. Люди, которые начали пользоваться, выразили одну претензию: ход верный, но ход непонятный. Я бы так никогда не сыграл — покажи, что сыграл бы я.

Читать далее

Жизненный цикл токена API: от выпуска до отзыва

Уровень сложностиСредний
Время на прочтение22 мин
Охват и читатели13K

Токены (tokens) API часто расцениваются как незначительные детали реализации.

Пользователь входит в систему, сервер создает токен, браузер сохраняет его и включает в каждый защищенный запрос (protected request). На верхнем уровне процесс выглядит просто.

Последствия для безопасности отнюдь не просты.

В этой статье рассматривается полный жизненный цикл токена API, от выпуска (issuance) до истечения срока действия (expiration) или принудительного отзыва (revocation).

Читать далее

Ближайшие события

RWC. Реактивные веб-компоненты

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели7.2K

Год назад я выложил RWC — реактивные веб-компоненты на сигналах, без JSX и шаблонного компилятора. Статью прочитали восемь тысяч человек, тридцать оставили комментарии, после чего я переписал ядро. Рассказываю, что изменилось в 3.0, и отвечаю на главные претензии из комментариев: зачем это всё, если есть Lit, и правда ли Web Components так плохи, как о них говорят.

Читать далее

ИИ уже умеет собирать микросервисы по одному промпту, но, как разработчик, я всё ещё нужен

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели63K

Каждые несколько лет (а сейчас уже и чаще) разработчиков снова хоронят.

Сначала нас должны были заменить визуальные конструкторы. Потом no-code. Потом low-code. Потом автогенерация CRUD. Потом Copilot. Теперь, кажется, пришёл финальный босс в виде больших языковых моделей, которые за вечер могут накидать backend, frontend, Docker Compose, миграции, OpenAPI, Kafka, PostgreSQL, Redis, авторизацию, тесты, README и компилятор на сдачу.

А если открыть любую соцсет, то везде: «Я сделал SaaS за 20 минут», «нейросеть написала мне приложение», «один промпт заменил команду разработки»…Всё выглядит так, будто профессии действительно место в музее рядом с перфокартами и дискетами, так как теперь обычный пользователь интернета может навайбить энтерпрайз ПО, банковское мобильное приложение и агрегатор такси. И всё это только за утро. 

Но чем больше я работаю с ИИ-инструментами, тем меньше верю в исчезновение разработчиков. Но не потому что ИИ тупой. Как раз наоборот — ИИ сейчас хорошо пишет код. Но чтобы не рассуждать о теме абстрактно, расскажу одну показательную историю. Специально возьму самый скромный масштаб из возможного: без бэкенда, без Kafka и восьми сервисов. Один фронтенд. Если совсем честно,то это будет один экран поиска. Там всё и увидим.

Читать далее

Почему видео из аниме-плеера нельзя вставить в <video>, и как я всё-таки собрал синхронный просмотр на двоих

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели7.5K

Идея была простая: смотреть аниме с друзьями так, чтобы пауза у одного означала паузу у всех. Не Discord Go Live с его артефактами и мылом, не «на счёт три жмём пробел», а честный общий плеер: кто угодно нажал — у всех перемоталось.

Я думал, это вечер работы. Получилось четыре нетривиальных проблемы, три из которых я не нашёл описанными нигде, и одна ночь отладки того, почему hls.js молча ничего не делает.

Под катом: почему прямая ссылка на видео бесполезна в браузере, как выглядит прокси с подписанными токенами и переписыванием HLS-плейлистов на лету, как синхронизировать плеер без вечного эха событий, и почему preload="none" ломает Media Source Extensions.

Читать далее

Бесплатный AI-сервер на Google Таблицах: параллельные запросы к Gemini для обработки сотен новостей

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели7.4K

Собрать бесплатный конвейер новостей на связке Google Таблицы + Gemini API + Telegram просто, пока не упрёшся в жесткий лимит Google Apps Script: 6 минут на запуск и долгое ожидание ответов LLM.

Мне требовался умный фильтр и саммаризатор сотен иноязычных отраслевых новостей по узкой теме (AI в энергосбережении). При последовательных запросах скрипт банально «умирал» по таймауту на первой же пачке.

В статье покажу конкретный рабочий приём: как распараллелить независимые запросы к Gemini через UrlFetchApp.fetchAll(), уложить обработку 50 анонсов в 20 секунд вместо двух минут и при этом не сломать бесплатные квоты API.

Читать далее

Мы сделали свой UI Kit: 6 компонентов превратились в 30+, а одна ошибка сломала разметку во всех проектах

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели5.5K

Мы сделали свой UI Kit: 6 компонентов превратились в 30+, а одна ошибка сломала разметку во всех проектах

С чего всё начиналось

Когда в проекте начинает появляться всё больше одинаковых элементов интерфейса, рано или поздно возникает вопрос: зачем каждый раз создавать один и тот же Button, Input или Select?

Мы рассматривали готовые решения, в том числе Ant Design и Material UI, но они не закрывали наши требования. Нам требовался больший контроль над внешним видом и поведением компонентов, возможность детально адаптировать их под наши задачи и учитывать требования проекта к безопасности.

Читать далее

CSS в 2026 году: где JavaScript уже не обязателен

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели10K

Когда работаешь с такими масштабными продуктами, как мы делаем в VK, быстро начинаешь ценить код, который можно не писать. Особенно если речь о небольших сценариях: открыть поповер, анимировать появление блока или подстроить поле под контент. Ещё недавно для таких задач мы почти автоматически тянулись к JavaScript. Но за последние два года CSS сильно расширил свои возможности для задач, связанных с интерфейсом.

Я Максим Кузнецов, занимаюсь оптимизацией производительности и улучшением стабильности веб-версий ВКонтакте. В этой статье расскажу, что уже можно использовать как альтернативу JS, что стоит попробовать аккуратно, а за чем пока лучше просто следить.

Читать далее

Три кнопки вместо клавиатуры: HID-кликер на ESP32 своими руками

Уровень сложностиПростой
Время на прочтение18 мин
Охват и читатели12K

Мне надоело тянуться к клавиатуре и мыши, чтобы пролистнуть ролик, — и я собрал кликер для ПК на базе ESP32. Три кнопки, наподобие пульта для презентаций: две листают ленту стрелками вверх и вниз, третья отправляет F13. Её нажатие ловит собственное расширение браузера и ставит лайк.

F13 выбрана не случайно. На большинстве клавиатур ряд функциональных клавиш заканчивается на F12, поэтому F13 гарантированно не столкнётся с чужим сочетанием. Зато событие можно перехватить в расширении и обработать по-своему.

В моём случае получилась игрушка для Firefox, но тот же принцип закрывает и рабочие задачи. SMM-специалист может быстрее модерировать посты: переключаться между ними и помечать подходящие для публикации. Специалист по контролю качества при стационарной проверке — фиксировать брак в ERP одним касанием. Всё это выполняется мышью и клавиатурой, но любой, кто оптимизировал рутину, знает: чем меньше лишних движений, тем быстрее и проще идёт работа. Человек не отвлекается и не путается.

Дальше — весь путь: от печати корпуса и схемы на ёмкостных сенсорах до кода прошивки и расширения под Firefox и Chrome. Со сметой на 450 ₽ и граблями, на которые я наступил.

Читать далее