SlideShare a Scribd company logo
1 of 22
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
La Aplicación
Diseño de la Arquitectura
de la Aplicación
La Aplicación
La Aplicación en la Nube
Buenas Prácticas y
Recomendaciones
En lugar de
Obtener
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)
Diseño
Diseño
Implementación (1/4)
Base de Código
• Control de Versiones
• SVN  Git
• Base de Código = Repositorio
• Beneficios
• Varios Despliegues
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
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
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
Pruebas
• Unitarias
• Funcionalidad
• Integración
• Con servicios
• Automatizadas
• Escenarios
• Beneficios
• Disminuir la probabilidad de errores en
producción
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
Evolución (1/2)
Recomendaciones
• Ambientes homogéneos
Beneficios
• Despliegues continuos
Demostración
Buenas Prácticas para la Construcción de Aplicaciones de Software
Buenas Prácticas para la Construcción de Aplicaciones de Software

More Related Content

Similar to Buenas Prácticas para la Construcción de Aplicaciones de Software

Windows server 2012 jose luis
Windows server 2012 jose luisWindows server 2012 jose luis
Windows server 2012 jose luisyanez1814
 
02 proceso ciclodevida
02 proceso ciclodevida02 proceso ciclodevida
02 proceso ciclodevidaclaudiappaez
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsEsteban Saavedra
 
Azure Functions Spanish
Azure Functions SpanishAzure Functions Spanish
Azure Functions SpanishCDS
 
Windows server 2012 jose luis
Windows server 2012 jose luisWindows server 2012 jose luis
Windows server 2012 jose luisyanez1814
 
Patrones de Diseño en la Arquitectura de Integración Moderna
Patrones de Diseño en la Arquitectura de Integración ModernaPatrones de Diseño en la Arquitectura de Integración Moderna
Patrones de Diseño en la Arquitectura de Integración ModernaFrancisco Arturo Viveros
 
Herramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareHerramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareMiguel Sanchez
 
Comparativo entre plataformas de ESB
Comparativo entre plataformas de ESBComparativo entre plataformas de ESB
Comparativo entre plataformas de ESBIntellego Chile
 
Plain Concepts ALM Tour 2013 - Maximizando la productividad de nuestros equipos
Plain Concepts ALM Tour 2013 - Maximizando la productividad de nuestros equiposPlain Concepts ALM Tour 2013 - Maximizando la productividad de nuestros equipos
Plain Concepts ALM Tour 2013 - Maximizando la productividad de nuestros equiposVicenç García-Altés
 

Similar to Buenas Prácticas para la Construcción de Aplicaciones de Software (20)

JS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World ExampleJS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World Example
 
Windows server 2012 jose luis
Windows server 2012 jose luisWindows server 2012 jose luis
Windows server 2012 jose luis
 
Metodo watch
Metodo watchMetodo watch
Metodo watch
 
Metodo watch
Metodo watchMetodo watch
Metodo watch
 
02 proceso ciclodevida
02 proceso ciclodevida02 proceso ciclodevida
02 proceso ciclodevida
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web Grails
 
Proceso de software
Proceso de softwareProceso de software
Proceso de software
 
Azure Functions
Azure FunctionsAzure Functions
Azure Functions
 
Azure Functions Spanish
Azure Functions SpanishAzure Functions Spanish
Azure Functions Spanish
 
Windows server 2012 jose luis
Windows server 2012 jose luisWindows server 2012 jose luis
Windows server 2012 jose luis
 
Patrones de Diseño en la Arquitectura de Integración Moderna
Patrones de Diseño en la Arquitectura de Integración ModernaPatrones de Diseño en la Arquitectura de Integración Moderna
Patrones de Diseño en la Arquitectura de Integración Moderna
 
Herramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de softwareHerramientas y entornos de implementacion de software
Herramientas y entornos de implementacion de software
 
Metodo watch y lps
Metodo watch y lpsMetodo watch y lps
Metodo watch y lps
 
Metodo watch y lps
Metodo watch y lpsMetodo watch y lps
Metodo watch y lps
 
Iniciación Con CakePHP
Iniciación Con CakePHPIniciación Con CakePHP
Iniciación Con CakePHP
 
Webinar Oracle Application Express
Webinar Oracle Application ExpressWebinar Oracle Application Express
Webinar Oracle Application Express
 
Comparativo entre plataformas de ESB
Comparativo entre plataformas de ESBComparativo entre plataformas de ESB
Comparativo entre plataformas de ESB
 
Introduccion Java.ppt
Introduccion Java.pptIntroduccion Java.ppt
Introduccion Java.ppt
 
Plain Concepts ALM Tour 2013 - Maximizando la productividad de nuestros equipos
Plain Concepts ALM Tour 2013 - Maximizando la productividad de nuestros equiposPlain Concepts ALM Tour 2013 - Maximizando la productividad de nuestros equipos
Plain Concepts ALM Tour 2013 - Maximizando la productividad de nuestros equipos
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de software
 

Recently uploaded

UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesElianaCceresTorrico
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesCarlosMeraz16
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfs7yl3dr4g0n01
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfbcondort
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrialGibranDiaz7
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASPersonalJesusGranPod
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónXimenaFallaLecca1
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDEdith Puclla
 
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMONICADELROCIOMUNZON1
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinosDayanaCarolinaAP
 
Ejemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - EjerciciosEjemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - EjerciciosMARGARITAMARIAFERNAN1
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfdanielJAlejosC
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Dr. Edwin Hernandez
 

Recently uploaded (20)

UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestaciones
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrial
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptx
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinos
 
Ejemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - EjerciciosEjemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - Ejercicios
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 

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
  • 2.
  • 3.
  • 5. Diseño de la Arquitectura de la Aplicación
  • 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
  • 19. Evolución (1/2) Recomendaciones • Ambientes homogéneos Beneficios • Despliegues continuos

Editor's Notes

  1. En las empresas se trabaja sin un procedimiento
  2. Modular No Acoplado Aplicación Self Hosted
  3. 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.
  4. WireMock
  5. construcción (una “build”)
  6. construcción (una “build”)