Хорошие, плохие эффекты
Если вызвать <a href="https://ru.wikipedia.org/wiki/Чистота_функции">чистую функцию, например, сто раз с одними и теми же параметрами, то мы получим один и тот же результат.
Если какая-то функция после выполнения записала в консоль новое значение, поменяла переменную где-то в программе или отправила запрос на сервер, то это функция с побочными эффектами.
Такие места программы сложно покрыть тестами, их сложно переписывать, добавляя новые требования.
Мне кажется, что в данном случае исключительно важно увидеть пропасть между хорошими и плохими эффектами. Предлагаю на неё взглянуть.