Null Object - поведінка за замовчуванням
Замінює null безпечним об'єктом із тим самим інтерфейсом і "порожньою" поведінкою. Прибирає перевірки на null - і де він може приховати справжню проблему.
Почніть вводити, щоб шукати по статтях, вакансіях, компаніях, проєктах, ресурсах, пакетах, подіях і користувачах.
CQRS (Command Query Responsibility Segregation) розділяє операції зміни стану (команди) та операції читання (запити) на окремі моделі.
У великих доменах читання і запис мають різні вимоги: запис потребує валідації й узгодженості, а читання - швидкості та зручних для UI форм. Спільна модель змушує йти на компроміси й роздувається.
Команди (write) і запити (read) обробляються окремими класами, а інколи й окремими моделями та сховищами. Кожен бік оптимізується незалежно.
У прикладі спрощена форма CQRS. У повноцінній реалізації read-модель і write-модель можуть бути різними.
class CreateOrder
{
public function __construct(
public int $userId,
public array $items
) {}
}
class CreateOrderHandler
{
public function handle(CreateOrder $command): Order
{
return Order::create([
'user_id' => $command->userId,
'items' => $command->items,
]);
}
}
class GetOrder
{
public function __construct(public int $id) {}
}
class GetOrderHandler
{
public function handle(GetOrder $query): array
{
return Order::query()->find($query->id)?->toArray() ?? [];
}
}
29 / 34
Замінює null безпечним об'єктом із тим самим інтерфейсом і "порожньою" поведінкою. Прибирає перевірки на null - і де він може приховати справжню проблему.
Пропускає дані через серію кроків, де кожен трансформує вхід і передає далі. Готовий Illuminate\Pipeline\Pipeline та його зв'язок із middleware.
Senior Full-Stack PHP розробник створює й підтримує масштабовані веб-застосунки: бекенд на Laravel та фронтенд на React або Vue. Відповідає за архітектурні рішення (дизайн сервісів, моделювання даних, кешування, черги), проєктує REST API та інтеграції, рефакторить legacy-код і оптимізує запити. Вимоги: 5+ років досвіду з сучасним PHP 8.x, 3+ роки з Laravel, 3+ роки з React або Vue, сильний TypeScript, досвід з Redis і чергами, автотести та CI/CD.
Full stack розробник на PHP з фокусом на Laravel: backend-сервіси, веб-застосунки та інтеграція фронтенду на Bootstrap або Tailwind CSS, jQuery і JavaScript. Потрібна робота з MySQL у високонавантажених середовищах, кешування та черги (Redis, Memcached, RabbitMQ), підтримка legacy PHP без фреймворків і міграція на сучасні фреймворки. Вимоги: значний досвід PHP, побудова та масштабування API для high-traffic застосунків, знання HTML, CSS, JavaScript. Віддалена робота, оформлення через B2B або ФОП
Розробник 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.