Встречается на собеседованиях • сегодня

Как отделяешь бизнес логику от данных

Разделение бизнес-логики и данных достигается через паттерны проектирования, такие как Repository, Service Layer или Clean Architecture.

  • Модели данных (DTO/ORM) отвечают только за хранение и валидацию данных.
  • Сервисы содержат бизнес-правила и операции.
  • Репозитории абстрагируют доступ к данным (БД, API и т.д.).

Пример:

python
# Модель данных (Pydantic/Django ORM)
class User(models.Model):
    name = models.CharField(max_length=100)
    email = models.EmailField()

# Сервис (бизнес-логика)
class UserService:
    def register_user(self, name, email):
        if not self._validate_email(email):
            raise ValueError("Invalid email")
        user = User(name=name, email=email)
        user.save()
        return user

# Репозиторий (если нужна абстракция)
class UserRepository:
    def save(self, user):
        user.save()

Такой подход упрощает тестирование и модификацию кода.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы