Текст песни
— Переменная data
— Слишком абстрактно
— Переменная item
— Слишком широко
— Может, продукт вариант фо чекаут
— Вот. Теперь понятно
В pull request — двадцать строк. На складе — «XL»
Последний размер: кто успел, тот надел
Ревьюер не спрашивал: «Где здесь lock»
Зато за data поставил нам block
Заменил нэйм на item. Слышу в ответ
«Что именно? Здесь конкретики нет»
Пробел обсудили, потом — запятую
А гонку оставили в коде живую
В тэстах запросы идут чередом
Сначала один, а второй — лишь потом
Все checks зеленеют, спокоен народ
Нажали на Merge и покатилось на prod
Сначала переименуй! Точнее! Ещё точней
А два запроса разом? Не отвлекай людей
Сначала переименуй! Пусть чистым будет код
Пока мы спорим об именах, баг уезжает в prod
Nit! Nit! Nit
Имя — approve. Логика — горит
Два юзера ткнули «Купить» в один миг
В базу ворвались запрос и двойник
Оба прочли: «Сток пока не пустой»
Каждый решил: «ИКС-ЭЛЬ, значит, мой»
Первый списал, и второй не отстал
Каждый по нулю в ту же запись послал
В базе всё сходится: остатка — ноль
Но две квитанции ждут одну бандероль
Саппорт спросил: «Нам её распилить»
А склад предложил один чек отменить
В чате вопрос: «Кто проблему впустил»
Ревьюер: «Я имя три раза сменил»
Сначала переименуй! Точнее! Ещё точней
А два запроса разом? Не отвлекай людей
Сначала переименуй! Пусть чистым будет код
Пока мы спорим об именах, баг уезжает в prod
Nit! Nit! Nit
Имя — approve. Логика — горит
Прочёл. Проверил. Затем записал
А между командами лог пробежал
Не deadlock, не мистика, не тайный взлом
Меж чтением с записью вырос проём
Транзакция. Lock. Закрывается лаз
Второй видит ноль — не оформит заказ
Два параллельных проходят прогон
Один заказ создан, второй отклонён
Сначала переименуй! Точнее! Ещё точней
Но гонку проверь до релиза — она же хитрей
Сначала переименуй! Пусть ясным будет код
Иначе идеально названный баг выйдет в prod
Lock! Test! Transaction
Одна футболка — один адресат
Вот это — зелёный и честный результат
— Продукт вариант фо чекаут
— Одобрено
— Лок фо апдэйт
— Одобрено
— Футболка
— Одна
— Заказы
— Теперь тоже
Approve