Глосарій
Словник веб-розробника
Визначення технічних термінів з PHP, DevOps, MySQL та AI — з прикладами коду та поясненнями простою мовою.
228
термінів
47
літер
Т
Теорема CAP
Теорема CAP (Брюера) стверджує: розподілена система не може одночасно гарантувати всі три властивості — Consistency, Availability, Partition Tolerance. При мережевому розділенні (P) доводиться обирати між C і A.Три властивостіConsistency — кожен запит отримує найактуальніший результат або помилкуAvailability — кожен запит отримує відповідь (не обов'язково найактуальніший результат)Partition Tolerance — система продовжує працювати попри мережеві збої між вузламиПрактикаPartition Tolerance обов'язковий для будь-якої реальної розподіленої системи — мережа завжди може відмовити. Тому вибір: CP (MySQL, HBase, ZooKeeper) або AP (Cassandra, CouchDB, DynamoDB). MongoDB і Redis конфігурується під обидві моделі.
Технічний борг
Технічний борг — метафора для опису наслідків свідомих або несвідомих компромісів у коді: «зробимо швидко зараз, переробимо потім». «Потім» часто перетворюється на «ніколи», а борг накопичується у вигляді повільного, крихкого, важко змінюваного коду.Типи боргуНавмисний — свідоме рішення: «дедлайн, перепишемо після релізу». Окей якщо дійсно переписатиНенавмисний — результат браку досвіду або знань на момент написанняПобітовий — накопичується поступово: кожне «залатати замість виправити» додає до боргуНаслідкиКожна нова фіча в задовженій кодовій базі коштує дорожче: складніший рефакторинг, більше багів, повільніший онбординг. У кінці крайнього борг робить проєкт практично незмінним.УправлінняВиділяйте регулярний час на погашення боргу (10–20% спринту). Документуйте відомий борг як задачі, а не в коментарях // TODO: fix later.
Транзакція (БД)
Транзакція — одиниця роботи з базою даних, яка або виконується повністю, або не виконується взагалі. Якщо під час перерахування грошей між двома рахунками виникне помилка після дебету, але до кредиту — транзакція відкатиться і баланс залишиться незмінним.Властивості ACIDAtomicity — всі операції або всі скасовуютьсяConsistency — БД переходить з одного валідного стану в іншийIsolation — паралельні транзакції не бачать незавершених змін одна одноїDurability — після COMMIT зміни збережені навіть при збоїСинтаксис SQLBEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;Якщо між BEGIN і COMMIT виникне помилка — виконайте ROLLBACK, щоб скасувати всі зміни. Більшість драйверів і ORM загортають це автоматично.
Тригер (Trigger)
Тригер — процедура БД, що автоматично виконується у відповідь на INSERT, UPDATE або DELETE. Не потрібно викликати вручну — СУБД запускає його сама при певній події.
Приклад (MySQL)
CREATE TRIGGER after_order_insert
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
UPDATE users
SET orders_count = orders_count + 1
WHERE id = NEW.user_id;
END;
BEFORE vs AFTER
BEFORE — спрацьовує до операції. Можна змінити значення NEW.* або скасувати вставку
AFTER — після операції. Дані вже записані, можна оновити пов'язані таблиці
Коли використовувати обережно
Тригери приховують логіку: INSERT у таблицю непомітно запускає ланцюг змін в інших таблицях. Складно відлагодити і важко побачити в коді. Для більшості задач краще обробники подій у коді застосунку.