Глосарій
Словник веб-розробника
Визначення технічних термінів з PHP, DevOps, MySQL та AI — з прикладами коду та поясненнями простою мовою.
228
термінів
47
літер
T
TCP і UDP
TCP і UDP — два транспортних протоколи інтернету. TCP гарантує доставку і порядок пакетів ціною накладних витрат. UDP швидший, але «вогонь і забудь» — без гарантій.TCP (Transmission Control Protocol)З'єднання-орієнтований: три-рукостискання (SYN → SYN-ACK → ACK)Гарантована доставка: втрачені пакети повторно надсилаютьсяКонтроль порядку: дані приходять у правильному порядкуКонтроль потоку і перевантаженняВикористання: HTTP/HTTPS, SSH, email, БДUDP (User Datagram Protocol)Без встановлення з'єднання, без підтвердженняМенша затримка — немає накладних витрат TCPПакети можуть губитись і приходити не по порядкуВикористання: відеостримінг, VoIP, DNS, онлайн-ігри, HTTP/3 (QUIC над UDP)
TDD (Test-Driven Development)
TDD — методологія розробки: спочатку пишеш тест, що провалюється, потім мінімальний код, щоб тест пройшов, потім рефакторинг. Цикл «червоний → зелений → рефакторинг» повторюється для кожної маленької функціональності.Цикл Red-Green-RefactorRed — написати тест для нової поведінки. Він провалюється, бо коду ще немаєGreen — написати мінімальний код, що змушує тест пройти. Будь-який спосібRefactor — покращити код без зміни поведінки. Тест залишається зеленимПереваги100% покриття новим кодом за визначеннямДизайн виходить тестабельним — немає жорстких залежностейТести документують поведінкуКритикаУповільнює початкову розробку. Важко застосувати до UI, legacy-коду та інтеграцій. Більшість команд застосовує TDD вибірково, а не скрізь.
Trait
Trait — механізм повторного використання коду в мовах з одиночним успадкуванням. Trait містить реальні методи та властивості, які «вставляються» в клас оператором use. PHP підтримує traits з версії 5.4.Коли кориснийКоли кілька непов'язаних класів потребують однакової поведінки, але спільний базовий клас не підходить. Наприклад, Timestampable, SoftDeletable, HasSlug — поведінки, що логічно не пов'язані між собою.Підводні каменіTrait — не абстракція, а копіювання коду. Не замінює інтерфейсПри конфлікті імен між двома traits потрібне явне вирішення через insteadof / asСкладно тестувати окремо від класу, де використовується