Template Method - спільний алгоритм
Задає каркас алгоритму в базовому класі, а змінні кроки делегує нащадкам. Чим відрізняється від Strategy і коли спадкування поступається композиції.
Почніть вводити, щоб шукати по статтях, вакансіях, компаніях, проєктах, ресурсах, пакетах, подіях і користувачах.
Visitor дозволяє додавати нові операції над набором об'єктів, не змінюючи самі їхні класи.
Над набором різнотипних об'єктів (дерево, AST, доменні моделі) треба виконувати багато різних операцій - підрахунок податку, експорт, валідацію. Якщо тримати кожну операцію методом у класах, моделі захаращуються, а нова операція зачіпає їх усі.
Логіка операції виноситься в окремий клас-відвідувач із методом на кожен тип об'єкта. Об'єкти лише "приймають" візитора через accept() і викликають відповідний метод. Нову операцію додаєш одним новим візитором, не торкаючись класів об'єктів.
interface Visitable
{
public function accept(Visitor $visitor): void;
}
interface Visitor
{
public function visitOrder(Order $order): void;
}
class Order implements Visitable
{
public function __construct(public int $total) {}
public function accept(Visitor $visitor): void
{
$visitor->visitOrder($this);
}
}
class TaxVisitor implements Visitor
{
public function visitOrder(Order $order): void
{
$order->total += 10;
}
}
23 / 23
Задає каркас алгоритму в базовому класі, а змінні кроки делегує нащадкам. Чим відрізняється від Strategy і коли спадкування поступається композиції.
Виносить взаємозамінні алгоритми в окремі класи за спільним інтерфейсом. Тарифи, доставка, знижки - без каскадів if, з вибором через контейнер.
Розробка backend-функцій та API для платформи управління юридичними документами з використанням PHP/Laravel. Вимагається 3+ років досвіду розробки, глибоке знання PHP/Laravel, REST API, SQL/MySQL, AWS. Потрібна здатність інтегрувати AI-інструменти у робочий процес, базові знання React та Python, англійська B1+.
Старший PHP-розробник для модернізації великомасштабної платформи онлайн-маркетплейсу. Займатиметься рефакторингом legacy-коду, міграцією на сучасні версії PHP та Laravel, оптимізацією продуктивності. Вимагається 8+ років досвіду з PHP, Laravel, MySQL, Docker, Redis; здатність перевіряти та покращувати AI-згенерований код.
Керівник IT-напрямку в фінансовій компанії. Відповідальність за інфраструктуру (24/7 стабільність, VMware/Hyper-V), розробку продуктів (CRM, REST/SOAP інтеграції), кібербезпеку та комплаєнс НБУ, управління IT-командою. Вимоги: 2+ років на керівних позиціях,技нічна освіта, досвід з PHP/Laravel, MS SQL/PostgreSQL, архітектури мереж.
Bagisto — це платформа для електронної комерції, побудована на Laravel. Вона надає готове рішення для створення та управління інтернет-магазинами з підтримкою каталогу товарів, замовлень, платежів та клієнтів.