#Собес #interceptors #nestinterceptor #executioncontext
🤔 Как использовать интерсепторы?
💬 Кратко:
Interceptors в NestJS используются для выполнения логики до или после вызова метода. Они подходят для таких задач, как логирование, обработка ошибок, модификация ответов и кеширование. Перехватчики реализуются через интерфейс
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как использовать интерсепторы?
💬 Кратко:
Interceptors в NestJS используются для выполнения логики до или после вызова метода. Они подходят для таких задач, как логирование, обработка ошибок, модификация ответов и кеширование. Перехватчики реализуются через интерфейс
NestInterceptor и применяются через декоратор @UseInterceptors.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🔍 Инструменты чтения плана запроса: EXPLAIN и EXPLAIN ANALYZE
Когда запрос в базе работает медленно — не надо гадать на кофейной гуще. В PostgreSQL есть два супер-инструмента, которые позволяют увидеть, что именно делает оптимизатор и где запрос тратит время
Речь про EXPLAIN и EXPLAIN ANALYZE
🥰 EXPLAIN — прогноз плана
EXPLAIN показывает, как PostgreSQL собирается выполнить запрос:
— какие индексы может использовать
— какой тип сканирования выберет (Seq Scan, Index Scan, Bitmap Index Scan)
— предполагаемое количество строк
— стоимость выполнения (cost)
😁 Полезно, когда ты хочешь понять теоретический план без реального запуска запроса
Пример запроса
⸻
⚡️ EXPLAIN ANALYZE — фактические замеры
EXPLAIN ANALYZE выполняет запрос реально и показывает:
— сколько времени занял каждый шаг
— реальное количество строк
— время старта операции
— расхождение между прогнозами и фактами
Если EXPLAIN — теория, то EXPLAIN ANALYZE — практика
Пример запроса
📝 Тут внимательнее: запрос действительно выполнится, поэтому с UPDATE/DELETE используй на тестовых данных
⸻
😴 Что смотреть в плане?
1) Seq Scan — сигнал: возможно нет индекса
2) Row Estimate vs Actual Rows — если сильно расходится, оптимизатор ошибся → можно помочь статистикой
3) Filter / Recheck — где происходит фильтрация
4) Timing — какой узел съедает больше всего времени
5) Planning Time / Execution Time — понять, где узкое место
🚀 Пост Guru Node.js: @DemetraIT
Когда запрос в базе работает медленно — не надо гадать на кофейной гуще. В PostgreSQL есть два супер-инструмента, которые позволяют увидеть, что именно делает оптимизатор и где запрос тратит время
Речь про EXPLAIN и EXPLAIN ANALYZE
EXPLAIN показывает, как PostgreSQL собирается выполнить запрос:
— какие индексы может использовать
— какой тип сканирования выберет (Seq Scan, Index Scan, Bitmap Index Scan)
— предполагаемое количество строк
— стоимость выполнения (cost)
Пример запроса
EXPLAIN SELECT * FROM users WHERE email = 'test@mail.com';
⸻
⚡️ EXPLAIN ANALYZE — фактические замеры
EXPLAIN ANALYZE выполняет запрос реально и показывает:
— сколько времени занял каждый шаг
— реальное количество строк
— время старта операции
— расхождение между прогнозами и фактами
Если EXPLAIN — теория, то EXPLAIN ANALYZE — практика
Пример запроса
EXPLAIN ANALYZE SELECT * FROM users WHERE email = 'test@mail.com';
⸻
1) Seq Scan — сигнал: возможно нет индекса
2) Row Estimate vs Actual Rows — если сильно расходится, оптимизатор ошибся → можно помочь статистикой
3) Filter / Recheck — где происходит фильтрация
4) Timing — какой узел съедает больше всего времени
5) Planning Time / Execution Time — понять, где узкое место
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
#Собес #node.js #event_loop #promise
🤔 Middle Node.js Backend разработчик в компанию Гринатом
Техническое собеседование. ЗП: от 220к. Август 2025. Опыт: 4 года. Средний собес, спрашивали по опыту (про достижения из резюме), были блоки по Node.js, ts, бд и микросервсам
💬 Вопросы:
- Виды тестов и их различия
- Какие бывают транспорты между микросервисами (синхронный подход (REST, gRPC) и асинхронный (kafka, rabbitMQ, NATS))
- Плюсы и минусы микросервисов
- Блокирующие и неблокирующие операции в Node.js
- Расскажи про Event-loop. Когда выполняется SetImmediate
👉 Все вопросы из этого собеседования (22)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle Node.js Backend разработчик в компанию Гринатом
Техническое собеседование. ЗП: от 220к. Август 2025. Опыт: 4 года. Средний собес, спрашивали по опыту (про достижения из резюме), были блоки по Node.js, ts, бд и микросервсам
💬 Вопросы:
- Виды тестов и их различия
- Какие бывают транспорты между микросервисами (синхронный подход (REST, gRPC) и асинхронный (kafka, rabbitMQ, NATS))
- Плюсы и минусы микросервисов
- Блокирующие и неблокирующие операции в Node.js
- Расскажи про Event-loop. Когда выполняется SetImmediate
👉 Все вопросы из этого собеседования (22)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
❤1
#Собес #clustered #index #nonclustered
🤔 Как работают кластеризованные и некластеризованные индексы? Когда их стоит применять?
💬 Кратко:
Кластеризованный индекс хранит строки таблицы в порядке ключа — это сама таблица, упорядоченная по первичному ключу. Некластеризованный — отдельная структура (B-tree), которая хранит ключи и указатели на строки. Кластеризованный выгоден, если часто читают диапазоны по ключу, но таблица может упорядочиваться только одним способом. Некластеризованные подходят для дополнительных полей и точечного поиска.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как работают кластеризованные и некластеризованные индексы? Когда их стоит применять?
💬 Кратко:
Кластеризованный индекс хранит строки таблицы в порядке ключа — это сама таблица, упорядоченная по первичному ключу. Некластеризованный — отдельная структура (B-tree), которая хранит ключи и указатели на строки. Кластеризованный выгоден, если часто читают диапазоны по ключу, но таблица может упорядочиваться только одним способом. Некластеризованные подходят для дополнительных полей и точечного поиска.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#podcast #микросервисы #новости
📚 RadioJS
«RadioJS» — это подкаст для разработчиков, фокусирующийся на JavaScript и смежных технологиях. Ведущие в формате живого диалога обсуждают актуальные темы индустрии: фреймворки, инструменты, архитектурные подходы, тренды и личный опыт.
Перейти к материалу
👉 База вопросов 👉 Новости
📚 RadioJS
«RadioJS» — это подкаст для разработчиков, фокусирующийся на JavaScript и смежных технологиях. Ведущие в формате живого диалога обсуждают актуальные темы индустрии: фреймворки, инструменты, архитектурные подходы, тренды и личный опыт.
Перейти к материалу
👉 База вопросов 👉 Новости
🔥2
#Собес #модуль #iife #область_видимости
🤔 Какие способы организации кода были до появления модулей?
💬 Кратко:
До появления модулей в JavaScript разработчики использовали различные методы для организации кода, такие как глобальные переменные, функциональные области видимости и объекты. Эти методы часто приводили к проблемам, связанным с конфликтами имен и сложностью управления зависимостями, так как все данные и функции находились в одной глобальной области видимости.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Какие способы организации кода были до появления модулей?
💬 Кратко:
До появления модулей в JavaScript разработчики использовали различные методы для организации кода, такие как глобальные переменные, функциональные области видимости и объекты. Эти методы часто приводили к проблемам, связанным с конфликтами имен и сложностью управления зависимостями, так как все данные и функции находились в одной глобальной области видимости.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🔥1
Иногда на собесах или работе можно встретить вопрос про CAP теорему
В распределённых системах нельзя одновременно обеспечить три свойства:
1) C — Consistency: все узлы возвращают одинаковые данные
2) A — Availability: система всегда отвечает (не важно ошибки в бд или успех)
3) P — Partition tolerance: работает даже при проблемах сети при масштабировании
Причем в реальности выбираем P неизбежно, так как сеть ненадежна.
Поэтому реальный выбор — между C и A
Система лучше не ответит, чем вернёт разные данные из разных узлов
Примеры: Zookeeper, etcd, PostgreSQL в синхроне
Система отвечает всегда, даже если данные временно расходятся. Это может быть удобно, например, при реализации лайков (не страшно, если будет расхождение)
Примеры: Cassandra, MongoDB, Dynamo-подобные
CAP — это про компромисс: что для тебя важнее при аварии — доступность или корректность данных?
Есть еще так NewSQL, которые якобы могут и масштабироваться, советую почитать про такой вид бд
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
#Собес #message_broker #js #nodejs
🤔 Middle/Middle+ Node.js Backend разработчик в компанию rolftech
Техсобес. ЗП: от 250к. Июнь 2025. Опыт: 4 года. Непростой собес, спрашивали по опыт и глубоко копали в техничку. Был лайвкодинг.
💬 Вопросы:
- JWT что такое? Из каких частей состоит токен?
- Что такое CORS
- Как принято работать с файлами с Node.js
- Pick, Omit, Partial в TS
- Что такое опциональная цепочка в JS?
👉 Все вопросы из этого собеседования (26)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle/Middle+ Node.js Backend разработчик в компанию rolftech
Техсобес. ЗП: от 250к. Июнь 2025. Опыт: 4 года. Непростой собес, спрашивали по опыт и глубоко копали в техничку. Был лайвкодинг.
💬 Вопросы:
- JWT что такое? Из каких частей состоит токен?
- Что такое CORS
- Как принято работать с файлами с Node.js
- Pick, Omit, Partial в TS
- Что такое опциональная цепочка в JS?
👉 Все вопросы из этого собеседования (26)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
❤2🔥1
#Собес #normalization #1nf #2nf
🤔 Что такое нормальные формы в базах данных? Зачем они нужны?
💬 Кратко:
Нормальные формы (1NF, 2NF, 3NF, BCNF и др.) — это набор правил для проектирования таблиц, которые минимизируют дублирование данных и предотвращают аномалии вставки, обновления и удаления. Приведение схемы к нормальным формам упрощает поддержку и обеспечивает целостность.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что такое нормальные формы в базах данных? Зачем они нужны?
💬 Кратко:
Нормальные формы (1NF, 2NF, 3NF, BCNF и др.) — это набор правил для проектирования таблиц, которые минимизируют дублирование данных и предотвращают аномалии вставки, обновления и удаления. Приведение схемы к нормальным формам упрощает поддержку и обеспечивает целостность.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#tool #гит
📚 Хочешь изучить Git, не рискуя своей локальной установкой?
Теперь можно запускать команды Git прямо из браузера , с пошаговым объяснением, что делает каждая команда.
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Хочешь изучить Git, не рискуя своей локальной установкой?
Теперь можно запускать команды Git прямо из браузера , с пошаговым объяснением, что делает каждая команда.
Перейти к материалу
👉 База вопросов 👉 Новости
#Собес #union-типы #гибкая_типизация #множественные_типы
🤔 Что такое union-типы в TypeScript и зачем они нужны?
💬 Кратко:
Union-типы позволяют указывать, что переменная может принимать значения разных типов. Это полезно в ситуациях, когда тип данных может быть гибким и изменяться.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что такое union-типы в TypeScript и зачем они нужны?
💬 Кратко:
Union-типы позволяют указывать, что переменная может принимать значения разных типов. Это полезно в ситуациях, когда тип данных может быть гибким и изменяться.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Напомню, что нода — это рантайм, который позволяет выполнять JavaScript вне браузера
1) V8 — JS-движок от Google
Парсит и компилирует JavaScript в машинный код
2) Event Loop (libuv)
Управляет асинхронностью, таймерами, I/O, очередями задач
3) Thread Pool
Для блокирующих операций: fs, crypto, dns
4) C++ bindings
Связь между JS и системными вызовами ОС
Далее разберем v8 под капотом
— Call Stack (стек)
Хранит контекст выполнения функций
— Heap (куча)
Память для объектов, массивов, замыканий
— Garbage Collector
Автоматически очищает неиспользуемую память (рекомендую изучить подробнее)
— JIT-компиляция
Превращает JS в машинный код на лету
Помнить про внутренность v8 важно, так как иногда это спрашивают на собеседованиях
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4