Дата в базе, ноль в уме
Когда я только ещё начинал свой неловкий путь девелопера, выдали мне небольшой проект (по сути — импорт данных из одной системы в другую) с заданием «добавить новую фичу». По-хорошему, задание нужно сделать было за два-три дня, я же умудрился по незнанию растянуть всё это дело на неделю с хвостиком. В понедельник, перепроверив всё, что только можно, закоммитил, собрал патч и со спокойной душой ушёл домой.
Утром меня ждало письмо с заголовком «Ни черта не работает». Удивляюсь: кроме меня, на сопровождении этого софта больше никто не работает, вчера всё проверял при тестировщике. Запускаю программу — реально ничего не работает! Точнее, записи по кругу импортируются, как в бесконечном цикле.
Данные источник поставлял в виде XML-сообщений, а уникальность проверялась по дате создания. Почему-то творец логики решил особо не заморачиватся с парсингом и сравнивал записи о дате создания как строки. В источнике формат
Две вещи, которые я вынес из всего этого:
Утром меня ждало письмо с заголовком «Ни черта не работает». Удивляюсь: кроме меня, на сопровождении этого софта больше никто не работает, вчера всё проверял при тестировщике. Запускаю программу — реально ничего не работает! Точнее, записи по кругу импортируются, как в бесконечном цикле.
Данные источник поставлял в виде XML-сообщений, а уникальность проверялась по дате создания. Почему-то творец логики решил особо не заморачиватся с парсингом и сравнивал записи о дате создания как строки. В источнике формат
dd/MM/yyyy
, в приёмнике — d/MM/yyyy
. А так как моя работа над всем этим пришлась аккурат под конец месяца, баг только сейчас и всплыл. Закончил бы раньше — так бы и не узнали до продакшна. Как это не выловили за два долгие года работы на продакшне — ума не приложу.Две вещи, которые я вынес из всего этого:
- я никогда не смогу учесть всего, и моё творение обязательно упадёт/зависнет в последнюю секунду 29 февраля високосного года;
- данные нужно приводить к виду, с которым нужно работать.
0 комментариев