Este post trata principalmente sobre la importancia de la gestión de errores en el desarrollo de software y cómo aplicar un paradigma de desarrollo Fractal en el desarrollo funcional que permite una gestión más eficaz de los errores.

TL;DR

todas tus funciones deben gestionar sus errores y devolver siempre esta estructura de datos, algo asi como si fueran APIs internas.

{
	"success": true, // boolean
	"message": "string", // string
	"data": "Any", // any
	"errors": [ // Object Array - <https://www.rfc-editor.org/rfc/rfc7807>
		{
	    "type": "/errors/incorrect-user-pass",
	    "title": "Incorrect username or password.",
	    "status": 401,
	    "detail": "Authentication failed due to incorrect username or password.",
	    "instance": "/login/log/abc123"
		}
	] 
}

Intro

El mundo se divide en dos, los determinados y los no determinados. Vamos a usar como base esa premisa y vamos formulamos una hipótesis tan simple.

La cosmovisión de un programador funcional se puede reducir en tres conceptos:

input → process → output

Al programador le gusta lo funcional por que sabe que cierto proceso lo ha delegado y no tiene que saber que hace, simplemente necesita saber:

Todo muy simple hasta acá, pero nos estamos olvidado de un detalle, es que muy probablemente hayamos obviado que esta función es determinada y que la consistencia de su proceso es siempre correcta y que NO ocurrió ningún error o ningún problema y es ahí de por que el mundo se divide en dos, en los que piensan de forma determinada y los no-determinada.

Los determinados tienen como ideal que las cosas son constantes, integras y fiables.

Los no-determinados tiene como ideal que las cosas son variables, se pueden corromper y no-fiables.

Powered by Fruition