#Собес #sigint #http #сервер
🤔 Как изящно остановить Node.js сервер?
💬 Кратко:
Изящно остановить сервер в Node.js можно с помощью
Также следует обработать события
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как изящно остановить Node.js сервер?
💬 Кратко:
Изящно остановить сервер в Node.js можно с помощью
server.close(), который завершает все активные соединения. Также следует обработать события
SIGINT и SIGTERM для завершения процессов📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
⏱️ CRON при репликации сервиса: когда он внезапно запускается дважды
Когда у тебя один инстанс сервиса — cron-задачи живут спокойной жизнью: раз в минуту/час/день отработали — и всё
Но как только появляется горизонтальное масштабирование, начинается цирк: один и тот же cron внезапно запускается на всех репликах
Результат — задвоение задач, дубль-отправки в очередь, лишние запросы в БД, гонки, broken idempotency.
Разбираемся, как это контролировать
🙃 Способы синхронизации CRON между репликами
1) Distributed lock (рекомендуется)
Ты заранее пытаешься взять “маркер лидерства”
Кто взял — тот и выполняет cron. Остальные ждут
Варианты реализации:
— Redis + Redlock
Стандарт: быстрая блокировка с TTL → если под умер, блокировка сама освободится
— PostgreSQL advisory locks
SELECT pg_try_advisory_lock(12345)
Если вернул true, ты — лидер
— PostgreSQL row-level / table-level locks
Простой механизм: лочишь строку “task_name = cleanup_daily”
2) Leader election (лидер выбирается автоматически)
Идея: из всех реплик выбирается одна основная, она и запускает cron.
Варианты:
— Kubernetes leader election через Lease API
Удобно для Cron внутри подов
— Consul / Etcd лидер-электоры
Более enterprise-решение.
3) Cron вынести наружу (лучший вариант для сложных систем)
Перенести все периодические задачи в:
— Kubernetes CronJob
Самый распространённый вариант.
— Airflow / Temporal / BullMQ Scheduler
Если задач много и они взаимосвязаны.
— Dedicated scheduler service
Минус: иногда оверхед для небольших проектов
4) Idempotency + мягкая синхронизация
Если не можешь/не хочешь бороться с параллельностью —
просто проектируешь cron так, чтобы дубликат не ломал логику
Подходы:
— В БД держать processed_at, а cron проверяет “ещё не обработано?”.
— Все действия писать через UPSERT / ON CONFLICT DO NOTHING.
— Слать команды в очередь, где есть idempotency-key.
🚀 Пост Guru Node.js: @DemetraIT
Когда у тебя один инстанс сервиса — cron-задачи живут спокойной жизнью: раз в минуту/час/день отработали — и всё
Но как только появляется горизонтальное масштабирование, начинается цирк: один и тот же cron внезапно запускается на всех репликах
Результат — задвоение задач, дубль-отправки в очередь, лишние запросы в БД, гонки, broken idempotency.
Разбираемся, как это контролировать
1) Distributed lock (рекомендуется)
Ты заранее пытаешься взять “маркер лидерства”
Кто взял — тот и выполняет cron. Остальные ждут
Варианты реализации:
— Redis + Redlock
Стандарт: быстрая блокировка с TTL → если под умер, блокировка сама освободится
— PostgreSQL advisory locks
SELECT pg_try_advisory_lock(12345)
Если вернул true, ты — лидер
— PostgreSQL row-level / table-level locks
Простой механизм: лочишь строку “task_name = cleanup_daily”
2) Leader election (лидер выбирается автоматически)
Идея: из всех реплик выбирается одна основная, она и запускает cron.
Варианты:
— Kubernetes leader election через Lease API
Удобно для Cron внутри подов
— Consul / Etcd лидер-электоры
Более enterprise-решение.
3) Cron вынести наружу (лучший вариант для сложных систем)
Перенести все периодические задачи в:
— Kubernetes CronJob
Самый распространённый вариант.
— Airflow / Temporal / BullMQ Scheduler
Если задач много и они взаимосвязаны.
— Dedicated scheduler service
Минус: иногда оверхед для небольших проектов
4) Idempotency + мягкая синхронизация
Если не можешь/не хочешь бороться с параллельностью —
просто проектируешь cron так, чтобы дубликат не ломал логику
Подходы:
— В БД держать processed_at, а cron проверяет “ещё не обработано?”.
— Все действия писать через UPSERT / ON CONFLICT DO NOTHING.
— Слать команды в очередь, где есть idempotency-key.
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #ts #microservices #nest.js
🤔 Middle Node.js Backend разработчик в компанию Uniteller
Техсобес. ЗП: от 220к. Август 2025. Проект: Uniteller. Опыт: 3 года. Стандартное собеседование на Node.js без глубоких вопросов, делали упор на вопросы, которые часто применяются на практике
💬 Вопросы:
- Принципы SOLID
- Монолит и микросервисы — плюсы, минусы, когда стоит использовать каждый подход
- Как выполнить глубокое копирование объекта?
- Как работает сборщик мусора (garbage collector) в JavaScript? Какие есть стратегии для управления памятью?
- В чем особенность хранения объектов?
👉 Все вопросы из этого собеседования (10)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle Node.js Backend разработчик в компанию Uniteller
Техсобес. ЗП: от 220к. Август 2025. Проект: Uniteller. Опыт: 3 года. Стандартное собеседование на Node.js без глубоких вопросов, делали упор на вопросы, которые часто применяются на практике
💬 Вопросы:
- Принципы SOLID
- Монолит и микросервисы — плюсы, минусы, когда стоит использовать каждый подход
- Как выполнить глубокое копирование объекта?
- Как работает сборщик мусора (garbage collector) в JavaScript? Какие есть стратегии для управления памятью?
- В чем особенность хранения объектов?
👉 Все вопросы из этого собеседования (10)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
❤1
#Собес #git_push #git_pull
🤔 Почему мы делаем git pull, а затем git push?
💬 Кратко:
Мы делаем
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Почему мы делаем git pull, а затем git push?
💬 Кратко:
Мы делаем
git pull, чтобы сначала синхронизировать наш локальный репозиторий с последними изменениями из удаленного. Затем выполняем git push, чтобы отправить свои изменения. Это помогает избежать конфликтов и сохранить согласованность данных между участниками команды.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1
#course #задачи #тесты
📚 JavaScript. A3 Задачи
Задачи на программирования на языке JavaScript, формат ввода-вывода делает задачи похожими на задачи на других языка программирования. В курсе используется синтаксис современного стандарта ES6.
Перейти к материалу
👉 База вопросов 👉 Новости
📚 JavaScript. A3 Задачи
Задачи на программирования на языке JavaScript, формат ввода-вывода делает задачи похожими на задачи на других языка программирования. В курсе используется синтаксис современного стандарта ES6.
Перейти к материалу
👉 База вопросов 👉 Новости
#Собес #nestjs #typenoscript #module
🤔 Что такое NestJS, и почему он так популярен для создания приложений на Node.js?
💬 Кратко:
NestJS — это прогрессивный фреймворк для Node.js, построенный на TypeScript. Он предлагает модульную архитектуру, встроенную поддержку Dependency Injection (внедрение зависимостей) и удобную интеграцию с популярными библиотеками. Благодаря своей структуре и подходу к разработке он делает код легко масштабируемым, читаемым и поддерживаемым.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что такое NestJS, и почему он так популярен для создания приложений на Node.js?
💬 Кратко:
NestJS — это прогрессивный фреймворк для Node.js, построенный на TypeScript. Он предлагает модульную архитектуру, встроенную поддержку Dependency Injection (внедрение зависимостей) и удобную интеграцию с популярными библиотеками. Благодаря своей структуре и подходу к разработке он делает код легко масштабируемым, читаемым и поддерживаемым.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Когда система разбита на десятки сервисов — классические транзакции через BEGIN/COMMIT уже физически не сработают. Нужны механизмы, которые обеспечат целостность данных между разными сервисами, каждый из которых живёт в своей базе и своём технологическом стеке.
Используют два подхода: Saga и 2PC. Разберём, как они устроены, где применять и какие подводные камни есть у каждого
🌀 Saga Pattern
Saga — это цепочка локальных транзакций, каждая из которых коммитится сразу. Если одна из операций падает — запускаются компенсирующие действия, откатывающие уже выполненные шаги.
Как работает
1. Сервис A создаёт заказ
2. Сервис B списывает деньги
3. Сервис C резервирует товар
4. Сервис D создаёт доставку
Если на шаге 3 ошибка — запускаются компенсации:
— отменить доставку
— снять резерв товара
— вернуть деньги
— отменить заказ
Все шаги асинхронные, с ретраями и идемпотентностью.
Два подхода Saga
1) Orchestration
Есть “дирижёр” (Orchestrator), который знает порядок шагов
Чаще всего — отдельный сервис или компонент (советую почитать про Temporal)
2) Choreography
Сервисы сами реагируют на события друг друга
🔗 Two-Phase Commit (2PC)
2PC — классический дистрибутивный commit: все участники говорят “готов”, после чего координатор говорит “фиксируем”
Как работает
1) Phase 1: Prepare
Координатор опрашивает сервисы:
“Готовы закоммитить транзакцию?”
2) Phase 2: Commit
Если все ответили OK → отправляется COMMIT
Если хотя бы один ответил NO → ROLLBACK
Проблемы 2PC
— блокировки: участники держат транзакции в состоянии prepare
— долгая блокировка ресурсов → падение производительности
— сеть надежна и транзакции будут падать
По факту, 2PC в микросервисах почти не используют — слишком дорог и хрупок
Saga — это дефолтный способ транзакционности в микросервисах. Правда готовить сагу сложно и часто в компаниях встречаются свои реализации паттерна
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
#Собес #jit #optimization #компиляция
🤔 В чем заключается суть оптимизации методов типа Just-In-Time (JIT)?
💬 Кратко:
Just-In-Time (JIT) оптимизация — это метод, при котором JavaScript-код компилируется в машинный код во время выполнения, а не заранее. Это позволяет движку адаптироваться к реальным условиям работы приложения, оптимизируя часто вызываемые функции и код. JIT-компиляция сочетает преимущества интерпретации и компиляции, обеспечивая более быструю работу кода, особенно в высоконагруженных приложениях.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 В чем заключается суть оптимизации методов типа Just-In-Time (JIT)?
💬 Кратко:
Just-In-Time (JIT) оптимизация — это метод, при котором JavaScript-код компилируется в машинный код во время выполнения, а не заранее. Это позволяет движку адаптироваться к реальным условиям работы приложения, оптимизируя часто вызываемые функции и код. JIT-компиляция сочетает преимущества интерпретации и компиляции, обеспечивая более быструю работу кода, особенно в высоконагруженных приложениях.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#Собес #relational #table #primary_key
🤔 Что такое реляционная база данных?
💬 Кратко:
Реляционная база данных (РБД) хранит данные в виде таблиц (отношений), где каждая строка — запись, а столбцы — атрибуты. Для связи таблиц используются ключи (первичные и внешние). Такая структура обеспечивает целостность данных и позволяет эффективно выполнять запросы с помощью SQL.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что такое реляционная база данных?
💬 Кратко:
Реляционная база данных (РБД) хранит данные в виде таблиц (отношений), где каждая строка — запись, а столбцы — атрибуты. Для связи таблиц используются ключи (первичные и внешние). Такая структура обеспечивает целостность данных и позволяет эффективно выполнять запросы с помощью SQL.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#book #начинающие
📚 Node.js: разработка приложений в микросервисной архитектуре с нуля
Особое внимание уделено распределенным транзакциям и разворачиванию микросервисов на удаленном сервере. Показано, как обеспечить расширяемость и отказоустойчивость приложений, как успешно бороться с усложнением клиентских интерфейсов, поддерживая высокую скорость загрузки страниц и приложений и не забывая о том, чтобы сайт оставался красивым и удобным в использовании.
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Node.js: разработка приложений в микросервисной архитектуре с нуля
Особое внимание уделено распределенным транзакциям и разворачиванию микросервисов на удаленном сервере. Показано, как обеспечить расширяемость и отказоустойчивость приложений, как успешно бороться с усложнением клиентских интерфейсов, поддерживая высокую скорость загрузки страниц и приложений и не забывая о том, чтобы сайт оставался красивым и удобным в использовании.
Перейти к материалу
👉 База вопросов 👉 Новости
#Собес #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 прямо из браузера , с пошаговым объяснением, что делает каждая команда.
Перейти к материалу
👉 База вопросов 👉 Новости