Одна из причин, которая приходит на ум, - это проверка будущего. Возможно, вы сейчас являетесь единственным разработчиком вашего продукта, но, возможно, другие будут поддерживать его позже. Конечно, это может быть не так в вашем конкретном случае.
Хотя ваш продукт может быть небольшим и опрятным прямо сейчас - где использование глобальных переменных не усложняет общий дизайн или ухудшает читаемость - кто скажет, что продукт не станет намного больше или будет включен в другой продукт? И не дай бог другому сопровождающему / разработчику придётся разобраться с использованием вами глобальных переменных.
Конечно, вы можете решить использовать глобальные переменные сейчас, и когда проект становится все более сложным, вернитесь назад и переписайте его части, но зачем навязывать эту дополнительную работу себе? Вы с большей вероятностью (если вы вообще помните глобальные переменные) решите, что выполнять эту работу - это слишком много усилий, и позволить дизайну уйти: в этот момент у вас проблемы!
Итак, , избавьте себя от головной боли и задумайтесь о будущем. Необходимая работа сейчас, вероятно, облегчит жизнь в будущем.
Если это не убедило вас, представьте, что вы разработчики, которые работали над этим проектом, и их код был признан ошибочным и виновным в недопустимых методах программирования перед Верховным судом: Код ошибки алкотестера отражает важность источника обзор