vikulin-va.ru vikulin-va.ru
Курсы Валютная удалёнка Контакты Новости
🇷🇺
vikulin-va.ru
Курсы Стать инженером, который тащит продукт Валютная удалёнка Работа в зарубежной компании — от резюме до оффера
Контакты Новости
→ Связаться
Войти Кабинет · кабинет Выйти

Профиль читателя

Специализация и язык

Контракты методологии язык-нейтральны и видны всегда. Биндинг-специфичные разделы показываются под выбранный профиль.

Специализация

Язык

Backend · Node
  • Фаза 1. С чего начать ▾
    • Зачем этот курс: Backend · Node
  • Фаза 2. JavaScript ▾
    • Основы языка: TypeScript ▾
      • Основы JavaScript
      • Асинхронность и event loop в TypeScript
    • Глубокий JavaScript ▾
      • Типы в JavaScript: примитивы, объекты и typeof
      • Приведение типов: ==, === и truthy/falsy
      • Область видимости: var, let, const и поднятие
      • Замыкания: как работают и зачем нужны
      • Прототипы: делегирование и классы как сахар
      • Объекты: ссылки, копирование и неизменяемость
      • Промисы изнутри: цепочки, ошибки и async/await
      • Итераторы и генераторы
      • Как Node выполняет код: V8, libuv, фазы цикла событий, пул потоков и сборка мусора
    • Frontend ▾
      • this: контекст вызова
      • Event loop: как работает и где стреляет
    • Node.js — первые шаги в кабинете
    • JavaScript — переменные, функции, объекты в кабинете
    • JavaScript — строки в кабинете
    • JavaScript — массивы, объекты, Map и Set в кабинете
    • JavaScript — функции, классы и асинхронность в кабинете
    • Node.js для тех, кто пишет на Java в кабинете
    • Тест фазы в кабинете
  • Фаза 3. TypeScript ▾
    • Базовые типы TypeScript: аннотации, вывод, union и any
    • Сужение типов и guards в TypeScript
    • Дженерики в TypeScript: переиспользуемый типобезопасный код
    • Классы и декораторы в TypeScript
    • Модули и npm: как код собирается из частей
    • Инструменты TypeScript и Node: с чего начать
    • Типы TypeScript с собеседований в кабинете
    • Тест фазы в кабинете
  • Фаза 4. Алгоритмы и структуры данных ▾
    • Алгоритмы и структуры данных ▾
      • Зачем нужны структуры данных и алгоритмы
      • Математика для O-нотации: логарифмы, степени и скорость роста
      • Массивы, двоичный поиск и O-нотация
      • Простая сортировка: пузырёк, выбор, вставка
      • Стеки и очереди
      • Связанные списки
      • Рекурсия
      • Нетривиальная сортировка: Шелла, быстрая, поразрядная
      • Двоичные деревья
      • Красно-чёрные деревья
      • Деревья 2-3-4 и B-деревья
      • Хеш-таблицы
      • Пирамиды (кучи)
      • Графы
      • Взвешенные графы: минимальный остов и кратчайший путь
      • Два указателя и скользящее окно
      • Префиксные суммы
      • Двоичный поиск по ответу
      • Монотонный стек
      • Динамическое программирование
      • Перебор с отсечением
      • Как выбрать структуру данных
    • Алгоритмы — приёмы решения в кабинете
    • Алгоритмы с собеседований на JavaScript в кабинете
    • Тест фазы в кабинете
    • Low-latency: задержка как продукт ▾
      • Хвостовая латентность: почему средняя обманывает
      • Горячий путь: микросекунды решают
      • Order book: структура данных биржи
      • Маркет-дата: мультикаст, снапшоты и conflation
  • Фаза 5. Git и модели ветвления ▾
    • Что такое Git и зачем он каждому
    • Коммиты и история: add, commit, log и .gitignore
    • Ветки и слияние: merge и конфликты
    • Удалённые репозитории: push, pull и fetch
    • Pull request и код-ревью
    • Rebase и cherry-pick: переписывание истории
    • Отмена и спасение: reset, revert, reflog
    • Модели ветвления: Git Flow, GitHub Flow, GitLab Flow, trunk-based
    • Тест фазы в кабинете
  • Фаза 6. Node.js runtime ▾
    • Event loop и libuv: как Node выполняет backend
    • Процесс и файловая система: env, файлы и закрытие ресурсов
    • Streams и backpressure: данные без лишней памяти
    • Worker threads: вычисления без блокировки event loop
    • Child process и cluster: процессы вместо общей памяти
    • Таймауты и отмена: AbortController и завершение операций
    • Event-loop lag: как измерить задержку основного потока
    • Память и утечки ресурсов: heap, listeners и соединения
    • Пулы ввода-вывода: UV_THREADPOOL_SIZE, сокеты и семафоры
    • Node.js runtime — код-ревью в кабинете
    • Тест фазы в кабинете
  • Фаза 7. Фундамент: ядро NestJS ▾
    • Модули и Dependency Injection в NestJS
    • Контроллеры и роутинг в NestJS
    • Валидация и pipes в NestJS
    • Guards: аутентификация и авторизация в NestJS
    • Interceptors: сквозная логика в NestJS
    • Exception filters: обработка ошибок
    • NestJS: конфигурация и жизненный цикл приложения
    • Персистентность: TypeORM
    • Async, расписание и фоновые задачи в NestJS
    • NestJS — код-ревью в кабинете
    • NestJS — конфигурация и жизненный цикл в кабинете
    • Асинхронный Node с собеседований в кабинете
    • Тест фазы в кабинете
  • Фаза 8. SQL с нуля ▾
    • Что такое база данных и таблицы
    • SELECT: выбрать, отфильтровать, отсортировать
    • JOIN: собрать данные из нескольких таблиц
    • Агрегаты: COUNT, GROUP BY и HAVING
    • NULL и типы данных: где все спотыкаются
    • Подзапросы и CTE: запрос внутри запроса
    • Оконные функции: считать, не схлопывая строки
    • Даты и время в SQL: отрезки, группировка по дням и арифметика
    • Строки в SQL: склейка, поиск и приведение к одному виду
    • INSERT, UPDATE, DELETE и транзакции
    • Схема базы данных: таблицы, ключи и представления
    • Почему запрос медленный: индексы на пальцах
    • Основы: SELECT, FROM, WHERE в кабинете
    • Сортировка, LIMIT и DISTINCT в кабинете
    • Соединения: JOIN и anti-join в кабинете
    • Агрегаты, GROUP BY и HAVING в кабинете
    • NULL и COALESCE в кабинете
    • Подзапросы и CTE в кабинете
    • Оконные функции в кабинете
    • Даты и интервалы в кабинете
    • Строки и типы в кабинете
    • Тест фазы в кабинете
  • Фаза 9. TypeORM и persistence ▾
    • DataSource и EntityManager: соединение с PostgreSQL
    • Entities и типы колонок: numeric, bigint и даты
    • Relations и lazy loading: связи без N+1
    • QueryBuilder: joins, параметры и проекции
    • Транзакции и isolation: сценарий целиком
    • Блокировки и версии: оптимизм и пессимизм
    • Миграции TypeORM: схема без synchronize
    • Репозиторий и Data Mapper: ORM за границей
    • Интеграционные тесты TypeORM на PostgreSQL
    • Производительность TypeORM: EXPLAIN, пагинация и ошибки
    • TypeORM — код-ревью в кабинете
    • Тест фазы в кабинете
  • Фаза 10. PostgreSQL: модель и запросы ▾
    • ACID и уровни изоляции транзакций в PostgreSQL
    • Уровни изоляции транзакций в PostgreSQL
    • Блокировки в PostgreSQL: SELECT FOR UPDATE, SKIP LOCKED и advisory locks
    • Именование объектов в PostgreSQL — snake_case, единственное число, префиксы
    • Числа в PostgreSQL: bigint, numeric, boolean и как не потерять деньги
    • Строковые типы в PostgreSQL: text, varchar и char
    • Время и таймзоны в PostgreSQL — почему timestamptz и как с ним работать
    • UUID в PostgreSQL: тип uuid, v7 против v4, bigint vs UUID
    • Перечисления в PostgreSQL: ENUM, справочник или CHECK
    • JSONB в PostgreSQL — что это, как работает и когда применять
    • Массивы и range-типы в PostgreSQL: теги, бронирования, EXCLUDE
    • Типы индексов в PostgreSQL — B-tree, GIN, GiST, BRIN
    • Составные индексы PostgreSQL и правило левого префикса
    • Covering Index в PostgreSQL: зачем нужен INCLUDE
    • Как выбрать индекс и считать селективность в PostgreSQL
    • Веса в полнотекстовом поиске PostgreSQL (FTS)
    • EXPLAIN ANALYZE — как читать план запроса PostgreSQL
    • PostgreSQL — планы запросов и индексы в кабинете
    • Системный дизайн — поиск и рекомендации в кабинете
    • PostgreSQL — jsonb, массивы и числа в кабинете
    • Тест фазы в кабинете
  • Фаза 11. PostgreSQL: эксплуатация и масштаб ▾
    • Миграции PostgreSQL без остановки сервиса
    • Connection pooling в PostgreSQL — HikariCP, PgBouncer и размер пула
    • VACUUM, autovacuum и bloat в PostgreSQL
    • WAL в PostgreSQL: что это и как влиять на объём журнала
    • Репликация PostgreSQL: read-replica и маршрутизация запросов
    • Резервные копии PostgreSQL: pg_dump, pg_basebackup и PITR
    • Партиционирование в PostgreSQL: когда нужно и как устроено
    • Партиционирование и шардирование в PostgreSQL
    • Multi-tenancy в PostgreSQL: row, schema, db per tenant
    • Materialized views в PostgreSQL: как работают и когда использовать
    • Триггеры и хранимые процедуры PostgreSQL
    • Расширения PostgreSQL: pg_trgm, pgcrypto, pg_stat_statements и другие
    • Полнотекстовый поиск в PostgreSQL — tsvector, GIN, russian
    • PostGIS: геоданные в PostgreSQL — точки, полигоны, поиск в радиусе
    • Анонимизация дампа PostgreSQL для разработчика
    • Частые ошибки при выборе типов в PostgreSQL
    • Системный дизайн — хранилища и кэш в кабинете
    • PostgreSQL — поиск по тексту и по карте в кабинете
    • Тест фазы в кабинете
  • Фаза 12. Другие хранилища: документы, поиск, файлы, аналитика ▾
    • Фундамент данных: как хранилища устроены внутри ▾
      • B-деревья и LSM-деревья простыми словами: как база данных хранит данные
      • OLTP и OLAP простыми словами: два разных мира работы с данными
      • Эволюция схем простыми словами: менять формат данных, ничего не ломая
      • Модели репликации простыми словами: почему реплика отстаёт, multi-leader и кворумы
      • Секционирование (шардинг) простыми словами: как разрезать данные по узлам без горячей точки
      • Система записи и производные данные простыми словами: почему кеш, индекс и read-модель — одно и то же
      • Потоковая обработка простыми словами: перехват изменений (CDC) и время в потоках
    • MongoDB ▾
      • ACID, read и write concerns, транзакции в MongoDB на TypeScript
      • Репликация и шардинг в MongoDB
      • Моделирование документов в MongoDB: embed vs reference, индексы
    • Elasticsearch ▾
      • Elasticsearch: как устроен поисковый движок
      • Как работают запросы в Elasticsearch и почему документы сортируются именно так
      • Как работает Elasticsearch в production: ILM, snapshots, sizing, мониторинг
      • Elasticsearch из Node.js: индексация и поиск
    • Object storage (S3) ▾
      • Что такое object storage: bucket, объект, ключ, классы хранения и presigned URL
      • S3 в production: резервные копии, репликация, стоимость и мониторинг
      • S3 из Node.js: AWS SDK v3, streams и signed URL
    • Redis ▾
      • Что такое Redis: in-memory хранилище для backend-разработчика
      • Структуры данных Redis: String, Hash, List, Set, Sorted Set и другие
      • Паттерны кэширования в Redis
      • Redis не только для кэша: блокировки, ограничение запросов, очереди и Pub/Sub
      • Эксплуатация Redis: персистентность, память, репликация
      • Redis из Node.js: client, TTL и идемпотентность
    • ClickHouse ▾
      • Как устроен ClickHouse: колоночное хранение, MergeTree и OLAP
      • ClickHouse: моделирование схемы, запросы, materialized views
      • ClickHouse в проде: репликация, TTL, бэкапы и мониторинг
      • ClickHouse из Node.js: вставка и аналитические запросы
    • Apache Cassandra ▾
      • Архитектура Cassandra: кольцо без главного узла
      • Модель данных Cassandra: partition key и clustering columns
      • Согласованность и репликация в Cassandra
    • Neo4j ▾
      • Как устроен Neo4j: property graph, узлы, рёбра и обход без индексов
      • Cypher: язык запросов к графу простыми словами
      • Neo4j: моделирование графа, индексы и эксплуатация
    • Архитектурный выбор ▾
      • PostgreSQL или MongoDB: как выбрать базу данных
      • Oracle или PostgreSQL: отличия и миграция
      • Cassandra, PostgreSQL или MongoDB: когда брать колоночную NoSQL
      • Графовые данные простыми словами: рекурсивный SQL или графовая СУБД
      • Neo4j: где применяют графовую СУБД — от рекомендаций до GraphRAG
      • PostgreSQL или ClickHouse: когда добавлять вторую базу
      • Поиск: PostgreSQL FTS или Elasticsearch
      • Файлы: в базе данных или в object storage
    • MongoDB — запросы к документам в кабинете
    • Neo4j — обход графа на Cypher в кабинете
    • Redis — структуры и чтение в кабинете
    • Node.js — интеграции хранилищ в кабинете
    • Системный дизайн — гео и логистика в кабинете
    • Тест фазы в кабинете
  • Фаза 13. Принципы и паттерны проектирования ▾
    • SOLID: пять принципов проектирования на TypeScript
    • Паттерны GoF: все 23 простыми словами на TypeScript
    • GRASP: назначение ответственностей на TypeScript
    • DRY, KISS, YAGNI и другие инженерные принципы на TypeScript
    • Clean Code: имена, функции, комментарии
    • Low level design: как решать задачи на проектирование в коде
    • Код и тесты — задачи с собеседований в кабинете
    • Тест фазы в кабинете
  • Фаза 14. Сетевой фундамент ▾
    • Как устроена сеть: модели OSI и TCP/IP
    • IP-адреса, порты и NAT
    • TCP и UDP: надёжность против скорости
    • DNS: как доменное имя превращается в адрес
    • HTTP: методы, статусы, заголовки
    • HTTPS и TLS: шифрование и рукопожатие
    • HTTP/1.1, HTTP/2 и HTTP/3: что поменялось
    • Соединения: keep-alive, пулы и таймауты
    • Два пула: к базе и по HTTP — чем отличаются и как топят друг друга
    • Балансировщики и обратные прокси
    • Сеть и надёжность: таймауты, ретраи, идемпотентность
    • Сетевая диагностика с хоста: что смотреть, когда сервис не отвечает
    • Linux для бэкенд-разработчика: процессы, сигналы, файлы и память
    • WebSocket, SSE и long polling
    • Масштабирование WebSocket в Kubernetes через Kafka
    • Сеть на Node.js — код-ревью в кабинете
    • Системный дизайн — реальное время в кабинете
    • Тест фазы в кабинете
  • Фаза 15. API: REST и контракты ▾
    • REST API ▾
      • URL и ресурсы в NestJS: как называть пути и выбирать HTTP-методы
      • Query-параметры в NestJS: фильтрация, пагинация и поиск
      • JSON и формат ответов в NestJS
      • Ошибки RFC 9457 — Problem Details на NestJS
      • Заголовки HTTP в NestJS: стандартные, кастомные и трассировка
      • Версионирование REST API в NestJS — v1/v2 в URL
      • Alias и Action-эндпоинты в NestJS — me, latest, default и доменные команды
      • OpenAPI в NestJS и частые ошибки при проектировании API
      • Rate limiting, загрузка файлов и deprecation в NestJS
      • Групповые операции, долгие задачи и локализация в NestJS
      • API-first в NestJS: контракт раньше контроллера
    • Стили API ▾
      • gRPC: быстрые вызовы между сервисами
      • GraphQL: клиент запрашивает ровно нужное
      • HATEOAS: зрелость REST и гиперссылки
    • Валидация ▾
      • Где валидировать данные
    • Обработка ошибок ▾
      • Модель ошибок приложения
    • REST API на Node.js — код-ревью в кабинете
    • Системный дизайн — деньги и надёжность в кабинете
    • Тест фазы в кабинете
  • Фаза 16. Безопасность и авторизация ▾
    • Паттерны аутентификации и авторизации ▾
      • Паттерны аутентификации и авторизации
      • Где делать auth-проверку в NestJS: Gateway, контроллер и обработчик
      • JWT-валидация в NestJS: passport-jwt и jwks-rsa
      • RBAC в NestJS: роли, guards и JWT
      • ABAC и владение ресурсом в NestJS
      • Хранение токенов в браузере — HttpOnly cookie и refresh rotation (NestJS)
      • Аутентификация между сервисами в NestJS: mTLS и Client Credentials
      • PII и секреты в NestJS: как не допустить утечки
      • Audit log admin-команд в NestJS
      • PCI DSS для разработчика
      • GDPR для разработчика
    • Уязвимости бэкенда ▾
      • Уязвимости бэкенда
      • Инъекции: SQL, NoSQL, команды ОС и шаблоны
      • SSRF: сервер ходит туда, куда ему сказал клиент
      • IDOR и BOLA: чужой заказ по номеру
      • Массовое присваивание и лишние данные в ответах
      • Обход пути и загрузка файлов
      • XXE и небезопасная десериализация
      • Подбор паролей, перебор учёток и лимиты запросов
      • Открытый редирект, CSRF для API и ошибки CORS
      • Гонки: двойное списание, TOCTOU и идемпотентность
      • Ошибки с JWT: alg none, kid, aud и подмена ключа
      • Как искать уязвимости: модель угроз, тесты, SAST и DAST
    • Keycloak ▾
      • Что такое Keycloak и зачем он нужен
      • OAuth2 и OIDC простыми словами
      • Realm, client, роли и пользователи в Keycloak
      • Authorization Code Flow и PKCE по шагам
      • Три токена Keycloak: access, id, refresh — куда какой
      • Kerberos и LDAP: корпоративная аутентификация
    • Keycloak и безопасность на Node.js в кабинете
    • Авторизация и данные на Node.js в кабинете
    • Код-ревью: уязвимости в кабинете
    • Тест фазы в кабинете
  • Фаза 17. Брокеры и распределённые системы ▾
    • AMQP ▾
      • Протокол AMQP: exchange, queue, binding, ack
      • RabbitMQ в production: кластеризация, типы очередей и мониторинг
      • Паттерны обмена сообщениями через AMQP на TypeScript
      • NATS: обмен сообщениями по темам
      • NATS vs RabbitMQ vs Kafka: какой брокер выбрать
    • Apache Kafka ▾
      • Apache Kafka: топики, партиции, порядок и гарантии на TypeScript
      • Kafka в production на TypeScript: kafkajs, DLQ, Schema Registry, тюнинг, безопасность
    • Системный дизайн — очереди и события в кабинете
    • Тест фазы в кабинете
  • Фаза 18. Микросервисы: архитектура и проблемы ▾
    • Архитектурный выбор ▾
      • Выбор начальной архитектуры: монолит, модульный монолит, микросервисы
      • Между сервисами: синхронный вызов или события
    • Архитектурные паттерны ▾
      • Структурные паттерны микросервисов на TypeScript
      • Распределённые паттерны: согласованность данных между сервисами на TypeScript
      • Паттерны отказоустойчивости: Retry, Circuit Breaker, Bulkhead, DLQ на TypeScript
    • Распределённые системы: что ломается и как договориться ▾
      • Проблемы распределённых систем простыми словами: частичные отказы, ненадёжные часы, истина по кворуму
      • Согласованность и консенсус простыми словами: линеаризуемость, CAP и одна общая задача
      • Корректность в распределённой системе простыми словами: сквозной аргумент, exactly-once, целостность против своевременности
    • Node.js - распределенные системы: код-ревью в кабинете
    • Системный дизайн — основы: нагрузка и контракт в кабинете
    • Тест фазы в кабинете
  • Фаза 19. Контейнеры: Docker ▾
    • Что такое Docker и контейнеры
    • Образы, слои и Dockerfile: как Docker упаковывает приложение
    • Dockerfile для NestJS: node:22-slim, npm ci и запуск без npm start
    • Multi-stage сборка и кэш слоёв Docker
    • Запуск контейнеров: docker run и жизненный цикл
    • Тома и данные в Docker: как не потерять базу при перезапуске контейнера
    • Сети Docker: как контейнеры общаются между собой
    • Docker Compose: поднять всё окружение одной командой
    • Node в контейнере: память V8, ядра и сигналы
    • Маленькие и безопасные образы Docker
    • Реестры образов и сборка в CI
    • Docker для Node.js - код-ревью в кабинете
    • Тест фазы в кабинете
  • Фаза 20. Kubernetes и корректное завершение ▾
    • Kubernetes ▾
      • Kubernetes: pod, deployment, service — с чего начать
      • Сеть в Kubernetes: Service, DNS, Ingress, NetworkPolicy
      • Деплой в Kubernetes: манифесты, Helm, rolling update, GitOps
      • Kubernetes на практике: отладка подов и kubectl-команды
      • OpenShift: чем отличается от чистого Kubernetes
      • Helm: пакетный менеджер Kubernetes
      • Argo CD: GitOps-доставка в Kubernetes
    • Graceful Shutdown ▾
      • Как настроить graceful shutdown в NestJS: enableShutdownHooks и состояние дрейна
      • HTTP drain в NestJS: как не терять запросы при перезапуске
      • Как закрыть соединения с базой данных при остановке Node.js-сервиса
      • Остановка фоновых задач в NestJS: scheduler, BullMQ, outbox
      • Kafka shutdown в NestJS: как правильно останавливать consumer и producer
      • Идемпотентность in-flight операций в NestJS
      • Graceful shutdown NestJS в Kubernetes: preStop, probes, rolling deploy
      • Бюджеты завершения и наблюдаемость в NestJS
    • Kubernetes и остановка NestJS - код-ревью в кабинете
    • Тест фазы в кабинете
  • Фаза 21. Облака ▾
    • Облака: общие принципы ▾
      • Что такое облако и зачем оно нужно
      • Регионы и зоны доступности: где физически живёт ваш сервис
      • Учётные записи и права в облаке: пользователи, сервисные аккаунты, роли
      • Сеть в облаке: частная сеть, подсети, файрвол и выход наружу
      • Три уровня вычислений: машины, контейнеры, функции
      • Управляемые данные: базы, кэш, очереди и объектное хранилище
      • Наблюдаемость и секреты в облаке
      • Деньги в облаке: за что платят и как не переплатить
      • Отказоустойчивость и восстановление: зоны, копии, RPO и RTO
    • AWS ▾
      • Основы AWS: аккаунты, IAM, регионы и VPC
      • Сеть в AWS: VPC, подсети, NAT и security groups
      • IAM в AWS: пользователи, роли и политики
      • Где запускать сервис в AWS: EC2, ECS, EKS или Lambda
      • Масштабирование и доступность в AWS
      • Serverless в AWS: Lambda, события, cold start, API Gateway
      • Управляемые данные в AWS: RDS, ElastiCache, SQS, MSK
      • DynamoDB: ключи, индексы и когда брать вместо SQL
      • Безопасность и наблюдаемость в AWS: Secrets Manager, SSM, KMS, CloudWatch
      • Оптимизация затрат в AWS: с чего начать
      • Отказоустойчивость и аварийное восстановление в AWS
      • AWS Well-Architected Framework: шесть столпов и как ими пользоваться
      • Infrastructure as Code: основы
      • Terraform: HCL, провайдеры, состояние и модули
      • CloudFormation: шаблоны и стеки
      • AWS CDK: инфраструктура как программа
      • IaC на практике: state, секреты, доставка
    • Microsoft Azure ▾
      • Основы Azure: подписки, группы ресурсов, Entra ID, сеть
      • Сеть в Azure: Virtual Network, подсети, NSG, NAT
      • Entra ID и RBAC в Azure: удостоверения, роли, managed identity
      • Где запускать сервис в Azure: Virtual Machines, AKS, Container Apps, Functions
      • Масштабирование и доступность в Azure
      • Serverless в Azure: Azure Functions, триггеры, API Management
      • Управляемые данные в Azure: PostgreSQL, Redis, Service Bus, Event Hubs
      • Cosmos DB: глобально распределённая база данных Azure
      • Blob Storage в Azure: объектное хранилище и уровни доступа
      • Azure из приложения: доступ к сервисам из кода
      • Безопасность и наблюдаемость в Azure: Key Vault, Azure Monitor, Application Insights
      • Оптимизация затрат в Azure: с чего начать
      • Отказоустойчивость и аварийное восстановление в Azure
      • Инфраструктура как код в Azure: Bicep, ARM, Terraform
    • Google Cloud Platform (GCP) ▾
      • Основы GCP: проекты, Cloud IAM, регионы, сеть
      • Сеть в GCP: VPC, подсети, правила файрвола, Cloud NAT
      • Cloud IAM в GCP: сервисные аккаунты, роли, привязки
      • Где запускать сервис в GCP: Compute Engine, GKE, Cloud Run, Cloud Functions
      • Масштабирование и доступность в GCP
      • Serverless в GCP: Cloud Run, Cloud Functions, Eventarc
      • Управляемые данные в GCP: Cloud SQL, Memorystore, Pub/Sub
      • Firestore и другие NoSQL в GCP: Bigtable, Spanner
      • Cloud Storage в GCP: объектное хранилище и классы хранения
      • GCP из приложения: доступ к сервисам из кода
      • Безопасность и наблюдаемость в GCP: Secret Manager, Cloud Logging, Cloud Monitoring
      • Оптимизация затрат в GCP: с чего начать
      • Отказоустойчивость и аварийное восстановление в GCP
      • Terraform в GCP: инфраструктура как код
    • Системный дизайн — медиа и файлы в кабинете
    • Тест фазы в кабинете
  • Фаза 22. CI/CD: конвейер доставки ▾
    • Принципы CI/CD: конвейер от коммита до прода
    • Настройка CI для Node.js и NestJS: npm ci, TypeScript, Jest и Testcontainers
    • Стратегии релиза: rolling, blue-green, canary, feature flags
    • Ветки и релизный цикл: trunk-based, версии, GitOps
    • CI для Node.js - код-ревью в кабинете
    • Тест фазы в кабинете
  • Фаза 23. Качество: стратегия тестов ▾
    • NestJS ▾
      • Тестирование NestJS: Jest, тестовый модуль и e2e
    • Тестирование ▾
      • Интеграционные тесты на Node.js: Testcontainers, NestJS и TypeORM
      • Моки и внешние системы в тестах Node.js
      • Нагрузочное тестирование: k6, Gatling, JMeter
      • Пирамида тестов: что и где
    • Тестирование Node.js и NestJS - код-ревью в кабинете
    • Тест фазы в кабинете
  • Фаза 24. Наблюдаемость и диагностика ▾
    • NestJS ▾
      • Наблюдаемость в NestJS: логи, трейсы, метрики и health-checks
    • Наблюдаемость ▾
      • Структурированные логи в NestJS: pino, контекст запроса и защита персональных данных
      • Метрики в NestJS: prom-client, RED и USE методы
      • Distributed tracing в NestJS: OpenTelemetry с нуля
      • Context propagation в NestJS: AsyncLocalStorage, middleware и очереди
      • Health checks в NestJS: liveness, readiness и /info
      • SLO и алерты в Node.js: error budget, burn rate и как не пропустить инцидент
      • Observability в NestJS: management-порт, метрики и логи
      • Профилирование и утечки памяти в Node.js: V8, Buffer и event loop
      • От алерта до строки лога на Node.js: как связать три сигнала
    • Управление командой ▾
      • Постмортем и дежурства: разбор аварий без поиска виноватых
    • PostgreSQL ▾
      • Мониторинг PostgreSQL: slow queries, активность и ключевые метрики
      • Отчёт нагрузки PostgreSQL: как читать и ставить диагноз
      • Отчёт нагрузки своими руками: запросы по каждому разделу
    • Наблюдаемость на Node.js - код-ревью в кабинете
    • Системный дизайн — эксплуатация в кабинете
    • Инциденты — разбор аварий в кабинете
    • Тест фазы в кабинете
  • Фаза 25. Работа с AI-агентами ▾
    • Как работают модели ИИ: предсказание следующего токена
    • Галлюцинации ИИ: почему модель уверенно выдумывает
    • Токены и стоимость: за что вы платите в работе с ИИ
    • Контекст: что модель держит в голове за один раз
    • Вызов инструментов: как модель выходит за пределы текста
    • Агенты: модель в цикле с инструментами и целью
    • Работа с агентами: базовый цикл продуктивной сессии
    • Claude Code: команды, которыми пользуешься каждый день
    • Spec-driven development: сначала спецификация, потом код
    • Ревью и тестирование кода с агентом
    • Приёмка результата AI: критерии и тесты из спеки
    • AI как рычаг продукт-инженера
    • Как настроить агента под свой проект: правила, память, инструменты
    • AI PDLC: полный цикл продукта с агентом и MCP
    • Какой язык программирования выбрать для AI-кодинга
    • Ежедневная работа с агентом: разобраться, сделать, починить
    • Как ревьюить код, который написал агент
    • Исполняемые правила агента vs SonarQube vs ESLint vs ревью тимлидом
    • Тест фазы в кабинете
  • Фаза 26. Создание LLM-приложений ▾
    • Из чего состоит LLM-фича
    • LangChain: оркестрация LLM-приложений
    • RAG и эмбеддинги: как дать модели ваши данные
    • Векторные базы данных
    • Агентные приложения: инструменты и автономные циклы
    • Мультиагентные системы: шесть паттернов оркестрации агентов
    • Оценка AI-агентов: тест траектории, рубрика и регрессия
    • Память AI-агента: сессия, долгая память и что в неё класть
    • Безопасность AI-агентов: права, идентичность и уровни доверия
    • Инъекция в промпт: прямая и косвенная
    • Вывод модели как недоверенный ввод: SQL, HTML, markdown и аргументы инструментов
    • Безопасность RAG: чужие документы и отравленная база
    • Утечки через модель: данные, секреты и системный промпт
    • Неограниченное потребление и лишние полномочия модели
    • Агент в продакшене: протоколы MCP и A2A, деплой и трассировка
    • Тест фазы в кабинете
  • Фаза 27. Системный дизайн и архитектурный выбор ▾
    • Системный дизайн (System Design) ▾
      • Надёжность, масштабируемость, сопровождаемость — простыми словами
      • Метод системного дизайна: от требований к архитектуре
      • Строительные блоки системного дизайна
      • Как устроена система уведомлений: архитектура с нуля
      • Как оформить и защитить дизайн системы: design doc, C4, ревью
    • Архитектурный выбор ▾
      • ADR: как фиксировать архитектурные решения
      • Роль архитектора в команде разработки
    • Модель C4 ▾
      • Модель C4
    • Системный дизайн — основы: нагрузка и контракт в кабинете
    • Системный дизайн — хранилища и кэш в кабинете
    • Системный дизайн — очереди и события в кабинете
    • Системный дизайн — поиск и рекомендации в кабинете
    • Системный дизайн — медиа и файлы в кабинете
    • Системный дизайн — реальное время в кабинете
    • Системный дизайн — деньги и надёжность в кабинете
    • Системный дизайн — эксплуатация в кабинете
    • Системный дизайн — гео и логистика в кабинете
    • Системный дизайн — практика в кабинете
    • Тест фазы в кабинете
  • Фаза 28. Domain-Driven Design ▾
    • Что такое DDD и зачем он нужен
    • Стратегические паттерны DDD на TypeScript
    • Тактические паттерны DDD на TypeScript
    • Интеграционные паттерны DDD на TypeScript
    • Принципы проектирования в DDD на TypeScript
    • Онтология и доменная модель: система понятий до агрегатов
    • Event Storming: добываем модель домена у бизнеса
    • Тест фазы в кабинете
  • Фаза 29. Архитектурные паттерны сервиса ▾
    • Архитектурные паттерны ▾
      • Луковая архитектура (Onion Architecture)
      • Пакетная обработка данных: как не сломать фоновый обработчик на TypeScript
      • Event Sourcing: хранить события, а не состояние
    • CQRS ▾
      • CQRS
      • Когда применять CQRS в NestJS
      • Command side в CQRS — как писать команды в NestJS
      • Query side в CQRS на NestJS — как устроено чтение данных
      • Read-model в CQRS — денормализованная проекция на NestJS / TypeScript
      • Синхронизация read-model через события в NestJS
      • Уровень и эволюция CQRS в NestJS
    • Гексагональная архитектура ▾
      • Гексагональная архитектура
      • Когда применять Hexagonal Architecture в Node/NestJS
      • Core слой в Hexagonal Architecture: Node/NestJS
      • Ports в Hexagonal Architecture — как изолировать ядро от внешнего мира
      • Adapters In в Hexagonal-архитектуре на NestJS
      • Out-адаптеры в Hexagonal на NestJS/TypeScript
      • Структура папок в Hexagonal-проекте на NestJS
      • Bootstrap / Composition Root в Hexagonal (NestJS)
      • Архитектурные тесты в Hexagonal-проекте (NestJS)
    • Конечные автоматы и стейт-машины ▾
      • Конечные автоматы и стейт-машины: что это и когда нужны
      • BPM и оркестрация процессов: Camunda и аналоги
    • Слои и границы на Node.js - код-ревью в кабинете
    • CQRS и события на Node.js - код-ревью в кабинете
    • Тест фазы в кабинете
  • Фаза 30. Методологии и процесс разработки ▾
    • Методологии и процесс разработки ▾
      • Модели разработки: от Waterfall к Agile
      • Scrum: роли, события и артефакты
      • Kanban: поток, WIP-лимиты и вытягивание
      • Extreme Programming: инженерные практики Agile
      • Оценка и планирование: story points и velocity
      • Масштабирование Agile: SAFe и LeSS
    • Продукт-инженер ▾
      • Методология для AI: Use Case Pattern и другие способы
    • Тест фазы в кабинете
  • Фаза 31. Продукт-инженер: роль и практика ▾
    • Кто такой продукт-инженер: роль и цикл работы
    • Проблема, а не решение
    • Контакт с пользователем
    • Бизнес-метрика, а не метрика выпуска
    • Приоритизация: наименьший ценный срез
    • Владение от идеи до пользователя
    • Релиз и петля метрик в одиночку
    • Язык домена: понятия, словарь и граф знаний
    • От модели понятий к контракту, который исполняет агент
    • Тест фазы в кабинете
  • Фаза 32. Use Case Pattern и сквозной кейс ▾
    • Use Case Pattern
    • Use Case Pattern: как применять пошагово
    • Use Case спецификация: формат
    • Уровень зрелости 0: снимок существующего кода
    • Уровень зрелости 1: Слоёный
    • Уровень зрелости 2: UseCase + Handler
    • Уровень зрелости 3: DDD + Hexagonal
    • Кейс: маркетплейс — как я понял задачу
    • Как разбить систему на сервисы: карта маркетплейса
    • AI пишет код. Зачем тогда методология?
    • AI-native компания: маленькая команда + агенты, и почему ей всё равно нужна методология
    • Executable standard: исполняемые правила как ESLint для архитектуры
    • Тест фазы в кабинете
  • Фаза 33. Браузер и практический CSS ▾
    • Frontend ▾
      • События DOM: всплытие, погружение, делегирование
      • Браузер и сеть: откуда берётся страница, CORS, cookie и хранилища, XSS и CSRF
      • Критический путь рендера
      • Обработка ошибок в JavaScript и браузере
      • Анимации: CSS и оптимизации
      • Сборка фронтенда: бандлеры и подходы
    • Браузер руками с собеседований в кабинете
    • Тест фазы в кабинете
    • Глубокий CSS ▾
      • Основы CSS: синтаксис, подключение и первые свойства
      • Каскад, специфичность и наследование
      • Селекторы: комбинаторы, псевдоклассы и псевдоэлементы
      • Блочная модель: размеры, box-sizing и схлопывание отступов
      • Поток документа: display, visibility и наследие float
      • Позиционирование: от static до sticky и z-index
      • Flexbox: оси, выравнивание и распределение места
      • Grid: двумерная вёрстка
      • Единицы и адаптивность: rem, проценты, vw и clamp
      • Оформление: градиенты, тени, фильтры и трансформации
    • Тест фазы в кабинете
  • Фаза 34. React ▾
    • Компоненты React: структура и композиция
    • TypeScript в React
    • Как React рисует: Virtual DOM, согласование, Fiber и перерисовки
    • Хуки: кастомные и ловушки useEffect
    • Ревью React-компонентов с собеседований в кабинете
    • Лайвкодинг React с собеседований в кабинете
    • Тест фазы в кабинете
  • Фаза 35. Архитектура frontend ▾
    • Структура проекта и компонентная модель
    • Архитектурные подходы фронтенда: как выбрать структуру
    • Feature-Sliced Design: слои, слайсы и правила импортов
    • Границы архитектуры: их стережёт линтер, а не ревью
    • Микрофронтенды и Module Federation
    • Тест фазы в кабинете
  • Фаза 36. Данные и состояние ▾
    • Состояние: локальное и серверное
    • MobX и Redux Toolkit: менеджеры состояния в React
    • Загрузка данных в React: TanStack Query
    • Клиент из OpenAPI: генерация типов, хуков и моков
    • Обработка ошибок и Suspense
    • Формы: react-hook-form и zod
    • Состояние в адресной строке: фильтры, страницы и ссылки
    • Данные в React-компонентах с собеседований в кабинете
    • Тест фазы в кабинете
  • Фаза 37. Роутинг и доставка ▾
    • Роутинг: React Router
    • Next.js: серверный рендер, серверные компоненты и Server Actions
    • Статические сайты: сборка заранее, MDX и контент без сервера
    • Стилизация и дизайн-токены
    • Тест фазы в кабинете
  • Фаза 38. Качество и производительность ▾
    • Доступность (a11y)
    • Производительность рендеринга
    • Тестирование frontend: Vitest и Testing Library
    • Окружение и секреты во фронтенде
    • Ревью экранов с собеседований в кабинете
    • Тест фазы в кабинете
  • Фаза 39. Мобильное приложение из веба ▾
    • Мобильная разработка: web-first, гибрид или натив
    • PWA: устанавливаемое веб-приложение
    • Capacitor: веб-приложение в нативной обёртке
    • Доступ к нативным возможностям: мост и плагины
    • iOS: WKWebView, App Store и ограничения
    • Android: TWA, Play Store и WebView
    • Push-уведомления в мобильном вебе
    • Офлайн и хранение данных на устройстве
    • Когда web-first не хватает: предел и натив
    • Тест фазы в кабинете
  • Фаза 40. Что такое тестирование ▾
    • Что такое тестирование и зачем оно нужно
    • Кто такой тестировщик и его роль в команде
    • Мифы о тестировании и что реально нужно для старта
    • Ручное и автоматизированное тестирование: в чём разница
    • Жизненный цикл ПО и место тестирования (SDLC и STLC)
    • Модели разработки ПО: waterfall, V-модель и итерации
    • Тест фазы в кабинете
  • Фаза 41. Виды и уровни ▾
    • Уровни тестирования: модульное, интеграционное, системное, приёмочное
    • Виды тестирования: функциональное и нефункциональное
    • Нефункциональные виды тестирования на практике
    • Чёрный, белый и серый ящик: три режима видимости
    • Исследовательское тестирование и степень формализации
    • Локализационное тестирование
    • Тест фазы в кабинете
  • Фаза 42. Дизайн тест-кейсов ▾
    • Как писать тест-кейс: шаги и ожидаемый результат
    • Качество тест-кейса: балансы, показательность и типичные ошибки
    • Тест-план и тест-сьюты: как организовать проверки
    • Отчёт о результатах тестирования и метрики
    • Оценка трудозатрат в тестировании
    • Техники тест-дизайна: классы эквивалентности и граничные значения
    • Таблицы решений и попарное тестирование
    • Чек-листы и тестовые данные
    • Пользовательские сценарии, персонажи и наборы кейсов
    • Тест фазы в кабинете
  • Фаза 43. Баги ▾
    • Что такое баг: severity и priority
    • Как писать баг-репорт
    • Качество баг-репорта: логика, свойства и типичные ошибки
    • Поиск первопричины дефекта
    • Жизненный цикл бага и трекеры (Jira)
    • Тест фазы в кабинете
  • Фаза 44. Инструменты и практика ▾
    • Тест-менеджмент: TestRail, Qase, Zephyr
    • Основы веб-технологий: HTML, CSS, JavaScript и DOM
    • Клиент-сервер и HTTP: как страница общается с сервером
    • DevTools браузера для тестировщика
    • Основы API-тестирования в Postman
    • Какие бывают API: REST, SOAP и GraphQL
    • Основы сетей: как запрос находит сервер
    • Вход в систему: аутентификация, авторизация и токены
    • SQL для тестировщика
    • Кроссбраузерное и мобильное тестирование
    • Тестирование мобильных приложений
    • Команды Linux и терминал для тестировщика
    • Логи и наблюдение за системой
    • Форматы данных: JSON, XML, YAML и CSV
    • Микросервисы, брокеры и очереди глазами тестировщика
    • Тест фазы в кабинете
  • Фаза 45. Python для автотестов ▾
    • Python для тестировщика ▾
      • Зачем тестировщику Python и как запустить первую строку
      • Переменные, строки и числа
      • Сравнения и условия: как программа принимает решение
    • Python для тестировщика — первые шаги в кабинете
    • Python для тестировщика ▾
      • Списки и словари: JSON — это словарь
      • Циклы: пройти по всем и ничего не пропустить
    • Python для тестировщика — списки и словари в кабинете
    • Python для тестировщика ▾
      • Функции: собрать проверку в одном месте
      • assert и ошибки: как проверка сообщает о поломке
    • Python для тестировщика — функции и assert в кабинете
    • Python для тестировщика ▾
      • Разбор данных: посчитать, сверить, найти расхождение
    • Python для тестировщика — проверки данных в кабинете
    • Python для тестировщика ▾
      • pytest: первый настоящий тест
      • Автотесты API на Python: собрать всё вместе
    • Автотесты API на Python в кабинете
    • API с собеседований тестировщика в кабинете
    • Лайвкодинг с собеседований тестировщика в кабинете
    • Тест фазы в кабинете
  • Фаза 46. Автотесты интерфейса ▾
    • Когда нужен e2e
    • Настройка Playwright
    • Структура тестов: fixtures и page objects
    • Локаторы в Playwright: как находить элементы на странице
    • Утверждения и ожидание в Playwright
    • Тестовые данные и аутентификация в Playwright
    • Сеть: перехват и мок запросов в Playwright
    • Нестабильные тесты: почему e2e падают без причины
    • E2E-тесты в CI: запуск, ускорение и разбор падений
    • Тест фазы в кабинете
  • Фаза 47. В команде и дальше ▾
    • QA в Agile и Scrum: роль в спринте
    • Тестирование по требованиям
    • Уровни и свойства хороших требований
    • Ревью требований: техники и хорошие вопросы
    • Как устроена автоматизация: подходы и экономика
    • Git для тестировщика: ветки, коммиты и слияния
    • CI/CD: конвейер, тесты и артефакты
    • Куда расти дальше в тестировании
    • Тест фазы в кабинете
