Глосарій

Словник веб-розробника

Визначення технічних термінів з PHP, DevOps, MySQL та AI — з прикладами коду та поясненнями простою мовою.

228 термінів
47 літер
А
Абстрактний клас
Абстрактний клас — клас, від якого не можна створити екземпляр безпосередньо. Він визначає загальну структуру і може містити як реалізовані методи, так і абстрактні (лише сигнатура, реалізація — у підкласі).Коли обирати абстрактний клас vs інтерфейсАбстрактний клас — коли підкласи мають спільний код (shared logic), і між ними є відношення «є різновидом» (is-a). Не можна реалізувати кількаІнтерфейс — коли потрібен контракт без реалізації; клас може реалізовувати кілька інтерфейсівПрикладabstract class Shape { abstract public function area(): float; public function describe(): string { return "Area: " . $this->area(); // спільний код } } class Circle extends Shape { public function area(): float { return M_PI * $this->r ** 2; } }
Автомасштабування
Автомасштабування (Auto Scaling) — автоматична зміна кількості серверів або ресурсів залежно від навантаження. При пікових запитах — додаються нові інстанції. При спаді — зайві вимикаються. Платите тільки за потрібну потужність.Горизонтальне vs ВертикальнеHorizontal scaling (scale out/in) — додаємо/видаляємо інстанції. Необмежено масштабується, потребує stateless-застосункуVertical scaling (scale up/down) — збільшуємо/зменшуємо потужність одного сервера (CPU, RAM). Простіше, але є лімітМетрики для тригерівCPU: понад 70% → додати інстанціюMemory: понад 80% → масштабуватиRPS / Queue depth — специфічні для застосункуПроблема statefulАвтомасштабування працює тільки для stateless-застосунків. Сесії і кеш мають зберігатись у зовнішньому сховищі (Redis), а не в пам'яті процесу.
Адаптивний дизайн
Адаптивний дизайн (Responsive Design) — підхід до верстки, при якому сторінка коректно відображається на будь-якому розмірі екрану: від смартфона до великого монітора. ~60% інтернет-трафіку зараз мобільний.Ключові інструментиFluid Grid — відносні одиниці (%, fr) замість фіксованих пікселівFlexible Images — max-width: 100%, <picture> з різними src під різні розміриMedia Queries — CSS-правила, що застосовуються при певній ширині екрануBreakpoints/* Mobile first */ .container { padding: 16px; } @media (min-width: 768px) { .container { padding: 24px; } } @media (min-width: 1280px) { .container { max-width: 1280px; margin: 0 auto; } }Mobile First vs Desktop FirstMobile First — базові стилі для мобільного, розширення для більших екранів (min-width). Рекомендований підхід: змушує думати про найважливіший контент.
Антипатерни
Антипатерн — поширене "рішення" проблеми, яке на перший погляд виглядає логічно, але на практиці шкодить: ускладнює код, знижує продуктивність або створює нові проблеми. Поширені антипатерни God Object — клас, що знає і робить все. Порушує SRP. Ознака: більше 500 рядків коду і 20+ методів Magic Numbers — числа без назви прямо в коді: if ($status === 3). Замінюй константами або enum Copy-Paste Programming — дублювання коду замість абстракції. Порушення DRY Premature Optimization — оптимізація до того, як виміряно де проблема Spaghetti Code — заплутаний потік виконання без чіткої структури Golden Hammer — застосування одного інструменту до будь-якої задачі Lava Flow — застарілий код, який ніхто не чіпає зі страху щось зламати N+1 Query — окремий запит для кожного запису в циклі
Атрибути PHP (Attributes)
Атрибути (PHP 8.0) — структурні метадані, що додаються до класів, методів, властивостей і параметрів. Замінили docblock-анотації (@Route, @Inject) нативним синтаксисом, що перевіряється статичним аналізом. Синтаксис #[Attribute] class Route { public function __construct( public string $path, public string $method = 'GET', ) {} } #[Route('/users', 'GET')] #[Middleware(AuthMiddleware::class)] class UserController { #[Route('/users/{id}')] public function show(int $id): Response { ... } } Читання атрибутів $ref = new ReflectionClass(UserController::class); $attrs = $ref->getAttributes(Route::class); foreach ($attrs as $attr) { $route = $attr->newInstance(); // Route('/users', 'GET') } Де використовуються DI-контейнери, роутери, ORM-маппінг, валідатори, серіалізатори. Symfony, Doctrine активно використовують атрибути замість XML/YAML конфігурації.