Domain-Driven Design, layers, repositories, services, dependency injection
Domain-Driven Design и Clean Architecture в Django проектах.
💡 Правило: Разделяйте бизнес-логику и инфраструктуру.
domain/ # Бизнес-объекты (чистый Python)
application/ # Use cases (бизнес-правила)
infrastructure/ # Django ORM, внешние сервисы
interfaces/ # Views, API, serializers
# domain/repositories.py
from typing import Protocol
class UserRepository(Protocol):
def get_by_id(self, id: int) -> User: ...
def save(self, user: User) -> None: ...
# infrastructure/django_repository.py
class DjangoUserRepository:
def get_by_id(self, id: int) -> User:
return User.objects.get(pk=id)
def save(self, user: User) -> None:
user.save()# application/services.py
class OrderService:
def __init__(self, order_repo: OrderRepository):
self.order_repo = order_repo
def create_order(self, user, items):
# Валидация
# Расчёт суммы
# Создание заказа
# Отправка уведомлений
passВопросы ещё не добавлены
Вопросы для этой подтемы ещё не добавлены.