Обожаю такое. Началось всё с того, что однажды к нам прилетела жалоба на небольшой процент ошибок при разборе очереди. Сужали область поиска и нашли те конкретные сообщения, на которых происходил сбой.
Казалось бы — в сообщениях нет ничего особенного. Сообщение как сообщение, но сервис на нём падает. Раскопали, что есть какая-то особенность XML, которую некоторые валидаторы не пропускают. Обидно, конечно, что наша либа не обрабатывает эту особенность как исключение, а просто крэшит приложение, но бывает.
Поменяем либу на более толерантную и заживём!
….
Перебрали несколько вариантов и энтузиазма поубавилось. Проблема воспроизводилась снова и снова, независимо от количества звёздочек и автора.
“Ага! — говорит особо внимательный разработчик, — так тут же все пакеты под node.js под капотом используют одну и ту же либу на плюсах! И проблема в этой либе, которая не обрабатывает конкретно эту исключительную ситуацию, с которой мы столкнулись”
Опечалились мы: не хотелось писать свою либу на плюсах 🙂
“Возьмём либу на Go, — предложил разработчик, — подсунем её и всё будет хорошо”.
План был отличный, кроме того, что не сработал. Угадайте, как либа на Go парсила XML? С помощью всё той же библиотеки на плюсах.
Знать, что под капотом у ваших библиотечек с гитхаба таки полезно! А мы в итоге написали предварительные проверки руками в своей обертке.
Post #437
2.89K
- 🔥 27
- 👍 10
- 🤔 4
- 🎉 2