Глоссарий

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

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

228 терминов
46 букв
Т
Теорема 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 незаметно запускает цепочку изменений в других таблицах. Сложно отладить и невидимо в коде приложения. Для большинства задач лучше обработчики событий в коде.