Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 412новых вакансий за сутки·55 411вакансий открыто сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании5 671
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 396 кандидатов открыты к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python8 728
  • Облачные технологии6 606
  • QA вакансии2 165
  • Android1 317
  • Инженер данных878
  • Продакт-менеджер314

Разработка

  • iOS1 229
  • Backend вакансии1 210
  • AI вакансии545
  • Fullstack вакансии500
  • Frontend вакансии422
  • Mobile вакансии28

По стеку

  • Go5 192
  • Java3 112
  • Kotlin1 085
  • Node.js992
  • Rust846
  • .NET660
  • PHP319
  • C++266
  • C#208

DevOps и инфраструктура

  • Kubernetes3 904
  • Linux-инфраструктура2 843
  • DevOps вакансии2 684
  • Terraform / IaC2 162
  • Мониторинг и Observability1 062
  • CI/CD921
  • SRE303
  • Кибербезопасность31

Аналитика и данные

  • Аналитик данных537
  • Data Scientist445
  • Бизнес-аналитик402
  • Системный аналитик68

Другие направления

  • Проджект-менеджер103
  • UI/UX дизайн70
  • Ручное тестирование14

По регионам

  • Вакансии в США26 186
  • Вакансии в Европе10 369
  • Работа в России3 628
  • Вакансии в Канаде2 306

По формату

  • Удалённые вакансии43 484
  • Релокация в США26 186
  • Гибридная работа5 597
  • Офисная работа4 383

По уровню

  • Senior вакансии22 724
  • Middle вакансии11 726
  • Junior вакансии3 874

Сейчас нанимают

Все компании
  • Rakuten189 вакансий
  • Wise186 вакансий
  • ASML164 вакансии
  • Grab135 вакансий
  • Celonis45 вакансий
  • Spotify37 вакансий
  • Infobip28 вакансий
  • Adyen26 вакансий
  • Monzo19 вакансий
  • Darktrace16 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме LaravelВсе вопросы
LaravelSeniorОпыт

Проект на Laravel вырос из MVP в большой production-сервис. Какие проблемы архитектуры и сопровождения вы ожидаете увидеть?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Рост MVP до production проявляет жирные контроллеры, N+1 запросы, отсутствие доменного разделения, монолитные миграции, слабую observability и сложность масштабирования очередей.

Жирные контроллеры и отсутствие слоёв

Бизнес-логика в контроллерах нетестируема и не переиспользуема. Рефакторинг — выделение Service-классов, Action-объектов (паттерн Single Action) или команд CQRS:

<?php

// До рефакторинга: вся логика в контроллере
class OrderController extends Controller
{
    public function store(Request $request)
    {
        $order = Order::create($request->validated());
        $order->items()->createMany($request->items);
        Mail::to($order->user)->send(new OrderConfirmation($order));
        // ... ещё 50 строк
    }
}

// После: Action-класс
class CreateOrderAction
{
    public function execute(CreateOrderDTO $dto): Order
    {
        return DB::transaction(function () use ($dto) {
            $order = Order::create($dto->toArray());
            $order->items()->createMany($dto->items);
            OrderCreated::dispatch($order);
            return $order;
        });
    }
}

Типичная стартовая архитектура MVP

MVP на Laravel обычно — это thin routes, толстые контроллеры с прямыми Eloquent-запросами, минимум тестов и всё в одном модуле. При росте нагрузки и команды это превращается в набор предсказуемых проблем.

N+1 запросы

Самая частая проблема в Eloquent-коде. Диагностика через Laravel Debugbar или Telescope. Решение — with() / load():

<?php

// Проблема: N+1
$orders = Order::all();
foreach ($orders as $order) {
    echo $order->user->name; // SELECT * FROM users WHERE id = ? x N
}

// Решение
$orders = Order::with('user', 'items.product')->get();

// Или с ограничением полей
$orders = Order::with(['user:id,name,email'])->paginate(20);

