
PTC para software: traducción por IA prémium, coherente en su sitio web y producto
¿Desarrolla software o aplicaciones móviles junto con su sitio de WordPress? PTC, el motor de traducción por IA de WPML, ahora también los traduce.
La programación funcional es un asunto muy popular entre los desarrolladores hoy en día, y no sin razón. La versión 4.5 de WPML fue un proyecto a gran escala que introdujo la opción de traducir automáticamente su sitio web. Para nosotros, también fue el momento adecuado para hacer el cambio a la programación funcional. Esto es lo que aprendimos en el proceso.
Probablemente haya escuchado que la programación funcional hace que su código sea más legible y más fácil de probar. Pero para comprender completamente la programación funcional, es importante entender sus conceptos relacionados.
Para empezar, la programación funcional es un paradigma de programación en el que el énfasis se pone en usar funciones para construir software y en componer funciones entre sí para crear funciones más complejas. La programación funcional hace que el código sea de naturaleza más declarativa. Usted expresa lo que quiere en lugar de tener una secuencia de instrucciones que actualizan el estado del programa.
Es importante tener en cuenta las funciones que utiliza, específicamente las funciones puras. Las funciones puras reciben datos y devuelven datos, pero no tienen ningún otro efecto secundario. Esto hace que las funciones sean muy fáciles de probar porque, si se proporcionan los mismos parámetros, se obtiene el mismo resultado.
En pocas palabras, en la programación funcional el resultado depende de la entrada.
WPML es un proyecto grande y complejo. Hasta hace poco, usábamos la programación orientada a objetos (POO) para intentar gestionar esta complejidad. Uno de los principales desafíos es escribir código de prueba (pruebas unitarias) para todos nuestros proyectos. Al escribir código que se pueda probar, debemos asegurarnos de que cualquier cambio que hagamos no rompa el código existente.
Las pruebas unitarias del código POO tienen sus límites. Es necesario simular las dependencias del código para que las clases se puedan probar de forma independiente. Como resultado, las pruebas terminan siendo grandes y complejas.
Se dice que el enfoque principal de la programación funcional es «Qué resolver». Por el contrario, la programación orientada a objetos adopta un enfoque de «Cómo resolver». Teniendo esto en cuenta, parecía que la programación funcional podría ayudarnos a superar algunos de nuestros desafíos.
Cuando hablamos de programación funcional, PHP no es el primer lenguaje que nos viene a la mente, aunque sí nos permite introducir un estilo funcional. Por ejemplo, los hooks y los filtros que permiten ampliar WordPress utilizan funciones para anular la funcionalidad de WordPress.
Lamentablemente, no existe una biblioteca estándar para usar un paradigma más funcional en PHP. Revisamos muchas bibliotecas, pero ninguna tenía exactamente lo que necesitábamos para escribir código expresivo en un estilo funcional. Así que, en su lugar, decidimos escribir nuestra propia biblioteca. Nos inspiramos en diferentes fuentes, pero principalmente en bibliotecas de Javascript, que nos parecieron más maduras.
La programación funcional tiene un enfoque diferente al de otros paradigmas, por lo que cambiar a un paradigma de programación funcional es en realidad un gran paso. Requiere que usted cambie su forma de pensar sobre la escritura de código y la resolución de problemas. Se necesita mucha práctica para escribir código expresivo que sea claro y conciso.
Definitivamente creemos que sí. La programación funcional tiene una serie de características que juegan a nuestro favor:
Pero, por supuesto, nada es perfecto. Si bien la programación funcional es más concisa y predecible, tiene desventajas, especialmente si no está familiarizado con ella:
No hace falta decir que la popularidad de la programación funcional es más que una simple moda. Debido a su naturaleza, la programación funcional es excelente para tareas como el aprendizaje automático y el análisis de datos. Como resultado, empresas de todos los tamaños han comenzado a mostrar interés en la programación funcional, o incluso a iniciar su transición hacia ella. Esto no significa que deba despedirse de la programación orientada a objetos para siempre, pero vale la pena darle una oportunidad a la programación funcional. Incluso si nunca llega a usarla, lo más probable es que mejore sus habilidades como desarrollador.
Si está interesado en obtener más información, le sugerimos que empiece con la serie de artículos del blog Composing Software.
Una vez que esté listo para profundizar, eche un vistazo a nuestro repositorio del proyecto de FP.
Siempre estamos buscando desarrolladores excepcionales para que se unan a nuestro equipo. Si ese es su caso, no espere más: envíe su solicitud hoy.