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

7 ошибок в Django, из-за которых проект тормозит даже на «простых» страницах

7 ошибок в Django, из-за которых проект тормозит даже на «простых» страницах

— Тянуть всё через ORM без select_related и prefetch_related: на списках это быстро превращается в N+1 и лишние запросы к базе.
— Держать тяжёлую логику во view: когда в одном месте и валидация, и расчёты, и отправка писем, код становится трудно тестировать и почти невозможно переиспользовать.
— Игнорировать индексы и план запросов: фильтр по полю есть, а в таблице нет нормального индекса — дальше начинается «почему это так медленно».

Ещё одна типовая проблема — хаотичные шаблоны. Если в template лезут условия на пол-экрана, проще вынести часть логики в методы модели, сервисный слой или template tags. И не забывайте про формы: clean() и clean_field() часто спасают от дублирования проверок в нескольких view.

Финальный фильтр простой: если кусок кода сложно объяснить вслух за 20 секунд, его уже пора дробить. В 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 за пакет по сети.