martes, 8 de noviembre de 2016

La forma artística de la programación

12 años atrás, cuando empecé mis clases formales en informática, lo primero que aprendí fue "datos" significa "información". Unos días después, comenzamos la programación convencional, donde el código y los datos se trataban por separado. Por ejemplo, sólo los datos se pueden pasar como los argumentos funcionales. Me fue difícil digerir que "el código, que también es información, no se trata como datos". Creo firmemente que esto aumentará la complejidad de los softwares a largo plazo.

Un sistema hace tres cosas: leer, transformar (procesar datos), escribir. En otras palabras - la matemática (la parte de la transformación), y el efecto de eso en la vida real (la parte de la lectura / escritura). La transformación de datos es de hecho un concepto matemático, y con la ayuda de la lectura y la escritura hacemos las matemáticas (la parte de la transformación) útiles al mundo real. Traer la parte de "transformar" completamente dentro del dominio matemático tiene su propio beneficio de usar matemáticas sin miedo (posibles errores) para el análisis del sistema, haciendo el sistema más manejable matemáticamente. La captura es tratar los elementos de transformaciones, datos y funciones, igualmente.

Inicialmente, el código solía ser más grande que los datos, por lo que el envío de datos a través del cable era factible. Pero con el tiempo, los datos se vuelven enormes, el envío de código a los sistemas a través del cable se convierte en la necesidad, descansando los datos en los sistemas intactos. Con los datos grandes, la necesidad de la hora es tratar el código como datos, de modo que el código se pueda tomar como argumento a otra función del meta en un sistema que tiene datos enormes que espera un algoritmo para las transformaciones.

A grandes rasgos, los códigos son algoritmos, los algoritmos son funciones matemáticas, las funciones son, a su vez, realmente tablas de consulta, es decir, datos. Por lo tanto, con este principio, todos los códigos o funciones son datos. Esto es exactamente la piedra angular del paradigma funcional. La programación funcional es la programación con funciones, tratan funciones y datos de la misma manera. Otro principio que amo, para controlar la complejidad, las reglas no deben ser complejas en sí.

Reglas de pulgar reescritas para el paradigma funcional:

La lectura-escritura y las transformaciones (algoritmos) deben ser separadas.
Utilice variables inmutables. Desalentar el uso de declaraciones de reasignación.
Desalentar los efectos secundarios (entrada / salida o cambiar cualquier variable en el lugar), cada función debe regresar SÓLO su resultado esperado.


Utilice funciones referencialmente transparentes (a veces se llama funciones puras) sin efectos secundarios, es decir, si x = y, f (x) yf (y) deben ser iguales para siempre.
La prueba unitaria es una necesidad para cada función.
Uno de los principales patrones de diseño debe ser seguido es el uso de expresiones en lugar de instrucciones, es decir, debe ser de carácter declarativo. Disuadir el uso de bucles como for / while - use declaraciones recursivas como se muestra arriba para calcular la suma. Dígale a las computadoras lo que hay que hacer, no cómo hacerlo - reduce el error, especialmente los casos de borde.
Con la necesidad de controlar la complejidad del sistema y el diseño de avance, el patrón de diseño para la composición funcional puede hacerse para seguir algunas estructuras algebraicas básicas, que a su vez se vuelven más robustas.

 Curso corto de PHP
CURSO CORTO DE JAVA SCRIPT

No hay comentarios:

Publicar un comentario