Efectos Secundarios en el Código
Un efecto secundario ocurre cuando una función o método modifica el estado fuera de su alcance esperado (como variables globales, propiedades de clase u otros objetos) o produce cambios que no son evidentes a partir de su definición. Los efectos secundarios pueden introducir errores, dificultar la depuración y hacer que el código sea menos predecible y mantenible.
- Dificultan la Depuración: Si una función modifica variables externas, puede ser difícil rastrear el origen de los cambios.
- Reducen la Reusabilidad: Las funciones con efectos secundarios dependen del estado externo, lo que limita su uso en otros contextos.
- Generan Comportamientos Inesperados: Si múltiples funciones modifican el mismo recurso compartido, el estado puede volverse inconsistente.
- Complican el Paralelismo: En sistemas concurrentes, los efectos secundarios pueden causar conflictos cuando varias tareas intentan modificar el mismo recurso simultáneamente.
1. Ejemplo Malo: Código con Efectos Secundarios #
Cargando actividad al acercarte…
2. Ejemplo Corregido: Evitando Efectos Secundarios #
Cargando actividad al acercarte…
Resumen del tema
Conceptos clave #
- Efectos Secundarios Ocultos (Side Effects): cambios no documentados en variables globales, mutación de parámetros de entrada o modificaciones de estado ajenas a la función.
- Funciones Puras e Inmutabilidad: funciones deterministas que devuelven nuevos datos sin mutar las estructuras originales recibidas.
- Predecibilidad y Testeabilidad: las funciones sin efectos secundarios son fáciles de probar, seguras en entornos concurrentes y libres de bugs fantasma.
Qué debes recordar #
Favorece funciones puras que no muten sus argumentos; si una función modifica estado, haz que su nombre lo exprese de forma inequívoca.