Функции с побочными эффектами влияют на поведение программ следующим образом: они затрудняют логику кода и тестирование, могут приводить к большому числу ошибок. ru.hexlet.io
Некоторые примеры влияния побочных эффектов:
- Изменение состояния программы. ru.hexlet.io Функция с побочным эффектом, например вывод сообщения в консоль, изменяет состояние программы, но не возвращает никакого значения. ru.hexlet.io
- Неопределённое поведение. kartaslov.ru ru.ruwiki.ru Если вызвать функцию с побочным эффектом дважды с одним и тем же набором значений входных аргументов, то в качестве результата могут быть возвращены разные значения. kartaslov.ru ru.ruwiki.ru
- Сложность анализа кода. csssr.github.io Код с побочными эффектами сложно анализировать как человеком, так и машиной. csssr.github.io Также затрудняется рефакторинг, например удаление неиспользующегося кода. csssr.github.io
- Невозможность повторного использования кода. csssr.github.io Иногда без внесения правок в исходники нельзя переиспользовать то или иное решение. csssr.github.io
При этом без побочных эффектов невозможно написать ни одной программы. ru.hexlet.io Даже простая программа сложения двух чисел должна как-то демонстрировать результат, что автоматически приводит к побочным эффектам. ru.hexlet.io