Estudio

Definicion de arquitecura software

Lo normal es que tu expectativa de lo que vas a encontrar a continuación dependa de tu experiencia en el desarrollo de software. El concepto de arquitectura de software puede llegar a ser muy distinto dependiendo de la persona que lo use: Lo que comprende un desarrollador como arquitectura puede llegar a ser muy distinto de la idea de un probador o un técnico en devops. Esto hace que publicar una definición básica del concepto de arquitectura de software sea ciertamente arriesgado pero, basándome en lo que me gustaría haber encontrado cuando empecé a estudiarla, y amparado en que existe algún punto común, pues para todos implica la definición de una estructura, me atrevo a darte la que sigue:

Inyección de funciones

Ya te comenté en este pequeñísimo artículo que las funciones tratadas como objetos de primera clase es una de las características que permiten programar con Javascript de un modo funcional. Esto nos permite, por ejemplo, pasar funciones como argumentos de otras funciones, y ahí es donde se produce la inyección de funciones que da título a este artículo.

La función sort nos permite mostrar un ejemplo de este concepto. A continuación la función sort en acción:

Currying

Pues no, no se trata de un deporte de disco sobre hielo usando escobas, y tampoco es una práctica consistente en sazonar todas las comidas con la misma especia. En el cálculo lambda se usan funciones con un único parámetro. En posts venideros sobre conexión de funciones conoceremos el motivo, pero ahora centrémonos en aprender como superar esta limitación gracias al currying.

El amigo Haskell Curry, además del lenguaje Haskell desarrolló este concepto. ¿Cómo podríamos emular una función que suma tres número recibidos como parámetros, igual a la del ejemplo que sigue, usándo exclusivamente funciones con un único parámetro?

Función lambda

Buscando un poco en la red, seguro que encuentras algún lugar donde se otorge al cálculo lambda el título de lenguaje de programación mas pequeño que existe. Básicamente se trata de un esquema para definir funciones y una regla de transformación simple mediante la sustitución de variables.

Una función tiene un aspecto tal que así en cálculo lambda: λx.1+x. La variable entre el carácter λ y el punto es el parámetro de la función, y la expresión de esta es lo que sigue a dicho punto. Para aplicar esta función le facilitamos un argumento, por ejemplo 14, y lo podemos representar con el uso de paréntesis: (λx.1+x)(14). El resultado en este caso sería 15.