Главная › Node.js runtime

Node.js runtime

Как Node.js работает в backend: event loop и libuv, файлы, streams, backpressure, workers, процессы, таймауты и диагностика.

Раздел о том, что происходит ниже TypeScript и NestJS: как процесс выполняет ввод-вывод, где ограничения параллелизма и как найти узкое место.

Статьи раздела
  • Event loop и libuv: как Node выполняет backend
  • Процесс и файловая система: env, файлы и закрытие ресурсов
  • Streams и backpressure: данные без лишней памяти
  • Worker threads: вычисления без блокировки event loop
  • Child process и cluster: процессы вместо общей памяти
  • Таймауты и отмена: AbortController и завершение операций
  • Event-loop lag: как измерить задержку основного потока
  • Память и утечки ресурсов: heap, listeners и соединения
  • Пулы ввода-вывода: UV_THREADPOOL_SIZE, сокеты и семафоры

Учись по программе.

Шесть программ по специализациям: фазы, статьи, тренажёры и тесты с зачётом. Выбери маршрут и учись с ментором.

Выбрать программу → Записаться →

Три дня полного доступа — бесплатно, без карты: вся программа, тренажёры и ИИ-ментор.

Войти через Яндекс →

Что нового Тестировщику Стандарты Сквозной кейс Библиотеки Методология (Use Case Pattern)

Оферта Обработка персональных данных Согласие на обработку данных Политика cookie Рекомендательные технологии Настройки cookie

На информационном ресурсе применяются рекомендательные технологии.

© 2026 vikulin-va.ru Контакты Telegram RSS LinkedIn GitHub

Сайт считает статистику посещений через Яндекс Метрику — она ставит cookie в браузере и записывает действия на странице. Без вашего согласия счётчик не загружается, а отказ ничего не закрывает. Что и зачем собирается, написано в политике использования файлов cookie.