1 de julio, 2019

Los desarrolladores de JavaScript están adoptando bastante la Programación Funcional en estos días, y hay una gran promoción para escribir Funciones Puras. Ahora, ¿qué son las Funciones Puras? No hace mucho, aprendí el concepto de Funciones Puras, y para mi sorpresa, ya estaba escribiendo muchas funciones puras, sin darme cuenta de que había un término para ello.

 Funciones Puras

¿Qué califica como Función Pura?

Una función se considera pura, si se adhiere a las siguientes reglas:

  1. La función siempre devuelve la misma salida si se pasan los mismos argumentos.
  2. La función no produce efectos secundarios.

Todos hemos escrito funciones puras en el pasado a sabiendas o sin saberlo.
Eche un vistazo a una función pura a continuación, que devuelve una suma de dos números dados dos argumentos de entrada.

function sumOfNumbers(a, b) { return a + b;}

La salida de esta función siempre será la misma, si se pasan los mismos argumentos de entrada. Bastante Simple. Las funciones puras son bloques de construcción simples que tienen un comportamiento predecible siempre. Por lo tanto, siempre devuelven el mismo resultado predecible, sin ninguna influencia externa.

Aquí hay un ejemplo simple, sobre cómo se ve una función impura.

var value = 5;function impure(arg) { return value + 2 + 3;}

Aquí la función se considera impura, porque no utiliza el argumento que se le pasó. En su lugar, utiliza un valor externo que está sujeto a cambios. Por lo tanto, hacer que la función sea impura debido a interferencias externas/efectos secundarios.

Bien, hablemos del requisito dos sobre efectos secundarios.

¿Qué son los efectos secundarios?

Los efectos secundarios ocurren en cualquier momento en que su función interactúa con el mundo exterior.

Algunos ejemplos de efectos secundarios comunes incluyen:

  • Realizar una llamada a la API
  • Mutar datos
  • registros de consola en la pantalla
  • Manipular la fecha del DOM
  • .now() para obtener la fecha / hora actual
  • llamadas asincrónicas await/esperando promesas para resolver
  • matemáticas.random () para generar números aleatorios

Bueno, puede preguntarse cómo podemos escribir funciones sin efectos secundarios todo el tiempo. Es bastante difícil evitar los efectos secundarios por completo. Todo lo que digo es que, para que una función se califique como pura, como su nombre indica, no debe tener efectos secundarios.

¿Qué gano escribiendo Funciones Puras?

 Funciones puras

Pic cortesía: Picpedia.Org

Muy bien, sacamos las definiciones del camino. Ahora puede preguntar cuáles son sus beneficios.

La prueba es fácil

Imagine, tiene un montón de funciones puras, que solo hacen una cosa. No tienen efectos secundarios externos y siempre devuelven una salida predecible. Estas funciones serán mucho más fáciles de probar que una función que tiene un montón de dependencias y un comportamiento impredecible. Escribir código limpio y comprobable le ayudará a mejorar drásticamente la calidad de su código.

El código de depuración no es un dolor

Con funciones puras, el código de depuración no será un gran dolor, en comparación con la depuración de funciones impuras. Si se encuentra con un problema o error, y lo ha reducido a una función pura, puede estar seguro de que no tiene que buscar fuera del alcance de esa función para encontrar el problema. Por lo tanto, mejora drásticamente la experiencia de depuración del desarrollador.

Memoización para mejorar el rendimiento

Con funciones puras, se garantiza que devuelve la misma salida para una entrada determinada. Esto crea la posibilidad de memorización. Cuando la misma entrada se pasa a una función, puede extraer los resultados de una caché, lo que hace que la aplicación funcione más rápido. El almacenamiento en caché puede ahorrar toneladas de recursos y mejorar el rendimiento. Y las funciones puras de almacenamiento en caché se pueden realizar sin preocupaciones, ya que son predecibles y no tienen efectos secundarios.

Código mantenible, fácil de refactorizar

Este es uno obvio. Con el código, que es tan limpio, fácil de probar y depurar, también se obtiene un código muy fácil de mantener. Este es un aspecto importante que tiene en mente el futuro. Años / meses más tarde, si su software tiene que tener características adicionales y refactorización, el código que se compone de un montón de funciones puras será extremadamente intuitivo de volver a factorizar. No tendrán efectos secundarios externos de los que el desarrollador deba preocuparse. Incluso los nuevos desarrolladores en el equipo pueden asumir esta tarea con facilidad.

Un ejemplo del mundo real que utiliza Funciones Puras

Redux es muy popular y la mayoría de nosotros lo hemos utilizado en algunos proyectos o hemos oído hablar de él. Los reductores son funciones que forman parte del patrón Redux y desempeñan un papel crucial. La característica más importante de los reductores redux es que son Funciones puras.Los reductores

son funciones puras que toman un estado y una acción y devuelven un nuevo estado.Los reductores

function(state, action) => newState

son la parte principal de la integración de Redux y contienen gran parte de la lógica empresarial. Y como redux hace cumplir que los reductores deben ser funciones puras sin efectos secundarios, terminamos con funciones muy elegantes y simples que son fácilmente mantenibles

Redux es un ejemplo clásico de escribir funciones puras. Se inspira en la programación funcional y ha ganado una inmensa popularidad en los últimos años. Se utiliza en gran medida en aplicaciones web modernas para la gestión estatal. Ahora que conoce la razón detrás de su éxito, t es su requisito escribir funciones puras. Esto hace que el código sea comprobable, limpio, fácil de depurar y de mantener.

Conclusión

Analizamos cómo escribir funciones puras puede beneficiarte y mantener tu código simple y elegante. Tenga en cuenta que las funciones Puras no se limitan a JavaScript. Este concepto se puede adoptar en cualquier lenguaje de programación de su elección. Funciona bien con JavaScript y cualquier lenguaje de programación funcional.

Si está buscando mejorar sus habilidades de JavaScript, le recomiendo encarecidamente el curso de JavaScript de Mosh.

Echa un vistazo a todos los cursos de JavaScript aquí: https://codewithmosh.com/p/full-stack-javascript-developer-bundle

Si te ha gustado este post, por favor corre la voz y compártelo. Compruebe de nuevo para más postes.

Adhithi Ravichandran es un Consultor de software con sede en Kansas City. Actualmente está trabajando en la creación de aplicaciones con React, React Native y GraphQL. Es Conferencista, Autora de Pluralsight, Bloguera y Consultora de Software. Le apasiona la enseñanza y prospera para contribuir a la comunidad tecnológica con sus cursos, publicaciones de blog y charlas.

Etiquetas: javascript, Funciones Puras

Deja una respuesta

Tu dirección de correo electrónico no será publicada.