Python / project-support
Поддержка и развитие Python-проектов
Предыдущий разработчик ушел, бот падает или страшно менять работающий код? Можно начать с разбора конкретной проблемы, а не с обещания переписать весь проект.
Показать существующий проект ↗Сначала восстановлю картину системы
Посмотрю, из каких частей состоит проект, как он запускается, где хранит данные и от каких сервисов зависит. Понадобятся код и описание окружения, а для конкретной ошибки - способ ее воспроизвести или журналы без секретов. На старте важно отделить срочную проблему от накопленного технического долга: их не всегда нужно решать одновременно.
Работающий код не обязан быть новым
Если существующий модуль решает задачу, у переписывания должна быть конкретная причина. Для изменений сначала определю затронутые сценарии и зависимости. Иногда достаточно исправления, иногда нужен рефакторинг отдельной части. Большой перенос не предлагаю автоматически: его стоимость и риски должны быть понятны до начала работ.
Миграции, которые можно подготовить
Изменение структуры БД или инфраструктуры требует больше, чем запуска команды на сервере. До переноса нужно понять состав данных, порядок действий, резервную копию и способ возврата. В AzamiVPN я переносил старую БД, внедрял работу с миграциями, настраивал бэкапы и переводил инфраструктуру с 3x-ui на Remnawave.
Причина сбоя должна быть видна
Без журналов и мониторинга даже повторяющаяся ошибка каждый раз выглядит новой. В сопровождении отдельно разбираю, что наблюдать и как получать сигнал о проблеме. В AzamiVPN после рефакторинга за длительный период случился один серьезный внешний инцидент: ограничения хостера нарушили связь с Telegram. Я восстановил ее через прокси. Это история конкретной работы, не обещание определенного uptime.
От одной правки к дальнейшему развитию
Работа с AzamiVPN началась с исправления оплаты, а стала долгосрочным сопровождением. Такой формат позволяет постепенно разобраться в продукте и выбирать следующие изменения по реальным потребностям. Можно прийти с багом, отдельной функцией или просьбой оценить состояние проекта. Объем поддержки и порядок дальнейших задач согласуем отдельно, без выдуманного SLA.
Что прислать для начала
- Что сейчас не работает или мешает развитию
- Стек, схема запуска и наличие доступа к исходному коду
- Когда возникает ошибка и есть ли тестовое окружение; пароли в первое сообщение не нужны
Если чего-то из списка нет, это не мешает начать разговор. Напишите своими словами, что происходит.