Глосарій
Словник веб-розробника
Визначення технічних термінів з PHP, DevOps, MySQL та AI — з прикладами коду та поясненнями простою мовою.
228
термінів
47
літер
Д
Двофакторна автентифікація (2FA)
Двофакторна автентифікація (2FA/MFA) — захист облікового запису двома незалежними доказами особистості. Навіть якщо пароль скомпрометований — зловмисник не увійде без другого фактора.Три типи факторівТе, що ти знаєш — пароль, PINТе, що ти маєш — SMS-код, TOTP-додаток (Google Authenticator, Authy), апаратний ключ (YubiKey)Те, чим ти є — відбиток пальця, Face IDTOTPTime-based One-Time Password — найпоширеніший метод. Застосунок і сервер знають спільний секрет і час. Кожні 30 секунд обидва генерують однакове 6-значне число за алгоритмом HMAC-SHA1.SMS 2FAНайзручніший, але найменш безпечний варіант: SIM-swapping, SS7-атаки. Для критичних систем перевагу надають TOTP або апаратним ключам.
Дедлок (Deadlock)
Дедлок — ситуація в БД або багатопотоковому коді, коли два процеси чекають один на одного і жоден не може продовжити роботу. Транзакція A заблокувала ресурс 1 і чекає ресурс 2, транзакція B — навпаки.Як виникаєКласичний приклад: переказ грошей. Транзакція A блокує рахунок 1, потім намагається заблокувати рахунок 2. Транзакція B заблокувала рахунок 2 і чекає рахунок 1. Обидві чекають вічно.Як СУБД вирішуєMySQL та інші СУБД автоматично виявляють дедлок і «вбивають» одну з транзакцій (з меншим обсягом змін). Ця транзакція завершується помилкою і повинна бути перезапущена додатком.ПрофілактикаЗавжди звертатись до ресурсів в одному порядку в усіх транзакціяхСкорочувати час утримання блокувань — тримати транзакцію якомога коротшоюВикористовувати SELECT ... FOR UPDATE лише де справді потрібно
Дерево (структура даних)
Дерево — ієрархічна структура даних з вузлами і ребрами. Один кореневий вузол, кожен вузол може мати дочірні. Немає циклів. DOM HTML, файлова система, синтаксичне дерево програми — всі є деревами.Ключові терміниКорінь (root) — єдиний вузол без батькаЛистя (leaf) — вузол без дочірніхВисота — максимальна глибина від кореня до листяТипи деревBinary Tree — кожен вузол має ≤ 2 дочірніхBST (Binary Search Tree) — ліве дочірнє < вузол < праве. Пошук O(log n)B-Tree — багатошляхове, збалансоване. Основа індексів MySQL/PostgreSQLTrie — рядкове дерево для швидкого пошуку за префіксом (автодоповнення)ОбходиPre-order (корінь → ліво → право), In-order (ліво → корінь → право, дає відсортований BST), Post-order, BFS (рівень за рівнем).
Дизайн-система
Дизайн-система — колекція готових UI-компонентів, патернів, токенів (кольори, шрифти, відступи) і правил їх використання. Єдина «мова дизайну» для всієї продуктової команди — дизайнери і розробники говорять одними термінами.
З чого складається
Токени — іменовані значення: --color-primary: #c05c08, --spacing-md: 16px
Компоненти — кнопки, форми, модалі, картки. Готові до використання блоки
Патерни — правила комбінування компонентів (форми реєстрації, пагінація)
Документація — коли і як використовувати кожен компонент
Популярні дизайн-системи
Material Design (Google), Fluent (Microsoft), Tailwind UI, Ant Design, Radix UI.
Чому важливо
Без дизайн-системи: кожна нова сторінка має трохи інші відступи, кольори, розміри кнопок. Consistence погіршується з часом. З дизайн-системою: зміна токену --color-primary оновлює весь продукт.
Динамічне програмування
Динамічне програмування (DP) — техніка оптимізації рекурсивних алгоритмів: результати підзадач кешуються, щоб не обчислювати їх повторно. Перетворює задачі з O(2ⁿ) на O(n) або O(n²).
Дві підходи
Top-down (мемоізація) — рекурсія + кеш результатів. Природніший для запису
Bottom-up (табуляція) — ітеративно заповнюємо таблицю від базових випадків
Числа Фібоначчі
// Без DP: O(2^n)
fib(n) = fib(n-1) + fib(n-2)
// З мемоізацією: O(n)
$memo = [];
function fib(int $n): int {
global $memo;
if ($n
Доступність (a11y)
Доступність (Accessibility, a11y) — розробка вебу так, щоб люди з обмеженими можливостями могли повноцінно ним користуватись. Близько 15% населення має якесь обмеження. В багатьох країнах доступність вебу — законодавча вимога.Основні категоріїЗорові — сліпота, слабкий зір. Інструмент: screen reader (NVDA, VoiceOver)Слухові — глухота. Потрібні субтитри та транскриптиМоторні — керування лише клавіатурою. Весь функціонал має бути доступний без мишіКогнітивні — простота мови, передбачувана навігаціяПрактикаСемантичний HTML: <button> замість <div onclick>Alt-тексти для зображеньКонтрастність тексту: мінімум 4.5:1 (WCAG AA)aria-label, role для кастомних компонентівВидиме фокусування клавіатури (:focus-visible)