Привет, друзья! 👋
Завершил третий спринт Jobs Service: 7 из 7 задач закрыты ✅
Цель была в том, чтобы одна и та же вакансия из разных источников не дублировалась. Что получилось:
▪️ 🧩 Дедупликация. Вакансии с одинаковыми названием и компанией из двух источников теперь распознаются и показываются как одна, со ссылками на все источники. Чтобы параллельные задачи не создавали дубли, сопоставление выполняется под блокировкой в PostgreSQL.
▪️ 🛠 Параллельно закрыл ещё 32 задачи техдолга: убрал дублирование в коде и тестах, добавил защиту данных от ложных обновлений и повторов, сделал конфигурацию аккуратнее.
▪️ 🔐 Безопасность и CI. Ещё 7 задач по безопасности: теперь на каждый pull request автоматически проверяются типы, стиль, сборка, тесты и покрытие за 2-3 минуты, а ещё сканирование секретов и статический анализ кода. Зависимости parser ставятся строго по lock-файлу с хэшами, порты базы и Redis закрыты, у Redis появился пароль.
Автоматизированных тестов теперь больше 680.
Главный вывод ретроспективы: основная нагрузка была не в самой дедупликации, а в том, чтобы вокруг неё сохранялись качество и согласованность: дубли в коде, устаревшие документы, проверки. Курьёз спринта: сканер секретов в CI сработал на моей же документации, где я описывал его ложное срабатывание. Теперь любую новую проверку запускаю на итоговой ветке, а перед закрытием задачи сверяю документы и карточки с результатом.
Сегодня стартовал четвёртый спринт, займусь страницей деталей вакансии. Следите за продолжением! 🚀