Bridge - відокремлення абстракції
Патерн Bridge розділяє абстракцію та її реалізацію на дві окремі ієрархії, щоб змінювати їх незалежно. Це рятує, коли є кілька незалежних вимірів варіативності і за наївного підходу класи множаться комбінаторно.
Почніть вводити, щоб шукати по статтях, вакансіях, компаніях, проєктах, ресурсах, пакетах, подіях і користувачах.
Патерн Composite дозволяє працювати з деревом об'єктів так само, як з одним об'єктом. І окремий «лист», і «гілка» (група) реалізують той самий інтерфейс, тож клієнт викликає в них однакові методи.
Це корисно для ієрархічних структур: меню та підменю, дерева категорій, вкладені права доступу, кошик із бандлами, UI-компоненти.
Клієнтський код не відрізняє лист від групи - рекурсія обходу прихована в самих об'єктах. Таким чином, логіка стає простішою і однаковою для всіх рівнів вкладеності.
У прикладі нижче і окремий товар (ProductItem), і набір товарів (Bundle) вміють рахувати total(). Бандл рахує суму своїх дітей, які теж можуть бути бандлами - глибина дерева не обмежена.
Коли НЕ варто: якщо структура завжди пласка (немає вкладеності) - Composite надлишковий, вистачить звичайної колекції.
interface CartItem
{
public function total(): int;
}
class ProductItem implements CartItem
{
public function __construct(private int $price) {}
public function total(): int
{
return $this->price;
}
}
class Bundle implements CartItem
{
private array $items = [];
public function add(CartItem $item): void
{
$this->items[] = $item;
}
public function total(): int
{
return array_sum(array_map(
fn (CartItem $item) => $item->total(),
$this->items
));
}
}
8 / 8
Патерн Bridge розділяє абстракцію та її реалізацію на дві окремі ієрархії, щоб змінювати їх незалежно. Це рятує, коли є кілька незалежних вимірів варіативності і за наївного підходу класи множаться комбінаторно.
Патерн Adapter потрібен, коли два компоненти мають несумісні інтерфейси. Він дозволяє підключити сторонню бібліотеку без переписування коду.
Привіт! Ми — KRONAS, перша українська компанія на ринку меблевих комплектуючих і фурнітури з майже 30-річною історією та міжнародним досвідом. Наша команда — це понад 500 професіоналів, які створюють комфортні умови праці та постійно розвиваються разом із компанією. Ми запрошуємо тебе на позицію Junior Back-end розробника у Києві. Що ти робитимеш у нас: Розроблятимеш і підтримуватимеш серверну частину наших внутрішніх і зовнішніх систем. Працюватимеш над оптимізацією продуктивності та надійності бекенду. Співпрацюватимеш з командою розробників, аналітиків і тестувальників для реалізації нових функцій і покращень. Брати участь у проєктуванні архітектури застосунків та впровадженні сучасних технологій. Вирішуватимеш технічні задачі, що підтримують масштабування бізнесу KRONAS і покращують користувацький досвід. Кого ми шукаємо: Розробника з досвідом роботи на позиції Junior Back-end не менше 1 років. **Для позиції нам важливо, щоб ти знав та вмів використовувати знання з математики та геометрії Досвід з docker, REST Api, php. Того, хто вміє працювати в команді, відкритий до спільного пошуку рішень та прагне розвиватися. Освіта не є визначальною — цінуємо твої навички, досвід і бажання вчитися. Що пропонуємо ми: Роботу в стабільній і шанованій компанії з майже 30-річною історією та міжнародним досвідом. Ринкову та своєчасну заробітну плату з перспективою зростання залежно від твоїх результатів. Графік роботи: Гібрид/ офіс/ віддалено. Понеділок-п'ятниця з 9:00 до 18:00 Дружню, підтримуючу атмосферу і сильну корпоративну культуру, де цінують кожного співробітника. Можливості для професійного зростання і навчання — ми адаптуємо і розвиваємо таланти. Соціальні гарантії, корпоративні бонуси, знижки на продукцію компанії. Участь у розвитку інноваційних проєктів, які підтримують бізнес KRONAS та роблять життя клієнтів кращим. Приєднуйся до команди KRONAS — компанії, де цінують людей, підтримують прагнення до розвитку і створюють комфортне робоче середовище. Надсилай нам своє резюме та стань частиною нашої сім'ї вже сьогодні!
Компанія "Центральне відділення комплектування НГУ" у місті Дніпро шукає в свою команду Backend Developer (PHP/Laravel), розробника систем цифрової логістики. Ми спеціалізуємося на розробці та впровадженні інноваційних рішень у сфері логістики та комплектування, що допомагають нашим клієнтам оптимізувати процеси та підвищувати ефективність бізнесу. Обов’язки: Розробка та підтримка систем цифрової логістики на базі PHP та фреймворку Laravel; Участь у проектуванні та розробці нового функціоналу; Взаємодія з іншими відділами для вирішення завдань та вдосконалення продукту. Вимоги: Досвід роботи з PHP та фреймворком Laravel від 2 років; Знання SQL та базове розуміння принципів роботи баз даних; Бажання вчитися та розвиватися в обраній сфері; Вміння працювати в команді та брати на себе відповідальність. Переваги: Конкурентна заробітна плата та можливість кар'єрного зростання; Цікаві проекти та можливість впливати на їх розвиток; Дружний колектив та комфортні умови праці. Якщо ви маєте бажання приєднатися до нашої команди та внести свій внесок у розвиток цифрової логістики, надсилайте своє резюме! Ми чекаємо саме на вас!
Потрібен Fulstack developer. Ми спеціалізуємося на розробці веб-сайтів, CRM/ERP систем та інших програмних рішень для клієнтів з України, Європи та США. Ми пропонуємо вам можливість працювати віддалено з будь-якої точки світу, в команді професіоналів з багаторічним досвідом. Ви будете відповідати за розробку та підтримку веб-додатків, участь у проектуванні архітектури, взаємодію з клієнтами та іншими членами команди. Вимоги: Досвід роботи на позиції Fullstack Developer від 3 років Практичний досвід роботи з PHP, Larave, Filament Знання JavaScript (ES6+), HTML, CSS Досвід роботи з Vue Досвід роботи з базами даних (SQL або NoSQL) Розуміння принципів роботи RESTful API Активне використання АІ в розробці Вміння працювати в команді та готовність вчитися новому Якщо ви готові приєднатися до нашої команди та прийняти виклик розробки високоякісних програмних продуктів, надсилайте свої резюме. Ми готові розглянути кандидатів без вищої освіти, головне — ваш досвід та вміння.
Bagisto — це платформа для електронної комерції, побудована на Laravel. Вона надає готове рішення для створення та управління інтернет-магазинами з підтримкою каталогу товарів, замовлень, платежів та клієнтів.