Обновить
128K+

JavaScript *

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

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

Внутри Telegram Serverless: код, БД и Mini App из коробки

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

Недавно команда Telegram выкатила решение, которое закрывает все эти вопросы разом — нативную платформу Serverless (beta) прямо внутри @BotFather. Теперь запускать серверную логику бота на JavaScript, хранить данные в реляционной БД и раздавать фронтенд для Mini App можно непосредственно в облаке Telegram без собственного сервера.

В этой статье разберём, как устроен tgcloud изнутри, почему его документация идеально заточена под разработку с помощью ИИ-агентов, и посмотрим на реальный кейс: как я поднял на этом стеке игру Wordle (wordslebot) с единым стейтом для чата и Mini App, системой друзей, лобби, мультиплеерными комнатами и внутриигровым чатом.

Читать далее

От HTML‑таймера к TypeScript. Как менялась Kapsula

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

У меня Kapsula началась с таймера рабочего дня. Один HTML-файл, который написал ИИ. Открываешь, нажимаешь кнопку, он отсчитывает время. Потом гаснет экран телефона — и выясняется, что с напоминанием всё сложнее, чем казалось в браузере.

Про будильники и устройство оболочки я уже рассказывал. С тех пор приложение дошло до версии 0.5, и задача немного сдвинулась. Теперь в нём можно запускать отдельные JavaScript- и TypeScript-файлы, редактировать сохранённый код и возвращаться к своим данным после изменений.

Хочу показать, что получилось, на простом трекере тренировок. Добавить подход, закрыть приложение, открыть завтра, попросить ИИ что-нибудь поменять. Довольно обычные действия. Вот на них и становится видно, насколько полезна вся эта история с «приложением из чата».

Читать далее

Среда исполнения JavaScript в браузере по стандарту HTML: агенты, event loop, task'и и микрозадачи

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

Обычно браузер представляют так: у каждой вкладки свой поток и свой event loop, а промис срабатывает раньше таймера, потому что микрозадачи приоритетнее макрозадач. На практике этого хватает, но в стандарте HTML всё устроено иначе. Вот три примера:

Зависшая вкладка может подвесить соседнюю, например ту, которая открыла её через window.open().

Один и тот же код может выдать разный порядок вывода, и всё зависит от того, кто его вызвал.

Слова «макрозадача», которое звучит на каждом собеседовании, в стандарте нет: то, что им называют, - просто обычная task.

Разобрать по стандарту

Как я подружил блок‑головоломку с Шопеном на WebAudio

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

Я делаю Blocturne, головоломку с блоками для Telegram. Механика знакомая по Block Blast: поле 8×8, три фигуры в лотке, собираешь ряды и столбцы. Сверху прикручен подсчёт как в Balatro: фишки умножаются на множитель, между раундами лавка с предметами. Но рассказать хочу про звук, потому что с ним я провозился дольше, чем со всем остальным.

Читать далее

React 19: разделяем логику и разметку, тестируем с Shallowly и Vitest

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

На примере панели профиля вынесем логику и подготовку данных в useSetup[Component], а в компоненте оставим разметку. Затем отдельно проверим setup-хук, компонент через Shallowly и взаимодействие через React Testing Library. В конце — полный пример с Vitest, который можно забрать и запустить.

Читать далее

Карандашный набросок, который заливается акварелью: разбираю эффект на SVG без библиотек

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

Делал интерактивную открытку на день рождения и хотел, чтобы картинка не просто появлялась, а «рисовалась»: сначала карандашные линии, потом по касанию её заливает акварель, причём с рваным краем, как у краски, которая впитывается в бумагу.

Готовых решений под такое не нашёл. Видео не подходило: нужна была реакция на тап и чёткость на любом экране. В итоге всё собралось на чистом SVG, паре фильтров и небольшом количестве JS. Ниже разбираю по шагам, с кодом и граблями, на которые наступил.

Читать далее

Как я добавил лицо голосовому ИИ на Яндексе: Simli, Anam и проверка на iPhone

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

У моего голосового ИИ-администратора Айки был голос на Yandex Realtime, но не было лица. Я добавил его поверх уже работающего голоса: сервис аватара получает готовый звук и двигает под него губами.

Сравнил Simli и Anam на одном портрете и одном голосе. По дороге разбирался с паузой перед ответом, запуском видео на iPhone и с тем, что на моём мобильном интернете без VPN видео не подключилось. Для второго персонажа выяснилось, что портрет выглядел фальшиво не из-за лица, а из-за пустого фона за ним.

А при проверке перед публикацией нашлась гонка в отмене подключения, которую я пропустил.

Читать далее

React 19.3: что реально поменялось и почему это важно

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

Если следить за React только по крупным релизам, легко пропустить момент, когда библиотека тихо меняет направление. React 19.3 — как раз такой случай. Сам релиз вышел 9 сентября 2026 года. И я хочу поделиться парой моментов из этого обновления. Рассмотрим пару хуков это ViewTransition и Fragment Refs. Еще, что я могу выделить, это новые возможности для SSR, Server Components и работы с браузерными API.

Читать далее

3D гоночки от GLM 5.3 Flash с нулевым уровнем размышлений

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

Простите, что без пафоса. Просто сидел на созвоне и увидел, что в OpenCode раздают бесплатные китайские нейронки GLM 5.3 Flash и DeepSeek 4.1 Flash. Решил попробовать, скачал, взглянул - мама родная, там с thinking вообще не пробиться, сервера падают с ошибкой.

Ладно, думаю, посмотрим, что будет с нулевым уровнем размышлений. Без всякой надежды, ради смеха и во имя Фрэнсиса Бэкона просто закидываю тупейший промпт, от одного вида которого у вас должны закровоточить глаза

