Какая версия PHP впервые представила типизацию аргументов и возвращаемых значений?
Anonymous Poll
5%
5.6
43%
7.0
36%
7.4
16%
8.0
Какое значение вернет функция array_unique() для массива с повторяющимися ОБЪЕКТАМИ?
Anonymous Poll
46%
Удалит все дублирующиеся объекты
16%
Сохранит только первый объект каждого уникального типа
21%
Вернет массив объектов без изменений
18%
Ошибка, так как объекты нельзя сравнивать
В таблице payments(idempotency_key UNIQUE). Повторный запрос с тем же ключом параллельно.
Anonymous Poll
3%
Оба INSERT успешны
86%
Первый успешен, второй упадёт по уникальному индексу
7%
Оба упадут по deadlock
4%
Оба закоммитятся, т.к. разные транзакции
У вас endpoint POST /payments с заголовком Idempotency-Key. Как гарантировать, что повторные запросы с тем же ключом не создадут дубль?
Anonymous Poll
13%
Хранить ключ в памяти PHP-процесса и проверять массивом
5%
Проверять наличие платежа по сумме и пользователю
20%
Делать SELECT + INSERT в одной транзакции без блокировок
64%
Делать атомарный SETNX (или INSERT ... ON CONFLICT DO NOTHING) и возвращать ранее созданный ресурс
Как PHP обрабатывает статическое свойство класса, если объект класса клонируется?
Anonymous Poll
25%
Создается новая копия статического свойства
54%
Статическое свойство не копируется, остается одно для всех объектов
4%
Выдается предупреждение о невозможности клонирования
18%
Клонируется только ссылка на статическое свойство
При конфликте версий Doctrine
Anonymous Poll
13%
Тихо перезатирает данные
71%
Бросает OptimisticLockException
16%
Ожидает, пока освободится строка
9%
Делает автоматический merge
DDD — границы агрегатов. За соблюдение кредитного лимита клиента при создании заказа кто отвечает?
Anonymous Poll
13%
Сервис корзины
21%
Агрегат Order
62%
Агрегат Customer (или доменный сервис вокруг него)
4%
Инфраструктурный валидатор в БД
Сколько попыток и задержки?
Anonymous Poll
16%
3 попытки: 10, 30, 90
78%
4 попытки: 0, 10, 30, 90
4%
4 попытки: 10, 30, 90, 180
2%
3 попытки: 0, 10, 30
📕CQRS и идемпотентность в Symfony: пишем надёжные API - PHP-разработчикам; Junior/Middle разработчикам, строящим API на Symfony; начинающим специалистам в асинхронной архитектуре
На открытом уроке 11 ноября в 20:00 мск мы разберёмся в паттернах CQRS в Symfony и поговорим об идемпотентности HTTP-методов:
📗 На вебинаре:
1. Поймете, как применять CQRS в Symfony без лишней сложности.
2. Научитесь проектировать идемпотентные эндпоинты и реализовывать их средствами фреймворка.
📘 В результате на практике изучите и освоите написание и защиту API от дублей и ошибок при асинхронной обработке, а также получите методы, которые можно сразу взять в работу.
👉 Регистрация на урок и подробности о курсе Symfony Framework: https://clck.ru/3QENqd
Все участники открытого урока получат скидку на курс "Symfony Framework"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
На открытом уроке 11 ноября в 20:00 мск мы разберёмся в паттернах CQRS в Symfony и поговорим об идемпотентности HTTP-методов:
📗 На вебинаре:
1. Поймете, как применять CQRS в Symfony без лишней сложности.
2. Научитесь проектировать идемпотентные эндпоинты и реализовывать их средствами фреймворка.
📘 В результате на практике изучите и освоите написание и защиту API от дублей и ошибок при асинхронной обработке, а также получите методы, которые можно сразу взять в работу.
👉 Регистрация на урок и подробности о курсе Symfony Framework: https://clck.ru/3QENqd
Все участники открытого урока получат скидку на курс "Symfony Framework"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Используется Doctrine transport. Какая семантика доставки сообщений?
Anonymous Poll
11%
Exactly-once
81%
At-least-once с возможностью ретраев и “failed”-queue
15%
At-most-once
15%
Гарантии зависят от версии PHP
Почему растёт RSS процесса-воркера?
Anonymous Poll
19%
Из-за JIT
44%
Из-за захвата $big в замыкании
33%
Из-за pcntl_fork() без exit
12%
Из-за GC, который всё очищает
Что реально ускоряет автозагрузку на проде?
Anonymous Poll
56%
composer dump-autoload -o (classmap оптимизация)
21%
composer install --no-dev без autoload-optim
2%
composer diagnose
25%
opcache.revalidate_freq=0 без preloading