Category : javascript

javascript
Push-уведомления в мессенджере: production-грабли которых нет в туториалах

Уровень: middle/senior мобильная разработка Стек: React Native, Expo SDK 54, expo-notifications, react-native-callkeep, react-native-voip-push-notification, expo-task-manager, FCM, APNs, PushKit Что внутри: deep linking из killed state, suppression активного чата, двойной "назад" после открытия из пуша, VoIP push + CallKit на iOS, Android channels с разной важностью, cold start navigation timingПреамбулаЭто десятая статья про инженерные решения в ONEMIX. Тема узкая, push-уведомления. Но…

  • понедельник, 18 мая 2026 г. в 00:00:29
javascript
Фишинг с подменой URI: или как один хитрый редирект может угнать ваши пароли

Всем привет! Хочу поделиться, возможно, не новым, но, на мой взгляд, довольно изощренным видом фишинга. Кто-то уже наверняка сталкивался с таким методом, а для кого-то он окажется в новинку.ПРЕДУПРЕЖДЕНИЕ: Материалы данной статьи носят исключительно ознакомительный характер и публикуются в образовательных целях. Фишинг, равно как и любые разновидности социальной инженерии, направленные на получение НСД или нарушение целостности, доступности и конфиденциальности информации, являются уголовно нак…

  • воскресенье, 17 мая 2026 г. в 00:00:16
javascript
Каналы и авторизация в Centrifugo: как безопасно подключить real-time в Laravel

В предыдущей статье мы разобрали архитектуру Laravel + Centrifugo: Laravel отвечает за бизнес-логику, права доступа и события, Centrifugo — за WebSocket-соединения, каналы и доставку сообщений, а frontend — за подключение, подписку и обновление интерфейса. Теперь нужно разобрать самый важный слой этой схемы — каналы и авторизацию.Real-time без авторизации опасен. Если пользователь может подписаться на чужой канал, он может получать чужие уведомления, статусы заказов, сообщения, события админки …

  • суббота, 16 мая 2026 г. в 00:00:06
javascript
Опыт использования субагентов в AI‑агенте для IDE: что реально работает на больших задачах, а что н…

Архитектура «оркестратор + сабагенты» на одном экране: оркестратор держит план и раздаёт подзадачи сабагентам.Архитектура «оркестратор + субагенты» на одном экране: оркестратор держит план и раздаёт подзадачи субагентам.Один AI‑агент в чате — это удобно, пока задача помещается в контекст. Как только она начинает разъезжаться по 30 файлам, четырём ролям и циклу «исследуй — реализуй — отревьюй — поправь», единый чат превращается в свалку: модель путает, какой шаг где, тащит решения из первой зад…

  • пятница, 15 мая 2026 г. в 00:00:17
javascript
Управляемый прокруткой CSS в 2026 году — разработка карусели без JavaScript

Как разработать карусель с помощью одного CSS с анимацией, управляемой прокруткойСтруктурируйте HTML с помощью семантических элементов <figure> внутри прокручиваемого контейнера с role="region".Примените scroll-snap-type: x mandatory к контейнеру и scroll-snap-align: center к каждому элементу.Сгенерируйте кнопки переключения слайдов с помощью псевдоэлементов ::scroll-button(left) и ::scroll-button(right).Создайте точечные индикаторы с помощью ::scroll-marker() на каждом элементе и…

  • пятница, 15 мая 2026 г. в 00:00:15
javascript
Архитектура Laravel + Centrifugo: кто за что отвечает в real-time системе

В первой части мы разобрались, что Real-time на Laravel-сайте нужен там, где интерфейс должен получать изменения без перезагрузки страницы: новые уведомления, смену статуса заказа, сообщения в чате, обновления виджетов, события в административной панели. Для таких задач классическая модель HTTP-запроса уже недостаточна, а polling создаёт лишнюю нагрузку на backend. Один из практичных вариантов решения — использовать Centrifugo как отдельный WebSocket-сервер рядом с Laravel-приложением.В этой ст…

  • пятница, 15 мая 2026 г. в 00:00:14
javascript
Cursor в разработке: нейропрототип модуля в корпоративной системе

Современная корпоративная разработка — это всегда про компромиссы. Нужно быстро прототипировать, но при этом не потерять в качестве кода. Хочется держать в голове всю архитектуру — и фронтенд, и бэкенд, и контейнеризацию, и тесты. А по факту время уходит на переключение между десятками вкладок, согласование REST-контрактов и разбор ошибок по логам.В этой статье мы расскажем, как в проекте нейропрототипа модуля Планирования (PlanningProto) мы использовали Cursor — редактор с ИИ, который встроен …

  • пятница, 15 мая 2026 г. в 00:00:08
javascript
Scoped Store: Когда useReducer не тянет, а Redux — слишком

Всем привет, я Ислам, фронтенд-инженер, сегодня хочу разобрать такую интересную связку для локальных сложных контекстов состояний в React проектах, а именно связку React Context+useState+useReducer и как мы его можем заменить на связку Context+Zustand+useRef получая заметный профит по следующим показателям:- Масштабируемость- Чистота- Оптимизация- ПростотаПочти все разработчики работали со сложными локальными состояниями где глобального Redux/MobX было слишком много, а нативные решения на основ…

  • пятница, 15 мая 2026 г. в 00:00:06
javascript
Опыт использования сабагентов в AI-агенте для IDE: что реально работает на больших задачах, а что н…

 Архитектура «оркестратор + сабагенты» на одном экране: оркестратор держит план и раздаёт подзадачи сабагентам.Архитектура «оркестратор + сабагенты» на одном экране: оркестратор держит план и раздаёт подзадачи сабагентам.Один AI-агент в чате – это удобно, пока задача помещается в контекст. Как только она начинает разъезжаться по 30 файлам, четырём ролям и циклу «исследуй – реализуй – отревьюй – поправь», единый чат превращается в свалку: модель путает, какой шаг где, тащит решения из первой зад…

  • четверг, 14 мая 2026 г. в 00:00:16