Посмотреть на гомункулуса... Its Alive!

Giga IDE Pro больше не будет. Но это хорошая новость

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

Pro-сборка была важным этапом в развитии GigaIDE: она позволила быстрее развивать профессиональные инструменты, собирать обратную связь от корпоративных пользователей и проверять сценарии, которые выходят за рамки Community-версии. Но у отдельного дистрибутива есть и обратная сторона: пользователю нужно выбирать сборку, командам — отдельно управлять установками, а продукту — поддерживать лишнюю развилку там, где её уже можно убрать.

Читать далее

Я строил не 3D‑мир, а базовый слой под ним: три узких места в браузерном 3D

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

Последние месяцы я делаю 3D‑мир, который работает прямо в браузере — на Three.js: сцена, персонажи, сеть. Самое неприятное в производительности браузерного 3D — не ошибки. Ошибку видно: она в консоли, у неё есть стек и виновник. А есть второй класс проблем: всё работает, ничего не падает, просто тормозит. Консоль чистая, кадры падают, и непонятно, с чего начинать.

Ниже — три таких случая из моей практики. У всех трёх общая черта: проблема не в самой отрисовке картинки, а рядом с ней. И у каждого есть конкретные цифры до и после. Речь про Three.js, но большинство выводов переносится на любой WebGL‑стек.

Читать далее

Почему попап расширения Chrome открывался 89 секунд

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

Расширения Chrome иногда могут душить сами себя, попадая в бесконечные циклы. В статье я расскажу о том, как искал причины странного поведения pop-up окна нашего внутреннего расширения. Найдя их, я провёл ряд оптимизаций, а ещё создал чек-лист проверок, которые полезно выполнять перед публикацией нового расширения Chrome.

Читать далее

Жаргон функционального программирования

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

Функциональное программирование (ФП) предоставляет много преимуществ, и, как следствие, его популярность растет. Однако, каждая парадигма программирования имеет собственный уникальный жаргон и ФП не исключение. Цель этого словаря терминов — облегчить изучение ФП.

Примеры написаны на JavaScript (ES2015). Почему JavaScript?

Где уместно, в этом документе используются термины, определенные в Fantasy Land spec.

Читать далее

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

Flaky на заказ: стенд для тренировки стабильных e2e‑тестов на Playwright

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

Зелёный тест на учебном стенде ещё ничего не гарантирует, на реальном проекте он может падать через раз.

Рассказываю о тренажёре, который начинается как обычный курс, а потом включает Hard Mode: надоедливые попапы, медленный бэкенд и промо, которое перекрывает экран в самый неудобный момент.

Что внутри: курс из 11 уроков, Hard Mode с воспроизводимыми флаками и Flake Score, который показывает, переживёт ли тест реальный проект.

Читать далее

Как Google Sheets стал backend для закупок и логистики

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

Как я собрал внутреннюю систему учёта документов и рейсов на Google Sheets, Glide, Apps Script и Telegram. Разбираю действующую архитектуру, состояние диалогов бота, роли, отчётность и архивирование — и объясняю, почему следующим шагом стала модель данных в PostgreSQL.

Читать далее

Скам расправил плечи: как ИИ открыл возможности для мошенников в ИТ‑найме

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

Сейчас в ИТ-сфере довольно турбулентно и непредсказуемо: экономическая нестабильность, массовые увольнения, сокращение общего числа вакансий, повсеместное внедрение ИИ, который угрожает заменить разработчиков. Все заставляет переживать работников интеллектуальной сферы. 

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

Читать далее

Синдром Капгра, топоры и чистая математика: как я проектировала логику безумия для своей браузерной игры

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

«Обмани сербского» — это мой психологический симулятор судебно-психиатрической экспертизы, упакованный в эстетику терминала.

Диспозиция простая: ты подследственный по тяжелой статье (на выбор: серийные поджоги с ритуалами, лесопарковый маньяк с дневником трофеев или ночная резня топором).

Твоя задача тоже простая: не уехать на пожизненное.

Читать далее

Пять стадий принятия ИИ: история болезни одного разработчика

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

В 1969 году психиатр Элизабет Кюблер-Росс выпустила книгу «О смерти и умирании». В ней она описала, как человек переживает неизбежное: отрицание, гнев, торг, депрессия, принятие. Писала она о неизлечимо больных пациентах, но модель оказалась настолько универсальной, что её теперь примеряют на что угодно: от расставания до повышения ставки по ипотеке.

Сама Кюблер-Росс оговаривалась, что стадии не обязаны идти строго по порядку: их можно проскочить, к ним можно вернуться, на них можно застрять. Особенно застрять.

Читать далее

Постобработка IFC в браузере с помощью IDS Core — или как мы перестали бояться валидатора

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

Меня зовут Кирилл, я работаю BIM-менеджером, вместе со своей коллегой Анастасией @nobimnolife разрабатываем IDS Core. В этой статье – как мы дошли от просмотрщика IFC браузере до постобработчика.

Читать далее

Session replay и 152-ФЗ: что нельзя записывать и как мы маскируем поля

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

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

Привет! Я Паша, участвую в разработке сервиса записи сессий Broux. В этой статье я расскажу, как мы добиваемся соответствия продукта российским законам с точки зрения персональных данных, что в нашей нише не так уж просто. И я не юрист: юридическая часть ниже описывает, как мы это поняли. Проверяйте со своим юристом.

Первый вопрос, который задают про запись сессий: «а вы видите, что я ввожу в поле?». Честный ответ: технически скрипт записи видит всё, что видит браузер. Вопрос только в том, что он отправит на сервер.

Ниже о том, где обычно утекает лишнее, как с этим работать и при чём здесь 152-ФЗ.

Читать далее