Java Day 2017. Plática acerca de cómo llevar una aplicación desde el entorno local hasta producción a través del uso de diferentes herramientas gratis y de código abierto.
Buenas Prácticas para la Construcción de Aplicaciones de Software
1. Buenas Prácticas para la
Construcción de Aplicaciones de
Software
Francisco Castellanos
https://www.linkedin.com/in/fvcastellanos/
https://github.com/fvcastellanos
Jorge Alvarez
https://www.linkedin.com/in/jorge-alvarez
https://github.com/jealvarez
11. Análisis de Requisitos
• Metodologías Ágiles
• Iterativas
• Definir historias de usuario
• Como usuario quiero/necesito facturar las ventas de modo que pueda tener una bitácora
electrónica de ellas
• Definir tareas a ser realizadas por cada historia de usuario (épicas/no épicas)
• Definir tamaño de la ventana del ciclo (2 semanas)
13. Implementación (1/4)
Base de Código
• Control de Versiones
• SVN Git
• Base de Código = Repositorio
• Beneficios
• Varios Despliegues
14. Implementación (2/4)
Dependencias
• Utilizar un sistema de gestión de paquetes
• Especificar versiones de cada dependencia
• Beneficios
• No depender de paquetes instalados en el sistema
• Cualquier desarrollador puede probar el código base en su entorno de desarrollo
15. Implementación (3/4)
Cambios en la Base de Código
• Crear ramas por tarea
• Feature Branches
• Crear una petición de cambio antes de
unificar los cambios en curso
• Pull Request
• Revisión de Código
• Estilo en el código
• Lógica del negocio
• Rendimiento del código implementado
16. Implementación (4/4)
Configuración
• Debería ser lo único que tenga que variar entre entornos
• Desarrollo, PreProducción, Producción
• Guardar la configuración en el entorno
• Credenciales (Cifradas)
• Valores de despliegue
• Nombre de la Aplicación
• Beneficios
• Despliegues específicos a través de perfiles (desarrollo, preproducción, producción)
• No se modifica el código base entre ambientes
17. Pruebas
• Unitarias
• Funcionalidad
• Integración
• Con servicios
• Automatizadas
• Escenarios
• Beneficios
• Disminuir la probabilidad de errores en
producción
18. Evolución (1/2)
Construir, Distribuir y Ejecutar
• Construcción
• Repositorio de Código + Dependencias Paquete
ejecutable.
• Utilizar etiquetas v1.0, Timestamp
• Distribución
• Construcción + Configuración lista para ejecutarse en el
entorno de ejecución
• Almacenar en un repositorio
• Ejecución
• Ejecutar como proceso la distrubución creada
• java –jar
La configuración varía sustancialmente en cada despliegue, el código no.
La prueba de fuego para saber si una aplicación tiene toda su configuración correctamente separada del código es comprobar que el código base puede convertirse en código abierto en cualquier momento, sin comprometer las credenciales.