Los efectos secundarios están en el ojo del espectador. Digamos que llamo a tu método.
Si asigna a una variable local y la actualiza una o mil veces, no me importa, no puedo verla. No hay ningún efecto que deba tener en cuenta.
Si asigna a una variable a la que tengo acceso, ya sea global, en una estructura de datos que le pasé o en algún bloque de memoria al que ambos tengamos acceso, eso es un efecto secundario. Yo, la persona que llama, tengo que saber que podrías cambiar el mundo por debajo de mí. No puedo almacenar en caché el resultado de llamar a su método porque no solo obtuve un valor de retorno, el estado del mundo que puedo ver es diferente.
- ¿Qué es RAM, CPU y ROM?
- ¿Por qué se usa RAM en las computadoras?
- Cómo actualizar la memoria RAM de mi Mac
- ¿Qué determina la cantidad máxima de RAM que se puede instalar en una computadora portátil?
- ¿Vale la pena pagar por una actualización de RAM de 16 GB en una nueva MacBook Pro?
No piense en los efectos secundarios en términos de su implementación concreta en el hardware, piense en ellos desde la perspectiva de la persona que llama. Si alguna persona que llama puede mirar cualquier parte de la memoria o el disco o la red y ver una diferencia antes y después de llamar a algún código, ese código tiene un efecto secundario. (Y digo “cualquier posible” llamante porque no quiere pensar que los permisos pueden ocultar un efecto secundario: si su API REST escribe en un archivo local en un servidor en el que los clientes públicos nunca podrían iniciar sesión, sigue siendo un efecto secundario .)