Python Web & Scripts — Django, FastAPI, скрипты

7 типовых ошибок в Django, из-за которых проект начинает тормозить и путаться

7 типовых ошибок в Django, из-за которых проект начинает тормозить и путаться

Django прощает много, пока код маленький. Потом всплывают одинаковые проблемы: размазанная логика по view, тяжелые queryset’ы без select_related/prefetch_related, и модели, где бизнес-правила живут в шаблонах, а не в одном месте.

— Не таскайте вычисления в шаблоны: если в template появились if’ы на полстраницы, значит часть логики уже уехала не туда.
— Не делайте N+1 по привычке: список объектов без оптимизации связи быстро превращается в лишние запросы и лаги.
— Не лепите “универсальные” view без границ ответственности: один класс на всё обычно хуже трех простых функций.

Еще одна частая ошибка — смешивать работу с БД, валидацию и побочные эффекты в одном месте. Когда сигнал отправляет email, пишет в лог и меняет статус заказа, отлаживать это потом больно. Лучше держать доменную логику в сервисах или методах модели, а view оставить тонким слоем.

И последнее: не игнорируйте формы, менеджеры и queryset-методы как точки расширения. Django уже дал вам хорошие места для инкапсуляции — используйте их, иначе проект быстро превращается в набор исключений и патчей.

Если хотите, чтобы Django оставался управляемым, режьте зависимости и держите правила рядом с данными, а не рядом с экраном.
Этот пост опубликован в Telegram-канале Python Web & Scripts — Django, FastAPI, скрипты. Подписаться можно по ссылке: @python_web_scripts.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

@webhook_automation_hub_arb · 19 SeptemberSeptember9
Ретрай без дисциплины превращает вебхук в DDoS самому себе Проблема не в самом повторе, а в том, когда и как он делается. Если внешний API л...
@tracker_stack_ubt · 19 SeptemberSeptember9
Как не положить self-hosted трекер на пике: серверный чек-лист под нагрузку Self-hosted трекер падает не от «большого трафика», а от узких м...
@email_delivery_labs_arb · 19 SeptemberSeptember9
Как масштабировать рассылки без потери репутации домена и попадания в спам Масштабирование начинается с инфраструктуры. Распределяйте нагруз...
@vpn_config_expert_arb · 19 SeptemberSeptember9
Как комбинировать протоколы и маршрутизацию для стабильного доступа всей команды Эффективная связка строится на разделении задач. Первый уро...
@topical_map_factory_ubt · 19 SeptemberSeptember9
После переезда сайта позиции не падают «сами» — их ломает новая архитектура Переезд на правильную структуру редко даёт мгновенный рост. Снач...
start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.