Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас Реклама

Питання на співбесіді рівня Middle

638 питань з відповідями в 14 технологіях - від Junior до Senior. Оберіть технологію чи почніть з питання дня.

Не знаєте, з чого почати?

Пройдіть короткий тест - покажемо теми, які варто підтягнути, і питання до них.

Пройти тест

Технології

Laravel

147 питань · 43 теми

Junior 101 Middle 147 Senior 130

PHP

35 питань · 9 тем

Junior 32 Middle 35 Senior 33

Livewire і Filament

41 питання · 8 тем

Junior 36 Middle 41 Senior 36

MySQL

44 питання · 5 тем

Junior 32 Middle 44 Senior 31

Vue

37 питань · 9 тем

Junior 36 Middle 37 Senior 35

React

34 питання · 8 тем

Junior 33 Middle 34 Senior 33

Питання дня

Найпростіший деплой - docker compose pull && docker compose up -d - зупиняє старий контейнер і лише потім запускає новий. Між цими моментами сайт недоступний, а якщо новий контейнер не стартує - недоступний довго.

Принципи деплою без простою:

1. Спершу запустити нове, потім зупинити старе (start-first). Обидві версії якийсь час працюють паралельно.

2. Трафік на новий контейнер - лише коли він готовий. Перевірка стану (healthcheck) підтверджує, що застосунок справді відповідає, а не просто процес запущено:

healthcheck:
  test: ["CMD", "curl", "-fsS", "http://localhost/up"]
  interval: 10s
  timeout: 3s
  retries: 3
  start_period: 20s

У Laravel 11+ маршрут /up налаштовано за замовчуванням.

3. Старий контейнер завершує поточні запити перед зупинкою (graceful shutdown): отримує SIGTERM, перестає приймати нові запити, дообробляє поточні, і лише потім зупиняється. Балансувальник має встигнути прибрати його з пулу.

4. Автоматичний відкат, якщо нова версія не пройшла перевірку стану.

Як це реалізують:

  • Docker Swarm:
deploy:
  replicas: 2
  update_config:
    parallelism: 1
    order: start-first
    failure_action: rollback

Розділ update_config діє саме в режимі Swarm (docker stack deploy); звичайний docker compose up його не використовує і просто перестворює контейнери.

  • Kubernetes - стратегія RollingUpdate у Deployment з readiness-перевірками;
  • Kamal - запускає новий контейнер, перевіряє його й перемикає трафік через свій проксі (kamal-proxy);
  • власний скрипт з Compose - запустити новий контейнер під іншою назвою, дочекатися здорового стану, перемкнути зворотний проксі (Caddy, Traefik, Nginx), зупинити старий.

Пастки, через які «без простою» не виходить:

  • міграції бази, несумісні зі старою версією коду: під час переходу працюють обидві версії. Видалення чи перейменування колонки ламає стару. Потрібні сумісні в обидва боки міграції (спершу додати, потім - окремим релізом - прибрати);
  • черги: воркери зі старим кодом обробляють задачі нового формату - queue:restart і сумісний формат задач;
  • сесії й кеш у пам'яті контейнера - губляться при заміні.

Докладніше в документації: Compose: deploy.update_config

Вакансії Laravel рівня Middle

Усі вакансії Laravel Middle
King Group Нова
3 дні тому

Middle PHP developer

Розробник PHP middle-рівня для високонавантаженої веб-платформи Social Casino/Online Casino, яка активно масштабується. Основний стек: PHP 7.4, Symfony 4, Yii, PostgreSQL 14, Redis, RabbitMQ, NGINX; частина сервісів переходить на мікросервіси на Symfony. Вимоги: 3-4+ роки продуктового досвіду з PHP, Yii або Symfony, PostgreSQL, розуміння REST API, досвід роботи з Git, знання ООП і SOLID. Буде плюсом досвід з брокерами повідомлень і DDD.

Logiflow Нова
3 дні тому

Backend developer

Розробка та підтримка REST API на Laravel для публічного API, адмін-панелі та мобільних клієнтів, проєктування БД, робота з чергами, подіями та real-time повідомленнями, інтеграція зовнішніх сервісів. Основний стек: PHP 8.1+, Laravel 10+, Redis, Docker, REST API з OpenAPI. Вимоги: глибоке знання PHP, досвід комерційної розробки на Laravel, дотримання код-стайлу.

Hunt.IT Recruitment
4 дні тому

Back-End Developer

Розробник бекенд-сервісів і API для ігрових платформ, платіжних систем та модулів керування користувачами. Основний стек: PHP 8 і Laravel, також потрібен Go (щонайменше 3 роки). Вимоги: досвід REST API, бази даних (PostgreSQL, MySQL, Redis, MongoDB), мікросервіси та брокери повідомлень (Kafka, RabbitMQ), ELK, покриття unit-тестами. Кандидат має проєктувати масштабовану архітектуру, інтегрувати сторонні сервіси та наставляти молодших розробників.

Питання рівня Middle з реальних технічних співбесід - 638 питань у 143 темах, розібраних із відповідями. Нижче - теми цього рівня та сусідні рівні, якщо хочете звузити або розширити підготовку.

Інші рівні
Junior 548 Senior 553