Завершающая часть цикла статей о том, как писать качественный исходный код. И сегодня мы поговорим о побочных эффектах, но не в медицинских препаратах, а в программировании. Но при неправильном использовании ущерб от них может быть весьма большим.
Под побочным эффектом в программировании понимается неявное изменение значения в процессе выполнения исходного кода приложения. Под это может попадать большое количество различных случаев, например, если мы изменяем значения свойств объекта, переданного в метод по ссылке. Или если изменяем значение переменной через указатель. Или меняем значение глобальной переменной. И даже если сохраняем какую-либо информацию в файл. Все это является побочными эффектами, которые могут повлиять на поведение программы.
Эта тема очень плотно связана с функциональным программированием и чистыми функциями, о которых я писал в одной из предыдущих своих статей. Поэтому рекомендую тебе предварительно ознакомиться с ней.
В целом при проектировании приложений необходимо стремиться к тому, чтобы как можно меньше методов оставляло побочные эффекты. То есть, метод должен принимать какие-либо данные на вход в виде аргументов, обрабатывать их и передавать итог в виде возвращаемого значения. Это позволит добиться простоты тестирования данных методов, их надежности и независимости от внешних факторов.
К сожалению, на практике в объектно-ориентированном подходе это достаточно сложно выполнимая задача. Полностью отказаться от использования побочных эффектов невозможно. Но можно постараться минимизировать их количество. Ну и как минимум обращать на это внимание во время написания кода, ведь большинство программистов (особенно начинающих) не задумываются о том, как много всего может происходить одновременно в их приложениях.
Особенно сложно дела обстоят с побочными эффектами в императивном программировании. Но даже там можно минимизировать угрозу возникновения ошибок, если избегать особо грязных случаев, таких как, например запись в глобальные переменные. В первую очередь я призываю задуматься о том, какие побочные эффекты может породить метод, а какие могут на него повлиять на этапе написания кода. Одна эта мысль уже может существенно повысить качество кода и уменьшить количество ошибок.
А если следовать и остальным рекомендациям, то можно добиться существенных улучшений. Ниже прикрепляю список всех статей, чтобы было удобно ознакомиться со всеми материалами:
Чистый код в реальной жизни. Именование
Чистый код в реальной жизни. Краткость – сестра таланта
Чистый код в реальной жизни. Не повторяйся
Пиши чистый, красивый, оптимальный, а главное решающий проблемы и задачи код, и тогда ты точно будешь востребованным специалистом.