Глоссарий
Словарь веб-разработчика
Визначення технічних термінів з PHP, DevOps, MySQL та AI — з прикладами коду та поясненнями простою мовою.
228
терминов
46
букв
Д
Двухфакторная аутентификация (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.
Почему важно
Без дизайн-системы: каждая новая страница имеет немного другие отступы, цвета, размеры кнопок. Консистентность ухудшается со временем. С дизайн-системой: изменение токена --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)