Веб-версияОткрыть в Telegram

Пост✔️ Как организовать архитектуру большого Python-проекта?

28 ноября 2025
P
Python RU
Видео
Архитектура_Python-проектов.mp4 · 38.6 МБ · нажмите — покажем
✔️ Как организовать архитектуру большого 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
59 · 1.8K ·

Рядом в ленте

PPython RU🖥 Bash Академия: секреты командной строки, которые нигде не рассказывают Олег Шелест - профессионал по информационной безопасности, раскрывает скрытые механики PPython RUВопрос с собеседования Что выведет этот код и почему? a = [1, 2, 3] b = a a += [4, 5] print(a) print(b) a = (1, 2, 3) b = a a += (4, 5) print(a) print(b) Попроб
это сообщение
PPython RU🕵️‍♂️ Spyder: OSINT Research Tool Spyder — это универсальный инструмент для открытой разведки (OSINT), который позволяет выполнять поиск информации по крупным гPPython RU🔥 Python: Эффективное использование контекстных менеджеров Контекстные менеджеры в Python позволяют управлять ресурсами и предотвратить утечки, особенно при раб

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем