Skip to content

Refactoring kobin ilia - #25

Open
ikobin wants to merge 13 commits into
sputnik-llc:mainfrom
ikobin:refactoring_kobin_ilia
Open

ikobin wants to merge 13 commits into
sputnik-llc:mainfrom
ikobin:refactoring_kobin_ilia

Conversation

@ikobin

@ikobin ikobin commented Sep 12, 2026

Copy link
Copy Markdown

Провёл рефакторинг MVP файлообменника без изменения бизнес-логики и контракта API: бэкенд разбит на слои (api / services / repositories / workers + config, database, exceptions, models, schemas), роуты только принимают запрос и вызывают сервис, доменные ошибки мапятся в HTTP на уровне API, репозитории изолируют SQL, а storage / scan / metadata вынесены в отдельные тестируемые модули; воркер больше не держит вечный event loop и второй engine (asyncio.run + NullPool на задачу).
Из неочевидной оптимизации: скан не читает файл, но при этом было три последовательных Celery-задачи с повторными походами в Redis и БД переписаны в один pipeline с теми же тремя коммитами, а загрузка стримится чанками на диск вместо чтения целиком в RAM.
Фронтенд разбит по FSD (app / widgets / features / entities / shared), список тихо опрашивается раз в 3 секунды, пока файл в uploaded/processing.
Дополнительно: удаление файла чистит алерты, воркер ждёт Redis, Postgres слушает 5433, из frontend Dockerfile убран несуществующий .env.production.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant