Глоссарий

Словарь веб-разработчика

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

228 терминов
46 букв
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Сложно тестировать отдельно от класса, где используется