Глосарій

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

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

228 термінів
47 літер
К
Каррінг (Currying)
Каррінг — техніка функціонального програмування: перетворення функції з N аргументами на послідовність функцій, кожна з яких приймає один аргумент. Дозволяє часткове застосування і створення спеціалізованих функцій. Ідея // Звичайна функція add(2, 3) → 5 // Каррована add(2)(3) → 5 // Частково застосована addTwo = add(2) addTwo(3) → 5 addTwo(10) → 12 PHP приклад $multiply = fn($a) => fn($b) => $a * $b; $double = $multiply(2); $triple = $multiply(3); echo $double(5); // 10 echo $triple(5); // 15 // Пайплайн $transform = array_map($double, [1, 2, 3, 4]); // [2, 4, 6, 8] Практична цінність Каррінг рідко використовується в PHP напряму, але концепція часткового застосування корисна для побудови пайплайнів, конфігурування функцій і колбеків. У JavaScript і Haskell — значно поширеніший.
Кешування
Кешування — збереження результату дорогої операції (SQL-запиту, HTTP-виклику, рендерингу) для повторного використання без повторного обчислення. Правильне кешування — один із найефективніших способів прискорити застосунок без зміни алгоритмів.Рівні кешуванняHTTP-кеш — браузер і проксі кешують відповіді за заголовками Cache-ControlCDN — edge-вузли кешують статику і навіть динамічні відповідіКеш застосунку — Redis або Memcached зберігають результати запитів і обчисленьOPcache — PHP кешує скомпільований байткодQuery cache БД — деякі СУБД кешують результати запитів (у MySQL 8+ прибрали)ІнвалідаціяНайскладніша частина кешування — вирішити, коли дані застаріли. Дві стратегії: TTL (час жити) — простіше, але дані можуть бути застарілими; event-based invalidation — точніше, але складніше реалізувати.
Кодування (UTF-8, ASCII, Base64)
Кодування — спосіб представлення символів у вигляді байтів. ASCII (1963) — 128 символів, 7 біт. UTF-8 (1993) — кодування Unicode: ASCII-символи займають 1 байт, інші — 2-4 байти. Стандарт де-факто для вебу. UTF-8 у PHP PHP-рядки — послідовності байтів, не символів. strlen('Привіт') = 12 (байти), не 6. Для коректної роботи з Unicode — mb_ функції: mb_strlen(), mb_substr(), mb_strtolower(). Base64 Кодує бінарні дані у рядок із 64 символів (A-Z, a-z, 0-9, +, /). Збільшує розмір на ~33%. Не шифрування — лише кодування. Використання: Передача бінарних даних через текстові протоколи (email, JSON) Data URL: data:image/png;base64,iVBOR... JWT (заголовок і payload — Base64URL) base64_encode('Hello') // "SGVsbG8=" base64_decode('SGVsbG8=') // "Hello"
Конкурентність та паралелізм
Конкурентність (Concurrency) і паралелізм (Parallelism) — пов'язані, але різні концепції. Конкурентність — про структуру, паралелізм — про виконання. Роб Пайк: «Конкурентність — про роботу з кількома речами одночасно; паралелізм — про виконання кількох речей одночасно».РізницяКонкурентність — кілька задач прогресують, перемикаючись між собою. Одне ядро може бути конкурентним через time-slicingПаралелізм — задачі виконуються буквально одночасно на кількох ядрах/CPUПотоки, процеси, корутиниProcess — ізольований простір пам'яті. Дорогий для запуску і перемиканняThread — спільна пам'ять, легший за процес. Race conditions!Coroutine / Fiber — кооперативне перемикання без ОС. Дуже легкі (PHP Fibers, Go goroutines, Python async)PHPPHP традиційно синхронний: один запит = один процес. Для справжнього паралелізму — Swoole, ReactPHP, або горизонтальне масштабування через PHP-FPM.
Коротке замикання (Short-Circuit)
Short-circuit evaluation — оптимізація обчислення логічних виразів: якщо результат вже відомий після першого операнда, другий не обчислюється. Поширена поведінка у всіх мовах програмування. Правила A && B — якщо A = false, B не обчислюється (результат вже false) A || B — якщо A = true, B не обчислюється (результат вже true) Практичне застосування // Безпечна перевірка перед зверненням if ($user && $user->isAdmin()) { ... } // Default value — якщо перше falsy, повертається друге $name = $input['name'] ?? 'Guest'; // Умовне виконання $debug && error_log($message); // Guard clause — зупинити ланцюжок $result = getData() || throw new NotFoundException(); Побічні ефекти Якщо другий операнд має побічний ефект (запит до БД, запис у лог) — він не виконається при short-circuit. Враховуйте це при проєктуванні умов.