Встречается на собеседованиях • сегодня
Где хранил бизнес-логику в своих проектах
В Django-проектах бизнес-логику обычно выношу в отдельные слои:
- Сервисный слой - отдельные классы/функции в
services.py, которые инкапсулируют сложную логику. Это помогает избежать "fat models" и "fat views".
python
# services.py
class OrderService:
@staticmethod
def create_order(user, items):
# Валидация, создание заказа, нотификации и т.д.
order = Order.objects.create(user=user)
for item in items:
OrderItem.objects.create(order=order, **item)
send_order_confirmation.delay(order.id)
return order-
Модели - для простых операций, связанных с данными (валидация, вычисления полей).
-
Forms/Serializers - для валидации входящих данных.
-
Tasks Celery - для асинхронных операций.
Главные принципы:
- DRY (Don't Repeat Yourself)
- Single Responsibility
- Тестируемость
- Читаемость кода
Сервисный слой особенно полезен при сложных транзакциях, затрагивающих несколько моделей.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы