- ¿Qué es una función determinista?
- ¿Qué es un efecto secundario?
- Otros ejemplos comunes de efectos secundarios
Comprender qué funciones son deterministas y qué es un efecto secundario te permite escribir código más predecible, confiable y sencillo de mantener. En un entorno de trabajo real, esto se traduce en menos errores, mayor facilidad para realizar pruebas y la posibilidad de mejorar el programa con mayor seguridad.
¿Qué es una función determinista?
Es como una calculadora de bolsillo: si ingresas 2 + 2, siempre obtendrás 4, sin importar cuántas veces hagas la operación.
Veamos un ejemplo en JavaScript con una función que cuenta la cantidad de caracteres en una palabra:
console.log(length('códica')); // 6
console.log(length('códica')); // 6
Siempre que uses 'códica', la función devuelve 6. No hay sorpresas.
¿Y una función no determinista?
Piensa en una función que genera un número aleatorio:
console.log(Math.random()); // 0.0985661311319767
console.log(Math.random()); // 0.8839904367241888
// cada vez muestra un número distinto
No puedes predecir el resultado. Por eso no es determinista.
¿Qué es un efecto secundario?
Hasta ahora vimos funciones que devuelven algo, pero también hay funciones que cambian algo afuera.
let resultado = console.log('Hola, mundo!');
console.log(resultado); // undefined
console.log() no devuelve nada útil (undefined). Solo muestra texto en pantalla. Eso es un efecto secundario. Otros ejemplos comunes de efectos secundarios
| Tipo de efecto secundario | Ejemplo |
|---|---|
| Escribir en la consola | console.log('Mensaje'); |
| Modificar un archivo | Guardar datos en un archivo .txt |
| Hacer una petición a la red | Enviar datos a un servidor |
| Cambiar una variable global | Alterar valores almacenados fuera de la función |
❓ ¿Por qué importa?
Los efectos secundarios no son malos, pero si abusas de ellos, tu código se vuelve impredecible. Es mejor escribir funciones claras y controladas: que devuelvan resultados y solo cambien cosas externas si es necesario.
Resumen
- Una función determinista siempre da el mismo resultado con los mismos datos.
- Una función no determinista puede cambiar su resultado cada vez.
- Un efecto secundario es cuando la función cambia algo fuera de ella.
- Usa funciones deterministas siempre que puedas y controla los efectos secundarios.
Materiales adicionales
Para acceder completo a curso necesitas un plan básico
El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.