Глоссарий
Словарь веб-разработчика
Визначення технічних термінів з PHP, DevOps, MySQL та AI — з прикладами коду та поясненнями простою мовою.
228
терминов
46
букв
G
Git
Git — распределённая система контроля версий. Каждый разработчик имеет полную копию репозитория (включая всю историю), может работать офлайн и синхронизироваться с командой через push/pull. Фактический стандарт в разработке ПО.Ключевые концепцииCommit — снимок состояния файлов с сообщением. Неизменяем после созданияBranch — параллельная линия разработки. Дешёвый и быстрый в GitMerge / Rebase — интеграция изменений из одной ветки в другую. Merge сохраняет полную историю, rebase делает линейнуюRemote — копия репозитория на сервере (GitHub, GitLab, Bitbucket)Базовые командыgit init / git clone
git add . && git commit -m "message"
git push / git pull
git checkout -b feature/name
git merge / git rebaseСтратегии ветвленияGit Flow (develop/release/hotfix), GitHub Flow (main + feature branches), Trunk-Based Development — без долгоживущих веток. Выбор зависит от размера команды и частоты релизов.
GitOps
GitOps — практика управления инфраструктурой и деплоями через Git как единый источник правды. Желаемое состояние системы описывается в репозитории; специальный оператор автоматически синхронизирует реальное состояние с описанным.
Ключевые принципы
Декларативность — состояние инфраструктуры описывается файлами (Kubernetes manifests, Helm charts)
Git как единый источник — любое изменение проходит через Pull Request с ревью и CI
Автоматическая синхронизация — оператор (ArgoCD, Flux) отслеживает Git и применяет изменения
Наблюдаемость — легко сравнить текущее состояние кластера с описанным в Git
GitOps vs CI/CD Push
Push — CI-пайплайн сам деплоит (kubectl apply). Требует credentials в CI
Pull (GitOps) — оператор внутри кластера сам тянет изменения из Git. Меньше поверхность атаки
Инструменты
ArgoCD и Flux CD — наиболее популярные GitOps-операторы для Kubernetes.
Graceful Degradation
Graceful Degradation (корректная деградация) — подход, при котором система продолжает частично функционировать при отказе компонентов, вместо полной остановки. «Деградировать корректно» лучше, чем «упасть полностью».ПримерыПоиск не отвечает → показать популярный контент вместо ошибкиRedis недоступен → повышенная нагрузка на БД, но сайт работаетПлатёжный провайдер недоступен → принять заказ, обработать позжеJavaScript заблокирован → базовая HTML-версия страницы всё равно доступнаProgressive Enhancement vs Graceful DegradationProgressive Enhancement — начинаем с базового опыта и постепенно добавляем функциональность для поддерживаемых средGraceful Degradation — проектируем для современной среды, но обеспечиваем fallback для слабыхРеализацияCircuit Breaker, fallback-ответы, timeout + retry, feature flags для отключения проблемных фич.
Graceful Shutdown
Graceful Shutdown (корректное завершение) — процесс остановки сервиса без резкого прерывания: сначала он перестаёт принимать новые запросы, завершает обработку активных и только потом останавливается. Альтернатива — kill -9, обрывающий соединения посередине.
Зачем
Не прерывать обрабатываемые HTTP-запросы
Завершить транзакции в БД
Зафиксировать сообщения из очереди перед остановкой
Не показывать ошибки пользователям при деплое
Unix сигналы
SIGTERM — запрос на завершение (graceful). SIGKILL — принудительное завершение (нельзя перехватить). При деплое обычно отправляют SIGTERM, ждут N секунд (timeout), затем SIGKILL.
В PHP
pcntl_signal(SIGTERM, function () {
$this->shouldStop = true; // остановить loop воркера после текущей задачи
});
pcntl_async_signals(true);
Kubernetes
terminationGracePeriodSeconds — время ожидания между SIGTERM и SIGKILL. По умолчанию 30 секунд.
GraphQL
GraphQL — язык запросов для API, разработанный Facebook. Клиент сам описывает, какие именно поля ему нужны, и получает ровно их — без лишних данных (overfetching) и без необходимости делать несколько запросов (underfetching).GraphQL vs RESTREST: GET /users/42 возвращает весь объект User — клиент берёт только name. GraphQL: query { user(id: 42) { name } } — сервер возвращает только name. Один endpoint вместо десятков.Ключевые концепцииQuery — чтение данныхMutation — изменение данныхSubscription — реальное время через WebSocketSchema — типизированный контракт между клиентом и серверомКогда выбирать GraphQLИдеально для мобильных клиентов (минимум трафика), сложных вложенных данных и когда много разных клиентов с разными потребностями. REST проще для простого CRUD.
gRPC
gRPC (Google Remote Procedure Call) — фреймворк для межсервисной коммуникации, использующий Protocol Buffers для сериализации и HTTP/2 в качестве транспорта. В 5–10 раз быстрее JSON/HTTP в большинстве задач.Protocol BuffersСхема описывается в .proto-файле, из которого генерируется код клиента и сервера на любом поддерживаемом языке. Бинарный формат — компактнее и быстрее JSON.message User {
int32 id = 1;
string name = 2;
}
service UserService {
rpc GetUser (UserRequest) returns (User);
}Преимущества перед RESTСкорость: бинарная сериализация, мультиплексирование HTTP/2Стриминг: одностороннее и двустороннееСтрогая типизация: изменение схемы фиксируется при компиляцииОграниченияgRPC плохо подходит для публичных API (браузеры не поддерживают без grpc-web proxy). Идеален для внутренней коммуникации между микросервисами.