Forwarded from YeaHub
Февраль и март выдались для нас непростыми. Мы прошли через сложную миграцию и разделили проект на два отдельных продукта.
Теперь у нас есть:
— yeahub.ru — публичная SEO-ориентированная часть на Next.js с быстрым серверным рендерингом
— app.yeahub.ru — основное приложение: личный кабинет пользователя со статистикой, прогрессом и аналитикой
🔥 Лайвкодинг — наконец-то готов
Мы серьезно прокачали сервис лайвкодинга:
— добавили привязку задач к коллекциям (собеседованиям)
— сделали связь с компаниями
— теперь можно готовиться по задачам с реальных собеседований
Уже доступны задачи из: Сбер, Яндекс, Авито, VK, Ozon, Т-Банк и других компаний.
📌 Сейчас добавлено ~100 задач.
Да, это меньше, чем планировали — но пришлось сделать шаг назад, чтобы сделать десять вперед.
Мы полностью переработали:
— шаблон задач
— систему тесткейсов
Ранее была допущена ошибка, из-за которой пришлось вручную исправить 80+ задач 😢
Но теперь база готова к масштабированию — и мы можем быстро и правильно наполнять её дальше.
📈 Что дальше по лайвкодингу
Мы будем активно развивать этот сервис.
Это не только про собеседования — это инструмент для роста и прокачки.
Планируется много новых фич.
📅 Регулярные обновления контента
Мы выстроили процесс: каждую неделю 4–8 собеседований, 6–10 задач
И каждое обновление будем анонсировать, чтобы вы всегда были в курсе.
🛠 Сейчас в разработке (2 ключевых сервиса)
Агрегатор вакансий + платформа размещения вакансий
ATS-оптимизация резюме
— Бэкенд почти готов.
— Идёт дизайн.
— Фронтенд начнем совсем скоро.
🎯 Цель — выпустить оба сервиса в бэта до лета.
🧠 Новая структура обучения
Раньше было: Навык → Вопрос
Теперь: Навык → Тема → Вопрос
Это сильно упрощает обучение.
Теперь можно: готовиться точечно к собеседованиям или системно изучать темы
💻 Мы — open source
Мы не бросаем слов на ветер. Мы делаем.
Код проекта открыт https://github.com/YeaHubTeam:
— фронтенд
— мобильные приложения
— backend на Python (решили новый сервис делать публично, для новичков)
— автотесты
Это open source платформа, где новички могут учиться и смотреть на реальные практики.
❤️ Поддержка
Вы можете поддержать нас, оформив подписку. Это напрямую влияет на:
— добавление контента
— развитие платформы
— новые фичи
Вы можете быть уверены — мы не стоим на месте. Работа реально кипит: почти каждый день мержатся новые фичи, мы постоянно развиваем продукт и улучшаем уже существующие сервисы.
У нас полностью открытый код, и это не просто слова. Вы в любой момент можете зайти и посмотреть активность, коммиты и то, как проект развивается каждый день.
По подписке: сейчас стоимость — 800 рублей за месяц и 1800 рублей за 3 месяца. Это уже ниже, чем у аналогичных сервисов. При этом важно понимать — после выхода новых сервисов (агрегатор вакансий и ATS для резюме) цена будет пересмотрена.
Если хотите зафиксировать текущую стоимость — лучше сделать это сейчас:
https://app.yeahub.ru/settings#select-tariff
Мы строим продукт.
Мы двигаемся вперёд.
И мы делаем IT снова великим.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#Собес #transaction #acid #consistency
🤔 Почему критичные операции в backend-системах должны выполняться в рамках транзакций базы данных?
💬 Кратко:
Транзакции нужны, чтобы данные оставались консистентными даже при ошибках и сбоях. Они гарантируют, что операция либо выполнится полностью, либо не выполнится вовсе. Это особенно важно для критичных действий, таких как переводы, списания и изменение состояний. Без транзакций данные могут оказаться в частично обновлённом состоянии.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Почему критичные операции в backend-системах должны выполняться в рамках транзакций базы данных?
💬 Кратко:
Транзакции нужны, чтобы данные оставались консистентными даже при ошибках и сбоях. Они гарантируют, что операция либо выполнится полностью, либо не выполнится вовсе. Это особенно важно для критичных действий, таких как переводы, списания и изменение состояний. Без транзакций данные могут оказаться в частично обновлённом состоянии.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
❤1
#book #book
📚 Непрерывное развёртывание ПО. Джез Хамбл, Дэвид Фарли
Тестирование ПО нередко проходит болезненно и не так быстро, как нам бы того хотелось. В «Непрерывном развёртывании ПО» можно прочитать о новейших подходах к разработке, сборке и установке программного обеспечения без потерь для команды, которая также получает новые возможности для обучения в рамках проектов вне зависимости от их сложности.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
📚 Непрерывное развёртывание ПО. Джез Хамбл, Дэвид Фарли
Тестирование ПО нередко проходит болезненно и не так быстро, как нам бы того хотелось. В «Непрерывном развёртывании ПО» можно прочитать о новейших подходах к разработке, сборке и установке программного обеспечения без потерь для команды, которая также получает новые возможности для обучения в рамках проектов вне зависимости от их сложности.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #sensor #resource
🤔 Какие проблемы с ресурсами могут возникать при неправильном использовании сенсоров?
💬 Кратко:
При неправильном использовании сенсоры могут занимать worker-ы на долгое время. Это приводит к нехватке слотов для реальных задач. Scheduler начинает работать медленнее, а DAG-и встают в очередь. Также растёт нагрузка на внешние системы из-за частых проверок. В итоге Airflow становится нестабильным.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Какие проблемы с ресурсами могут возникать при неправильном использовании сенсоров?
💬 Кратко:
При неправильном использовании сенсоры могут занимать worker-ы на долгое время. Это приводит к нехватке слотов для реальных задач. Scheduler начинает работать медленнее, а DAG-и встают в очередь. Также растёт нагрузка на внешние системы из-за частых проверок. В итоге Airflow становится нестабильным.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🥰1
#Собес #operator #task
🤔 Что такое оператор в Airflow и какую роль он выполняет?
💬 Кратко:
Оператор в Airflow — это шаблон для выполнения конкретного действия. Он описывает, что именно нужно сделать: запустить Python-код, выполнить SQL или вызвать API. Задача создаётся на основе оператора внутри DAG. Один оператор можно использовать много раз. Оператор не управляет порядком выполнения — этим занимается DAG.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Что такое оператор в Airflow и какую роль он выполняет?
💬 Кратко:
Оператор в Airflow — это шаблон для выполнения конкретного действия. Он описывает, что именно нужно сделать: запустить Python-код, выполнить SQL или вызвать API. Задача создаётся на основе оператора внутри DAG. Один оператор можно использовать много раз. Оператор не управляет порядком выполнения — этим занимается DAG.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #isolation #level
🤔 Какой уровень изоляции используется в PostgreSQL по умолчанию?
💬 Кратко:
В PostgreSQL по умолчанию используется уровень изоляции Read Committed. Это означает, что транзакция видит только зафиксированные данные. Каждое SQL-выражение внутри транзакции видит актуальное состояние данных на момент своего выполнения. Грязные чтения не допускаются. Такой уровень обеспечивает хороший баланс между корректностью и производительностью.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Какой уровень изоляции используется в PostgreSQL по умолчанию?
💬 Кратко:
В PostgreSQL по умолчанию используется уровень изоляции Read Committed. Это означает, что транзакция видит только зафиксированные данные. Каждое SQL-выражение внутри транзакции видит актуальное состояние данных на момент своего выполнения. Грязные чтения не допускаются. Такой уровень обеспечивает хороший баланс между корректностью и производительностью.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #optimization #performance #caching
🤔 Как работает оптимизация в серверных приложениях?
💬 Кратко:
Оптимизация серверных приложений направлена на ускорение обработки запросов и снижение потребления ресурсов. Она включает профилирование, устранение узких мест, оптимизацию кода, правильный выбор алгоритмов, настройку окружения и масштабирование. Оптимизация всегда делается на основе измерений, а не предположений.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Как работает оптимизация в серверных приложениях?
💬 Кратко:
Оптимизация серверных приложений направлена на ускорение обработки запросов и снижение потребления ресурсов. Она включает профилирование, устранение узких мест, оптимизацию кода, правильный выбор алгоритмов, настройку окружения и масштабирование. Оптимизация всегда делается на основе измерений, а не предположений.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #coverage #test #scalability
🤔 Почему покрытие тестами важно при росте команды
💬 Кратко:
При росте команды увеличивается количество изменений и рисков. Автотесты позволяют быстро выявлять поломки. Они уменьшают зависимость от конкретных разработчиков. Тесты упрощают онбординг новых участников. Без тестов масштабирование замедляется.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Почему покрытие тестами важно при росте команды
💬 Кратко:
При росте команды увеличивается количество изменений и рисков. Автотесты позволяют быстро выявлять поломки. Они уменьшают зависимость от конкретных разработчиков. Тесты упрощают онбординг новых участников. Без тестов масштабирование замедляется.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🔥1
#Собес #gitignore
🤔 Что делает файл .gitignore?
💬 Кратко:
Файл
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Что делает файл .gitignore?
💬 Кратко:
Файл
.gitignore определяет файлы и папки, которые Git должен игнорировать. Это используется для исключения временных файлов, логов, зависимостей, сгенерированных файлов и других ненужных элементов.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
💩2🤡1🥴1
#article #gitlab #cicd
📚 Как выжать максимум метрик из GitLab CI/CD
Статья объясняет, как использовать Apache DevLake для сбора и анализа метрик из GitLab CI/CD (а также других DevOps-источников), преобразуя данные через несколько слоёв (Raw→Tool→Domain) и строя собственные дашборды (например, по jobs, окружениям и success-rate), чтобы глубже мониторить эффективность пайплайнов и процессы разработки.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
📚 Как выжать максимум метрик из GitLab CI/CD
Статья объясняет, как использовать Apache DevLake для сбора и анализа метрик из GitLab CI/CD (а также других DevOps-источников), преобразуя данные через несколько слоёв (Raw→Tool→Domain) и строя собственные дашборды (например, по jobs, окружениям и success-rate), чтобы глубже мониторить эффективность пайплайнов и процессы разработки.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #ci/cd #jenkins #gitlab
🤔 Какие инструменты CI/CD можно использовать для автоматизации сборки и деплоя приложений?
💬 Кратко:
Для CI/CD чаще всего используют инструменты вроде Jenkins, GitLab CI, GitHub Actions, CircleCI и TeamCity. Они помогают автоматизировать процесс сборки, тестирования и доставки приложения, снижая количество ошибок и ускоряя выпуск. Эти системы интегрируются с репозиториями кода и позволяют выстраивать пайплайны.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Какие инструменты CI/CD можно использовать для автоматизации сборки и деплоя приложений?
💬 Кратко:
Для CI/CD чаще всего используют инструменты вроде Jenkins, GitLab CI, GitHub Actions, CircleCI и TeamCity. Они помогают автоматизировать процесс сборки, тестирования и доставки приложения, снижая количество ошибок и ускоряя выпуск. Эти системы интегрируются с репозиториями кода и позволяют выстраивать пайплайны.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #SPA #dynamic_configuration #environment_variables
🤔 Какие способы существуют для динамической конфигурации SPA при старте?
💬 Кратко:
Динамическая конфигурация позволяет менять настройки приложения (API-адреса, ключи) без пересборки. Основные способы: использование переменных окружения, загрузка конфигурационного JSON-файла с сервера и передача параметров через глобальные переменные в window. Это делает приложение переносимым между разными средами (разработка, тестирование, продакшн).
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Какие способы существуют для динамической конфигурации SPA при старте?
💬 Кратко:
Динамическая конфигурация позволяет менять настройки приложения (API-адреса, ключи) без пересборки. Основные способы: использование переменных окружения, загрузка конфигурационного JSON-файла с сервера и передача параметров через глобальные переменные в window. Это делает приложение переносимым между разными средами (разработка, тестирование, продакшн).
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #api #system
🤔 Существуют ли системы без API?
💬 Кратко:
Да, системы без API существуют, но они крайне редки в современной разработке. Это могут быть простые изолированные программы (например, калькулятор), монолитные приложения, которые не предназначены для интеграции с другими системами, или устаревшее (legacy) ПО, написанное без учета необходимости внешнего взаимодействия
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Существуют ли системы без API?
💬 Кратко:
Да, системы без API существуют, но они крайне редки в современной разработке. Это могут быть простые изолированные программы (например, калькулятор), монолитные приложения, которые не предназначены для интеграции с другими системами, или устаревшее (legacy) ПО, написанное без учета необходимости внешнего взаимодействия
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#article #docker #production
📚 Как работает DNS в Linux. Часть 1: от getaddrinfo до resolv.conf
Статья объясняет, как в Linux происходит разрешение доменных имён на низком уровне — от вызова getaddrinfo() до обработки конфигурации resolv.conf. В ней разбирается, что за механизм стоит за переводом имени в IP: как стандартная библиотека C (glibc или musl) через NSS и плагины (например, для /etc/hosts или DNS) обрабатывает запросы, как настраивается порядок источников в /etc/nsswitch.conf, и как resolv.conf влияет на запросы к DNS-серверу. Также обсуждаются различия в реализации (glibc vs musl) и упоминается, что некоторые языки/программы могут использовать собственные резолверы.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
📚 Как работает DNS в Linux. Часть 1: от getaddrinfo до resolv.conf
Статья объясняет, как в Linux происходит разрешение доменных имён на низком уровне — от вызова getaddrinfo() до обработки конфигурации resolv.conf. В ней разбирается, что за механизм стоит за переводом имени в IP: как стандартная библиотека C (glibc или musl) через NSS и плагины (например, для /etc/hosts или DNS) обрабатывает запросы, как настраивается порядок источников в /etc/nsswitch.conf, и как resolv.conf влияет на запросы к DNS-серверу. Также обсуждаются различия в реализации (glibc vs musl) и упоминается, что некоторые языки/программы могут использовать собственные резолверы.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #ci/cd #pipeline #testing
🤔 Каковы ключевые компоненты CI/CD-пайплайна?
💬 Кратко:
Основные компоненты CI/CD:
- Source Control — управление исходным кодом (Git, SVN).
- Build Automation — автоматическая сборка кода.
- Testing — запуск автоматизированных тестов.
- Deployment Automation — развертывание кода в тестовые и продакшн-среды.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Каковы ключевые компоненты CI/CD-пайплайна?
💬 Кратко:
Основные компоненты CI/CD:
- Source Control — управление исходным кодом (Git, SVN).
- Build Automation — автоматическая сборка кода.
- Testing — запуск автоматизированных тестов.
- Deployment Automation — развертывание кода в тестовые и продакшн-среды.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #profiling #performance #debug
🤔 Что такое профилирование и как его использовать в Go?
💬 Кратко:
Профилирование — это процесс измерения производительности кода. В Go это делается через net/http/pprof, который позволяет собирать метрики CPU, памяти, блокировок и т.д.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Что такое профилирование и как его использовать в Go?
💬 Кратко:
Профилирование — это процесс измерения производительности кода. В Go это делается через net/http/pprof, который позволяет собирать метрики CPU, памяти, блокировок и т.д.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#article #vps
📚 Гайд по первоначальной настройке VPS
Статья содержит пошаговую инструкцию по базовой настройке нового VPS на Debian/Ubuntu: от подключения по SSH, создания пользователя, настройки SSH-ключей и отключения паролей до установки фаервола (ufw), смены SSH-порта, установки Docker и базовых утилит для безопасной и удобной работы сервера.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
📚 Гайд по первоначальной настройке VPS
Статья содержит пошаговую инструкцию по базовой настройке нового VPS на Debian/Ubuntu: от подключения по SSH, создания пользователя, настройки SSH-ключей и отключения паролей до установки фаервола (ufw), смены SSH-порта, установки Docker и базовых утилит для безопасной и удобной работы сервера.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
👍1
#Собес #monitoring #alerting #incident_management
🤔 Какие подходы используются для алертинга в системах?
💬 Кратко:
Алертинг — это процесс автоматического уведомления команды о проблемах в системе. Основные подходы включают мониторинг метрик, логов и трассировок. Ключевая идея — настраивать алерты на реальные проблемы, влияющие на пользователей, а не на каждое колебание метрики. Для этого используют SLO и SLI, чтобы определять значимые пороги. Также важно избегать 'шума' и применять группировку и эскалацию оповещений.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Какие подходы используются для алертинга в системах?
💬 Кратко:
Алертинг — это процесс автоматического уведомления команды о проблемах в системе. Основные подходы включают мониторинг метрик, логов и трассировок. Ключевая идея — настраивать алерты на реальные проблемы, влияющие на пользователей, а не на каждое колебание метрики. Для этого используют SLO и SLI, чтобы определять значимые пороги. Также важно избегать 'шума' и применять группировку и эскалацию оповещений.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #Docker_Compose #container_update #docker-compose_up
🤔 Что происходит при обновлении приложения через Docker Compose?
💬 Кратко:
При обновлении приложения через Docker Compose команда `docker-compose up` с флагом `--build` пересобирает образы, указанные в конфигурации. Docker Compose останавливает старые контейнеры и запускает новые с обновлёнными образами. По умолчанию это создаёт простой downtime, так как старый контейнер останавливается до запуска нового. Для минимизации простоя можно использовать стратегии, описанные в конфигурации, или оркестраторы вроде Docker Swarm.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Что происходит при обновлении приложения через Docker Compose?
💬 Кратко:
При обновлении приложения через Docker Compose команда `docker-compose up` с флагом `--build` пересобирает образы, указанные в конфигурации. Docker Compose останавливает старые контейнеры и запускает новые с обновлёнными образами. По умолчанию это создаёт простой downtime, так как старый контейнер останавливается до запуска нового. Для минимизации простоя можно использовать стратегии, описанные в конфигурации, или оркестраторы вроде Docker Swarm.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #deadlock #transaction #index
🤔 Какие причины могут привести к возникновению deadlock при конкурентных запросах к базе данных и как их предотвращать?
💬 Кратко:
Deadlock появляется, когда два запроса блокируют ресурсы друг друга в пересекающемся порядке: один заблокировал строку A и ждёт строку B, а другой — наоборот. Причины: несогласованный порядок обновлений, долгие транзакции, отсутствие индексов, смешивание SELECT FOR UPDATE и UPDATE на разных путях. Чтобы избегать deadlock: соблюдать единый порядок обновления сущностей, делать транзакции короткими, использовать правильные индексы, избегать сканирования больших таблиц под блокировками и по возможности минимизировать конкурирующие UPDATE по одним и тем же строкам.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Какие причины могут привести к возникновению deadlock при конкурентных запросах к базе данных и как их предотвращать?
💬 Кратко:
Deadlock появляется, когда два запроса блокируют ресурсы друг друга в пересекающемся порядке: один заблокировал строку A и ждёт строку B, а другой — наоборот. Причины: несогласованный порядок обновлений, долгие транзакции, отсутствие индексов, смешивание SELECT FOR UPDATE и UPDATE на разных путях. Чтобы избегать deadlock: соблюдать единый порядок обновления сущностей, делать транзакции короткими, использовать правильные индексы, избегать сканирования больших таблиц под блокировками и по возможности минимизировать конкурирующие UPDATE по одним и тем же строкам.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа