Глосарій
Словник веб-розробника
Визначення технічних термінів з PHP, DevOps, MySQL та AI — з прикладами коду та поясненнями простою мовою.
228
термінів
47
літер
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 простіший для simple 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). Ідеальний для внутрішньої комунікації між мікросервісами.