Null Object - поведінка за замовчуванням
Замінює null безпечним об'єктом із тим самим інтерфейсом і "порожньою" поведінкою. Прибирає перевірки на null - і де він може приховати справжню проблему.
Почніть вводити, щоб шукати по статтях, вакансіях, компаніях, проєктах, ресурсах, пакетах, подіях і користувачах.
Template Method задає каркас алгоритму в базовому класі, а окремі кроки делегує нащадкам.
Кілька варіантів алгоритму мають однакову загальну структуру, але відрізняються деталями окремих кроків. Якщо копіювати весь алгоритм у кожен варіант, спільна частина дублюється, і виправлення доводиться вносити в усі копії.
Базовий клас реалізує загальний алгоритм як послідовність викликів, частина яких - абстрактні чи перевизначувані методи. Нащадки заповнюють лише змінні кроки, не торкаючись каркаса.
abstract class ReportGenerator
{
public function generate(): array
{
$data = $this->fetchData();
$data = $this->transform($data);
return $this->format($data);
}
abstract protected function fetchData(): array;
protected function transform(array $data): array
{
return $data;
}
abstract protected function format(array $data): array;
}
class SalesReport extends ReportGenerator
{
protected function fetchData(): array
{
return Order::query()->pluck('total')->all();
}
protected function format(array $data): array
{
return ['sum' => array_sum($data)];
}
}
22 / 34
Замінює null безпечним об'єктом із тим самим інтерфейсом і "порожньою" поведінкою. Прибирає перевірки на null - і де він може приховати справжню проблему.
Пропускає дані через серію кроків, де кожен трансформує вхід і передає далі. Готовий Illuminate\Pipeline\Pipeline та його зв'язок із middleware.
Розробник бекенду на PHP/Laravel для платформи охорони здоров'я (кредентиалінг, комплаєнс, стафінг, автоматизація робочих процесів). Завдання: проєктування REST API та масштабованої архітектури, робота з PostgreSQL, асинхронні черги (AWS SQS, RabbitMQ, Kafka), участь у AI-автоматизації та розробка краулерів. Вимоги: 4+ років бекенд або фулстек досвіду, сильний Laravel, продуктове мислення, англійська B2+.
Full Stack розробник розвиватиме та підтримуватиме вебпродукти FinTech-компанії: доопрацьовуватиме backend і frontend, функціонал особистого кабінету клієнта, інтеграції через REST API з платіжними та ідентифікаційними сервісами. Ключовий стек: PHP, Laravel, Vue.js (Vue Router, Pinia або Vuex), MySQL/PostgreSQL, Docker, Git. Вимоги: понад 3 роки комерційного Full Stack досвіду, робота з наявним кодом, участь у code review та розборі інцидентів.
Розробник повного стеку, який створює та підтримує функціонал на Angular (TypeScript) і PHP, проєктує й інтегрує REST/GraphQL API та оптимізує роботу з реляційними базами даних. Вимоги: досвід PHP 8+ з Laravel або Symfony, впевнене володіння Angular, RxJS і управлінням станом, знання MySQL/PostgreSQL, Git і CI/CD. Очікується активне використання AI-агентів (Claude Code) у щоденній роботі та участь у код-рев'ю.
Bagisto — це платформа для електронної комерції, побудована на Laravel. Вона надає готове рішення для створення та управління інтернет-магазинами з підтримкою каталогу товарів, замовлень, платежів та клієнтів.