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.
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"
}
]
}
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.