Встречается на собеседованиях • сегодня
Как нужно писать функцию, чтобы ее было просто тестировать
Функция должна быть чистой (pure function) и следовать принципам SOLID. Основные правила:
-
Один вход — один выход
Функция должна принимать параметры только через аргументы и возвращать результат, а не модифицировать глобальные переменные. -
Минимум зависимостей
Зависимости лучше передавать явно через параметры или DI.
-
Предсказуемость
При одинаковых входных данных — одинаковый результат. -
Простая логика
Одна функция — одна ответственность.
Пример плохой и хорошей функции:
python
# Плохо: зависит от глобальной переменной, нет возврата
config = {'debug': True}
def process_data(data):
if config['debug']:
print(data)
# ...много кода...
data.append('processed') # мутирует вход
# Хорошо: чистая, предсказуемая
def process_data(data, debug_mode=False):
if debug_mode:
print(data)
return [*data, 'processed'] # возвращает новый объектТестировать вторую версию проще — не нужны моки глобальных переменных, легко проверить выход по заданному входу.

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