заметка дня Делаю дома мелкий ремонт и поймал себя на забавной… — Будни разработчика — TG.ME

#заметка дня

Делаю дома мелкий ремонт и поймал себя на забавной аналогии с разработкой.

Когда на двери начинает откалываться краска, снять только тот кусок, который уже сам отвалился, обычно недостаточно. Берёшь шпатель и проходишься по краям того, что с виду ещё кажется нормальным. Где-то краска держится крепко, а где-то следом отходит ещё сантиметр, потом ещё десять. Значит, этот слой уже был частью повреждения — просто ещё не выглядел повреждённым.

С багами часто так же. Очень легко принять первое заметное проявление проблемы за её настоящую границу.

Допустим, пользователь дважды нажал «Оплатить» и получил два заказа. Самый очевидный фикс — задизейблить кнопку после первого клика. Исходный сценарий больше не воспроизводится, и формально баг можно закрывать. Но это примерно как закрасить только то место, где старая краска уже успела отвалиться.

Куда полезнее чуть пройтись по краям: что будет, если отправить то же действие из двух вкладок? Если клиент после таймаута повторит запрос? Если два одинаковых запроса придут на backend почти одновременно?

Как тут не вспомнить некоторых разработчиков, которые просто скажут: «Нефиг делать два заказа, проблема пользователя».


Если каждый из этих сценариев вскрывает новую проблему, значит дело было не в кнопке. Настоящая граница дефекта глубже: операция должна быть идемпотентной — повтор одного и того же запроса не должен приводить к повторному выполнению действия.

Это не значит, что при каждом сколе нужно сдирать всю дверь до дерева. В какой-то момент шпатель упирается в слой, который действительно держится, и там можно остановиться.

Иногда самое полезное, что можно сделать с багом перед тем, как его чинить, — сначала сделать его немного больше.

#dev #work
👍7❤2
August 20, 2026 1.3K 4 4