Анонс Ruby digest: Сложнее, чем кажется

Nikolai Rubanov (Darksa)
Заметки про Evrone
2 min readMay 3, 2023

В майском выпуске мы разберёмся, почему тесты в CI глючат чаще, чем при локальных прогонах. Также расскажем о подводных камнях при парсинге CSV-файлов и предупреждениях об устаревании.

Один и тот же тест иногда может проходить успешно, а иногда заканчиваться падением, даже если код не менялся. Такое поведение характерно, если в коде приложения или теста проявляется своеобразный недетерминизм. В таком коде 2 + 2 не всегда будет равно 4. Иногда это может быть 3, а иногда 5. При запуске на тестовый прогон CI, ситуации с нестабильностью возникают значительно чаще, чем при локальном прогоне. Причин много, например, утечка состояния или появление условий для состояния гонки.

CSV-формату «стукнуло» уже более полувека, но он продолжает оставаться сверх популярным. Его используют для того, чтобы хранить таблицы в текстовом виде. В идеальном мире CSV-файлы должны были упростить парсинг, но если вы разбираете файлы, загруженные пользователями, то столкнётесь с проблемами. Файлы могут иметь искажённый формат, иметь неправильную кодировку, повторяющиеся заголовки или пустые строки.

Для новичка любой warning поначалу кажется чем-то из ряда вон выходящим и требующим внимания. У опытных разработчиков вырабатывается чёткая установка: warning — это всего лишь warning, рутинное предупреждение. Примерно так курильщики реагируют на предупреждающие надписи на пачках сигарет. Если мы говорим о deprecation warnings, то в большинстве случаев их можно спокойно игнорировать. Но при переходе на следующую версию того же Rails — это первое на что стоит обратить внимание.

Подробности читайте в полной версии нашего дайджеста.

--

--