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

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

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

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

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

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

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

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

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

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

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

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

Все подборки
  • Python17 129
  • Облачные технологии14 088
  • QA вакансии3 457
  • Backend вакансии2 115
  • Инженер данных1 805
  • Продакт-менеджер1 262

Разработка

  • Android1 865
  • iOS1 698
  • Fullstack вакансии989
  • AI вакансии949
  • Frontend вакансии744
  • Mobile вакансии44

По стеку

  • Go8 660
  • Java6 550
  • Node.js2 020
  • .NET1 722
  • Kotlin1 619
  • Rust1 455
  • C#711
  • PHP683
  • C++572

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

  • Kubernetes7 769
  • DevOps вакансии6 056
  • Linux-инфраструктура5 493
  • Terraform / IaC4 266
  • CI/CD3 250
  • Мониторинг и Observability1 788
  • SRE567
  • Кибербезопасность453

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

  • Data Scientist1 141
  • Бизнес-аналитик927
  • Аналитик данных854
  • Системный аналитик153

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

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

По регионам

  • Вакансии в США44 281
  • Вакансии в Европе23 875
  • Вакансии в Канаде4 475
  • Работа в России3 922

По формату

  • Удалённые вакансии75 035
  • Релокация в США44 281
  • Гибридная работа12 401
  • Офисная работа7 079

По уровню

  • Senior вакансии42 679
  • Middle вакансии20 894
  • Junior вакансии6 722

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

Все компании
  • Wise190 вакансий
  • Rakuten189 вакансий
  • ASML166 вакансий
  • Grab137 вакансий
  • Celonis39 вакансий
  • Spotify37 вакансий
  • Adyen28 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • 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