# Herramientas y frameworks

El uso de diferentes herramientas y frameworks será determinado para cada proyecto, en conjunto con los miembros del equipo, a continuación se presentan algunas recomendaciones generales.

### Recomendaciones generales
* Tener compatibilidad total con el sistema operativo *GNU/Linux* (para facilitar su contenerización y orquestación).

## Back end

Un proyecto de back end debe:

* Utilizar transacciones en servicios que almacenen datos en 2 o más tablas de una base de datos *SQL* de manera simultánea.

## Front end

Para el desarrollo de front end se debe
* Utilizar automatizadores de tareas (por ejemplo, *Gulp* o *Webpack*)
* Los desarrollos podrán utilizar bibliotecas como *Bootstrap*, *JQuery* u otros, pero se debe evitar el uso injustificado y redundante de dependencias de *JavaScript* y *CSS*.

## Contenedores

Además de seguir las buenas prácticas recomendadas por [*Docker*](https://docs.docker.com/build/building/best-practices/), también están las siguientes recomendaciones:

* Utilizar imágenes basadas en *Alpine Linux* (Para obtener imágenes de menor tamaño).
* Al crear imágenes, configurar usuarios sin permisos de administrador.
* Configurar datos sensibles por medio de variables de entorno o archivos externos protegidos.

---
* volver al [inicio](/README.md)
* volver a las [normas de desarrollo](/docs/development-rules/README.md)
