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

В чем разница между доменной сложностью и привнесённой

Доменная сложность (domain complexity) связана с самой предметной областью и её внутренними правилами. Например, сложность алгоритмов для банковских транзакций или медицинской диагностики.

Привнесённая сложность (accidental complexity) возникает из-за выбранных инструментов, фреймворков или архитектурных решений. Например, избыточные абстракции или сложность из-за legacy-кода.

Пример:

python
# Доменная сложность: валидация email по спецификации RFC
import re
def is_valid_email(email):
    pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
    return bool(re.match(pattern, email))

# Привнесённая сложность: избыточный класс для той же валидации
class EmailValidator:
    def __init__(self, email):
        self.email = email
    def validate(self):
        pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
        return bool(re.match(pattern, self.email))

Доменная сложность неизбежна, а привнесённую можно уменьшить через рефакторинг.

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

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

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

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