Монолитные миграции и блокировки таблиц

Добавление NOT NULL колонок без дефолта в таблицы с миллионами строк блокирует таблицу на минуты. Решение — трёхшаговая «zero-downtime migration»:

  1. Добавить колонку nullable.
  2. Заполнить данные в batch-job.
  3. Добавить NOT NULL constraint и дефолт.

Модульность и доменное разделение

Все сущности в одном app/ приводят к circular dependencies и невозможности разделить команды. Переход к модульной структуре:

app/
  Modules/
    Orders/
      Actions/
      Models/
      Events/
      Http/Controllers/
      Providers/OrderServiceProvider.php
    Billing/
    Inventory/

Тесты и CI

MVP обычно не имеет тестов. При рефакторинге — начинать с интеграционных Feature-тестов через RefreshDatabase, затем покрывать Unit-тестами сервисы. Обязательно добавить GitHub Actions / GitLab CI с php artisan test --parallel.

Observability

  • Structured logging (JSON) + centralized log aggregator (Loki, Datadog, New Relic).
  • Sentry для error tracking: composer require sentry/sentry-laravel, конфиг SENTRY_LARAVEL_DSN.
  • Laravel Horizon для мониторинга очередей с метриками throughput и failed jobs.
  • Health check endpoint (/health) для балансировщика нагрузки.

Масштабирование очередей

Один supervisor с одним воркером не справится с ростом. Нужна сегментация очередей по приоритету и изолированные воркеры:

# Supervisord конфиг
[program:laravel-worker-critical]
command=php artisan queue:work redis --queue=critical,default --tries=3 --timeout=60
numprocs=4

[program:laravel-worker-bulk]
command=php artisan queue:work redis --queue=bulk --tries=1 --timeout=300
numprocs=2

Подводные камни

  • God Service — если вынести всю логику в один OrderService на 1000 строк, проблема не решена, просто перемещена из контроллера.
  • Eager loading без ограничений полей — with('user') тянет все колонки users, включая хэши паролей. Всегда указывайте with('user:id,name').
  • Event listeners в синхронном режиме — по умолчанию listeners выполняются синхронно. Реализация ShouldQueue решает это, но требует проверки, что listener идемпотентен при повторном запуске.
  • Миграции без транзакций — MySQL не поддерживает DDL-транзакции, поэтому падение на середине миграции оставляет схему в невалидном состоянии. Используйте $this->schema операции последовательно с rollback-логикой в down().
  • Scopes без индексов — добавление Global Scope с where('tenant_id', $id) без составного индекса (tenant_id, created_at) превращает каждый запрос в full scan.
  • Cache invalidation — кэшировать Eloquent-коллекции без стратегии инвалидации приводит к показу устаревших данных. Привяжите сброс кэша к Model events или используйте теги.

Частые вопросы на собеседовании

  • Как работает система маршрутизации (routing) в Laravel и в чём разница между web и API маршрутами?
  • Что такое migrations в Laravel и как их создавать и запускать?
  • Что такое паттерн MVC и как Laravel его реализует?
  • Что такое Laravel и каковы его ключевые возможности?

Что портит ответ

  • Говорить только о запуске Laravel, но не об эксплуатации
  • Не упоминать observability, обновления, безопасность и rollback
  • Описывать риски абстрактно, без способов их снижать

Что слушает интервьюер

  • Видит production-риски Laravel
  • Говорит про monitoring, rollout, rollback и безопасность
  • Умеет ранжировать риски по вероятности и влиянию

Как вы знаете этот вопрос?

Проверить себя по теме Laravel →
←Предыдущий вопросЧто такое jobs, events и listeners в Laravel?Следующий вопрос→Как работает система очередей (queue) в Laravel и когда её использовать?

Связанные темы

Laravelproduction-readinesstechnical-communicationtechnology-selectiontrade-off-analysis