Proponiendo las partes principales para una aplicación web
Durante el trascurso de mi experiencia como desarrollador web han seguido múltiples inconvenientes que se ven necesarias una vez las aplicaciones o script se han implementado o están en funcionamiento; estos problemas recurrentes hacen requerido tener siempre en mente ciertas partes de la aplicación que siempre se deban desarrollar o implementar dentro de nuestra lógica de negocio, ya que por no tener presentes estas partes que pueden o no ser necesarias según sus necesidades y que a futuro nos ayudará con la trazabilidad y rentabilidad del código.
Esta es una propuesta que hago para cuando necesitamos desarrollar una aplicación que debiéramos recordar y tener presente en nuestro desarrollo, siempre es necesario realizar estas partes en nuestra aplicación o script:
- Fuente de datos o datos de entrada a la aplicación
- Validación de los datos de entrada
- Nuestra lógica de negocio, hace referencia a la funcionalidad desarrollada
- Mantener el estado de la aplicación para poder reanudar en el punto que quedemos
- Tener un sistema de logs para registrar los sucesos importantes en la lógica de negocio
- Monitoreo en tiempo real (Esta es opcional, nos puede valer con solo los logs generados)
En muchas ocasiones he tenido la necesidad de poder procesar datos a los cuales no se le ha realizado ninguna validación de entrada a la lógica de negocio, lo cual ha traído consigo errores a la aplicación que en un principio no se imaginan que traigan los datos que vienen de una base de datos u otro origen.
Nunca imaginamos que los datos tengan errores y nos estrellamos con que en algún momento de la ejecución de la aplicación que hemos desarrollado, se generan errores que no tienen que ver con el código que escribimos, sino que se originan en los datos. Por esta razón creo importante siempre incluida en nuestra aplicación la validación de los datos entrantes y que esto se haga antes de hacer nada.
Otra de las partes relevantes que en muchas ocasiones se nos olvidan es tener un sistema de logs y no solo que nos permitan registrarlos en la consola, sino que nos aseguremos que estos generan archivos que podamos analizar después aun cuando nuestra aplicación deje de funcionar.
El log siempre debe persistir y tener un estándar que pueda ser analizado mediante un sistema de monitorización externo o herramienta de análisis de logs.