TGViewer
Python RU Python RU @pro_python_code · 12.4K subscribers
Post #1979 1.76K
✔️ Как организовать архитектуру большого Python-проекта?

Главная цель - чтобы через полгода было не стыдно открывать код: понятно где что лежит, как это тестировать и куда встраивать новые фичи.

Основные принципы:
- Разделяй по ответственности, а не по типу файла
- Минимизируй связь между слоями
- Явно отделяй ядро домена от инфраструктуры (БД, HTTP, очереди)

Пример базовой структуры:
- app/
- api/ - HTTP handlers, REST, gRPC, CLI
- services/ - бизнес-логика, сценарии use case
- domain/ - сущности, модели, value objects
- repositories/ - работа с БД, кэшами, внешними сервисами
- config/ - настройки, env, схемы конфигурации
- utils/ - вспомогательные функции, которые не завязаны на домен
- tests/ - тесты по тем же модулям, что и в app/
- scripts/ - миграции, разовые утилиты, maintenance

Рекомендации:
- Один входной файл (main.py или cli.py), вся логика - в app/*
- Конфигурацию не хардкодить, а прокидывать через env и config-объекты
- Внутри services работать с абстрактными интерфейсами репозиториев, а не с конкретным ORM
- С самого начала заводить тесты, пусть даже простые, и поддерживать схему tests/ в том же дереве, что и код
- Любой новый модуль должен отвечать на вопрос: к какому слою относится и от кого ему можно зависеть

Если проект растет, не бойся дробить:
- крупный модуль на подмодули
- общие зависимости в отдельный layer (shared, common)
- разные bounded context в отдельные пакеты внутри app/

Архитектура большого проекта - это не про идеальный паттерн, а про понятные границы и минимальный хаос.

https://uproger.com/kak-organizovat-arhitekturu-bolshogo-python-proekta/

Видео: https://www.youtube.com/watch?v=Dk7A8ElHcKE
  • ❤ 7
  • 👍 3
  • 🔥 1
More from @pro_python_code
  1. Sep 22, 2026🌟 Prism ML собрала тернарную версию Qwen3.8-27B Bonsai 2 27B - сжатая Qwen3.8-27B, котора…
  2. Sep 21, 2026Kubernetes NodeLocal DNSCache: ускоряем DNS-запросы 🚀 Без NodeLocal DNSCache DNS-запрос о…
  3. Sep 13, 2026🔥 Один из лучших обучающих курсов на StepiK по SQL SQL можно знать годами и всё равно тер…
  4. Sep 11, 2026⚡️ DeepSeek открыла веса V4.1-Flash DeepSeek выложила свежайшую DeepSeek-V4.1-Flash, мульт…
  5. Sep 11, 2026Команды ждут тебя на треке программирование роботов на МТС True Tech Champ 2026 — всеросси…
  6. Sep 10, 2026⚡️ DeepSeek выпустила V4.1 Flash Ноую модель уже раскатывают в веб-чате и мобильных прилож…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →