Работал ли ты с Django
Что проверяют
Знаете ли вы каркас глубже уроков и понимаете ли его слабые места.
Как отвечать
Расскажите по частям, обязательно упомянув подводные камни.
Модели и ORM. Выборки ленивы: запрос уходит только при обращении к данным. Главная практическая тема это проблема N+1, когда обращение к связи в цикле шаблона превращается в сотню запросов. Лечится подгрузкой связей одним запросом для связей «к одному» и отдельной выборкой для «ко многим». Ещё стоит назвать атомарное обновление выражением вместо чтения и записи, аннотирование и агрегацию на стороне базы, пакетные создание и обновление вместо цикла с сохранением.
Миграции: генерируются по изменениям моделей, применяются отдельным шагом. Тонкость в том, что несовместимые изменения нельзя выкатывать одним шагом, пока работают обе версии приложения.
Админка: сильная сторона каркаса. Быстро даёт рабочий интерфейс для внутренних пользователей, но требует аккуратности с правами и с производительностью на больших таблицах.
API: отдельная библиотека для построения REST со сериализаторами, представлениями и правами доступа.
Настройки: разделение по окружениям, секреты из переменных, а не из файла в репозитории.
Фоновые задачи через очередь, потому что запрос не место для долгой работы.
Тестирование: встроенный класс с откатом транзакции после каждого теста, фабрики для данных, проверка числа запросов как защита от возврата проблемы N+1.
Слабые места, о которых стоит сказать честно: сигналы делают поток выполнения неявным и их обычно избегают; модели легко разрастаются, и логику выносят в отдельный слой; синхронная природа каркаса требует внимания при переходе на асинхронные представления.
Где спотыкаются
Не замечают проблему N+1 и оптимизируют не то.
Читают значение, считают в Python и сохраняют, теряя чужое изменение.
Складывают всю логику в модели или в представления.
Держат секреты в файле настроек.