bash.im ithappens.me zadolba.li
12389

Дата в базе, ноль в уме

Когда я только ещё начинал свой неловкий путь девелопера, выдали мне небольшой проект (по сути — импорт данных из одной системы в другую) с заданием «добавить новую фичу». По-хорошему, задание нужно сделать было за два-три дня, я же умудрился по незнанию растянуть всё это дело на неделю с хвостиком. В понедельник, перепроверив всё, что только можно, закоммитил, собрал патч и со спокойной душой ушёл домой.

Утром меня ждало письмо с заголовком «Ни черта не работает». Удивляюсь: кроме меня, на сопровождении этого софта больше никто не работает, вчера всё проверял при тестировщике. Запускаю программу — реально ничего не работает! Точнее, записи по кругу импортируются, как в бесконечном цикле.

Данные источник поставлял в виде XML-сообщений, а уникальность проверялась по дате создания. Почему-то творец логики решил особо не заморачиватся с парсингом и сравнивал записи о дате создания как строки. В источнике формат dd/MM/yyyy, в приёмнике — d/MM/yyyy. А так как моя работа над всем этим пришлась аккурат под конец месяца, баг только сейчас и всплыл. Закончил бы раньше — так бы и не узнали до продакшна. Как это не выловили за два долгие года работы на продакшне — ума не приложу.

Две вещи, которые я вынес из всего этого:

  • я никогда не смогу учесть всего, и моё творение обязательно упадёт/зависнет в последнюю секунду 29 февраля високосного года;

  • данные нужно приводить к виду, с которым нужно работать.