Category : javascript

javascript
Книга: «Фулстек JavaScript: Секреты, которые должен знать каждый мидл»

Привет, Хаброжители! Как практикующий разработчик ПО вы уже умеете качественно выполнять задачи — на фронтенде или бэкенде. Пора перейти на следующую ступеньку карьерной лестницы и развить навыки, которыми обладают эксперты и senior-разработчики. Милесия МакГрегор поможет разобраться, как работает вся система и как senior-разработчики принимают технические решения. Вы изучите все необходимое для создания фулстек веб-приложения, развернутого на облачной платформе, поймете, как выявлять источник…

  • среда, 13 мая 2026 г. в 00:00:13
javascript
Как я сделал desktop-версию мессенджера на vanilla Electron, не на React Native for Desktop. И не п…

Уровень: middle/senior, кросс-платформенная разработка Стек: Electron 28, electron-builder, electron-updater, vanilla HTML/JS Что внутри: архитектурные решения, IPC между окнами, deep links на трёх ОС, tray-first паттерн, auto-updater grace, custom протоколыКонтекстЭто четвёртая статья из серии про инженерные решения в ONEMIX — моём мессенджере на React Native. В предыдущих разбирал трёхуровневый кэш сообщений, Double Ratchet E2E и WebRTC звонки с trickle ICE. Последняя про звонки набрала больш…

  • среда, 13 мая 2026 г. в 00:00:11
javascript
Вопросы на собеседование: Рефакторинг TypeScript

Собеседования по TypeScript всё чаще проверяют не только знание синтаксиса, но и умение видеть «узкие места» в уже работающем коде. Задача кандидата - не просто сказать «тут ошибка», а предложить более безопасное, читаемое и поддерживаемое решение.В этой статье собраны практические вопросы, основанные на реальных принципах рефакторинга TypeScript. Каждый пример показывает типичный код, который можно улучшить, и задаёт направление для размышлений.🔹 Типы и сужение типовВопрос:«У нас есть код, где…

  • вторник, 12 мая 2026 г. в 00:00:13
javascript
Я реализовал Double Ratchet в React Native мессенджере. Разбор протокола и кода

Уровень: senior · нужно базовое понимание криптографии (AES, ECDH, KDF) Стек: React Native, Expo SDK 54, WebCrypto API, expo-secure-store, TypeScript Что внутри: разбор протокола Signal Double Ratchet, реализация на ~300 строк, грабли, оговорки про отступления от канонаЗачем мне понадобился Double RatchetВ прошлой статье про трёхуровневый кэш сообщений я уже упоминал, что делаю мессенджер ONEMIX на React Native. Базовое E2E у меня было простое: ECDH P-256 для обмена ключами при первом контакте,…

  • вторник, 12 мая 2026 г. в 00:00:07
javascript
Бэкдор вместо тестового

TL;DR:В GitHub-репозитории для тестового задания был вредоносный код, спрятанный в tailwind.config.js. Сначала файл выглядел как обычный Tailwind-конфиг, но в конце была длинная обфусцированная JS-строка. При загрузке конфига код подключал fs, os, request, path, node:process и child_process, связывался с C2 на 78.142.218.26:1244 или 66.235.168.17:1244, отправлял минимальный фингерпринт машины, скачивал второй payload в ~/.vscode/f.js, создавал ~/.vscode/package.json, выполнял npm install и запу…

  • понедельник, 11 мая 2026 г. в 00:00:06
javascript
Как я сделал трёхуровневый кэш сообщений в мессенджере на React Native — и что узнал по дороге

Уровень: middle/senior мобильная разработка, React Native, SQLite Стек: Expo SDK 54, React Native, expo-sqlite, drizzle-orm, AsyncStorage, TypeScript Что внутри: архитектура, код из продакшна, грабли, цифрыВступлениеЯ делаю мессенджер ONEMIX на React Native. К моменту, когда я начал писать этот пост, в нём уже больше десятка экранов, групповые WebRTC-звонки через LiveKit, E2E на Double Ratchet + Sealed Sender, push-нотификации с cold-start навигацией и десктоп-версия на Electron. Но самым важны…

  • понедельник, 11 мая 2026 г. в 00:00:04
javascript
Разбираем Bulletproof React: как не утонуть в хаосе собственного кода

Если вы не стыдитесь свой код, написанный полгода назад — значит, вы недостаточно выросли как разработчик — «Дядюшка Боб»Для кого эта статья?Для того, кто только начинает и уже чувствует: «что-то здесь не так, но как правильно — никто не объяснил».А еще — для того парня, которым я был много лет назад. Который только начинал, радостно накидал компонентов в src/components, порадовался, что всё работает, закрыл задачу и пошел пить чай. А через три месяца открыл этот же проект и не узнал собственны…

  • понедельник, 11 мая 2026 г. в 00:00:04
javascript
Структура Vue проекта

Правильная файловая структура - скелет любого фронтенд-приложения. В Vue 3 нет строгих предписаний, как раскладывать файлы по папкам, кроме базового разделения components/, views/. Но с ростом проекта хаотичное размещение кода быстро превращается в проблему. В этой статье разберём популярные подходы к организации Vue-проектов: от простейшего плоского до микрофронтендов.Плоская структура: быстрота и минимализмС этой схемы стартуют почти все небольшие проекты (пет-приложения). Суть в том, что все…

  • воскресенье, 10 мая 2026 г. в 00:00:11
javascript
Как правильно управлять диалогами в QML: Singleton + JavaScript Promise

Почему управление диалогами в QML почти всегда сделано плохоУже не первый раз сталкиваюсь в проектах на Qt QML с проблемой управления диалогами и всплывающими окнами.QML — декларативный язык и это здорово! Мы описываем, что хотим видеть на экране, и, если всё сделали правильно, при запуске программы получаем желаемый результат.Но иногда хочется динамики — и именно с диалогами начинаются проблемы, которые все решают по-разному. Кто-то продолжает так же декларативно описывать диалог для очередног…

  • суббота, 9 мая 2026 г. в 00:00:12