Red de conocimientos turísticos - Conocimientos sobre calendario chino - Qué es la integración continuaDe: Haipeng Wang La integración continua no es una práctica de desarrollo de software, sino una colección de prácticas de desarrollo de software. Los equipos inevitablemente se topan con un problema al intentar introducir estas prácticas de desarrollo: sin una buena comprensión de por qué, la integración continua puede desviarse y no lograr los resultados deseados. Integración de datos. Los datos son el núcleo de todos los sistemas de TI y todas las arquitecturas se basan en datos para procesarlos mejor. Desafortunadamente, el DBA y el programador parecían provenir de diferentes orígenes culturales y no hablaban el mismo idioma. El resultado es a menudo que los programadores desarrollan programas basados ​​en sus propias suposiciones sobre la base de datos y sólo se integran con la base de datos real en una etapa avanzada del proyecto. Esta suposición crea importantes riesgos de integración e implementación, afecta la calidad del código y puede dar lugar a importantes retrabajos. Para el desarrollo con conjuntos de datos existentes, la integración continua enfatiza la integración temprana con datos reales, como a través de la replicación de bases de datos, que se puede realizar en un entorno de desarrollo que es casi idéntico al entorno de producción. Además, el DBA puede trabajar en estrecha colaboración con el equipo de desarrollo para compartir ideas y experiencias de modo que la forma en que se organiza la base de datos se mantenga al día con las nuevas necesidades comerciales. Para obtener más información sobre este tema, consulte "Refactorización de bases de datos" de Scott W. Ambler. ¿Qué pasa si el proyecto está desarrollando una aplicación completamente nueva y aún no hay un conjunto de datos? El método es simple: primero, obtenga conjuntos de datos reales lo antes posible. En segundo lugar, a medida que la comprensión del dominio del problema por parte del equipo de desarrollo continúa profundizándose y la funcionalidad de la aplicación continúa implementándose, también se debe optimizar la organización de los datos. Inspección de código estático. La calidad del código escrito por diferentes personas varía mucho. La calidad del código escrito por la misma persona en diferentes momentos también puede variar mucho. Por lo tanto, las actividades de revisión de código tienen como objetivo mejorar la calidad del código. Extreme Programming, por otro lado, extiende la revisión del código a cada minuto del desarrollo mediante la práctica de la programación en pares. El costo de hacer esto es alto. Por supuesto, según Crosby, el intercambio por un producto de alta calidad generalmente vale la pena. Pero la gente siempre se pregunta: ¿no sería mejor si pudiéramos reducir el costo de las inspecciones y al mismo tiempo obtener los beneficios de las mismas? Los estándares de codificación son un buen ejemplo. Creo que toda organización de desarrollo seria no dejará de mencionar los estándares de codificación, pero verificar si el código cumple con los estándares de codificación es una tarea que requiere mucho tiempo y trabajo, lo que también conduce a la ausencia de estándares de codificación en muchos proyectos. Las herramientas de inspección automática de códigos pueden resolver esta tediosa tarea. Herramientas como CheckStyle pueden verificar automáticamente que el código cumpla con los estándares de codificación. Los proyectos pueden cumplir con los estándares de codificación a un costo asequible. Los programadores también seguirán mejorando durante las inspecciones y desarrollarán buenos hábitos de codificación. La inspección de código estático puede hacer más. Por varias razones, queremos que nuestro código sea "bajo acoplamiento y alta cohesión". Las herramientas de verificación de dependencia de código como PMD pueden ayudarnos a encontrar dependencias inapropiadas. El código duplicado es enemigo de la calidad y PMD también puede encontrarlo. Hay algunos errores que la gente tiende a cometer al utilizar lenguajes de programación y herramientas como FindBugs pueden ayudarnos a encontrarlos. La inspección de código estático no puede reemplazar completamente las actividades de revisión, pero puede liberarnos de actividades aburridas y poco creativas y centrarnos en el pensamiento y las actividades creativas. Herramientas por herramientas, personas por personas. Pruebas automatizadas. Aprovechando la tecnología existente, podemos automatizar muchas pruebas a un costo asequible. Estas pruebas automatizadas incluyen pruebas unitarias, pruebas de integración, pruebas de sistemas, pruebas de aceptación, pruebas de estrés, etc. Las pruebas automatizadas continuas mediante la integración continua traerán muchos beneficios. Las pruebas automatizadas pueden reducir la presión sobre el equipo de desarrollo, brindar confianza a todos en el sistema y hacer que el ambiente de trabajo sea más relajado. Con la protección de las pruebas automatizadas, los desarrolladores se atreven a mejorar continuamente el sistema, agregar nuevas funciones y mejorar la calidad del código. Cuando los sistemas tienen la oportunidad de mejorar cada vez más, podemos crear un software asombroso. Las pruebas automatizadas reducen el costo de las pruebas y modificaciones. Cuanto antes se detecte un error, menos costoso será corregirlo. Las pruebas automatizadas aceleran el ciclo de desarrollo/pruebas, reduciendo así el coste de corregir errores. Los sistemas que son fáciles de probar son fáciles de mejorar y mantener, los sistemas que son difíciles de probar son difíciles de mejorar y mantener, y los sistemas que no se pueden probar pueden básicamente excluirse de nuestra consideración. Los sistemas que son baratos de probar también lo son de desarrollar y mantener. Las pruebas automatizadas pueden informar el progreso real del sistema. ¿Qué requisitos se han cumplido? ¿La arquitectura y la implementación existentes cumplen con los requisitos de rendimiento? Las pruebas de aceptación y estrés automatizadas nos dirán la respuesta exacta.

Qué es la integración continuaDe: Haipeng Wang La integración continua no es una práctica de desarrollo de software, sino una colección de prácticas de desarrollo de software. Los equipos inevitablemente se topan con un problema al intentar introducir estas prácticas de desarrollo: sin una buena comprensión de por qué, la integración continua puede desviarse y no lograr los resultados deseados. Integración de datos. Los datos son el núcleo de todos los sistemas de TI y todas las arquitecturas se basan en datos para procesarlos mejor. Desafortunadamente, el DBA y el programador parecían provenir de diferentes orígenes culturales y no hablaban el mismo idioma. El resultado es a menudo que los programadores desarrollan programas basados ​​en sus propias suposiciones sobre la base de datos y sólo se integran con la base de datos real en una etapa avanzada del proyecto. Esta suposición crea importantes riesgos de integración e implementación, afecta la calidad del código y puede dar lugar a importantes retrabajos. Para el desarrollo con conjuntos de datos existentes, la integración continua enfatiza la integración temprana con datos reales, como a través de la replicación de bases de datos, que se puede realizar en un entorno de desarrollo que es casi idéntico al entorno de producción. Además, el DBA puede trabajar en estrecha colaboración con el equipo de desarrollo para compartir ideas y experiencias de modo que la forma en que se organiza la base de datos se mantenga al día con las nuevas necesidades comerciales. Para obtener más información sobre este tema, consulte "Refactorización de bases de datos" de Scott W. Ambler. ¿Qué pasa si el proyecto está desarrollando una aplicación completamente nueva y aún no hay un conjunto de datos? El método es simple: primero, obtenga conjuntos de datos reales lo antes posible. En segundo lugar, a medida que la comprensión del dominio del problema por parte del equipo de desarrollo continúa profundizándose y la funcionalidad de la aplicación continúa implementándose, también se debe optimizar la organización de los datos. Inspección de código estático. La calidad del código escrito por diferentes personas varía mucho. La calidad del código escrito por la misma persona en diferentes momentos también puede variar mucho. Por lo tanto, las actividades de revisión de código tienen como objetivo mejorar la calidad del código. Extreme Programming, por otro lado, extiende la revisión del código a cada minuto del desarrollo mediante la práctica de la programación en pares. El costo de hacer esto es alto. Por supuesto, según Crosby, el intercambio por un producto de alta calidad generalmente vale la pena. Pero la gente siempre se pregunta: ¿no sería mejor si pudiéramos reducir el costo de las inspecciones y al mismo tiempo obtener los beneficios de las mismas? Los estándares de codificación son un buen ejemplo. Creo que toda organización de desarrollo seria no dejará de mencionar los estándares de codificación, pero verificar si el código cumple con los estándares de codificación es una tarea que requiere mucho tiempo y trabajo, lo que también conduce a la ausencia de estándares de codificación en muchos proyectos. Las herramientas de inspección automática de códigos pueden resolver esta tediosa tarea. Herramientas como CheckStyle pueden verificar automáticamente que el código cumpla con los estándares de codificación. Los proyectos pueden cumplir con los estándares de codificación a un costo asequible. Los programadores también seguirán mejorando durante las inspecciones y desarrollarán buenos hábitos de codificación. La inspección de código estático puede hacer más. Por varias razones, queremos que nuestro código sea "bajo acoplamiento y alta cohesión". Las herramientas de verificación de dependencia de código como PMD pueden ayudarnos a encontrar dependencias inapropiadas. El código duplicado es enemigo de la calidad y PMD también puede encontrarlo. Hay algunos errores que la gente tiende a cometer al utilizar lenguajes de programación y herramientas como FindBugs pueden ayudarnos a encontrarlos. La inspección de código estático no puede reemplazar completamente las actividades de revisión, pero puede liberarnos de actividades aburridas y poco creativas y centrarnos en el pensamiento y las actividades creativas. Herramientas por herramientas, personas por personas. Pruebas automatizadas. Aprovechando la tecnología existente, podemos automatizar muchas pruebas a un costo asequible. Estas pruebas automatizadas incluyen pruebas unitarias, pruebas de integración, pruebas de sistemas, pruebas de aceptación, pruebas de estrés, etc. Las pruebas automatizadas continuas mediante la integración continua traerán muchos beneficios. Las pruebas automatizadas pueden reducir la presión sobre el equipo de desarrollo, brindar confianza a todos en el sistema y hacer que el ambiente de trabajo sea más relajado. Con la protección de las pruebas automatizadas, los desarrolladores se atreven a mejorar continuamente el sistema, agregar nuevas funciones y mejorar la calidad del código. Cuando los sistemas tienen la oportunidad de mejorar cada vez más, podemos crear un software asombroso. Las pruebas automatizadas reducen el costo de las pruebas y modificaciones. Cuanto antes se detecte un error, menos costoso será corregirlo. Las pruebas automatizadas aceleran el ciclo de desarrollo/pruebas, reduciendo así el coste de corregir errores. Los sistemas que son fáciles de probar son fáciles de mejorar y mantener, los sistemas que son difíciles de probar son difíciles de mejorar y mantener, y los sistemas que no se pueden probar pueden básicamente excluirse de nuestra consideración. Los sistemas que son baratos de probar también lo son de desarrollar y mantener. Las pruebas automatizadas pueden informar el progreso real del sistema. ¿Qué requisitos se han cumplido? ¿La arquitectura y la implementación existentes cumplen con los requisitos de rendimiento? Las pruebas de aceptación y estrés automatizadas nos dirán la respuesta exacta.

En muchos casos, existe una razón para hacer que los requisitos sean comprobables y, por tanto, automatizar las pruebas. Despliegue automático. ¿Se puede implementar el sistema en el entorno de producción de destino? ¿Se requieren migraciones de datos y actualizaciones de aplicaciones? ¿Es correcto el archivo de configuración? La mejor manera de comprender estos problemas es automatizar el proceso de implementación. Asegúrese de que el proceso de implementación esté libre de problemas implementando continuamente en un entorno de destino cercano al entorno de producción. Después de un despliegue automático exitoso, el sistema implementado se someterá a pruebas de aceptación y estrés. La implementación continua puede detectar problemas durante el proceso de implementación lo antes posible y reducir los riesgos cuando el sistema se conecta. Mejorar la visibilidad del proyecto. ¿Cómo va el proyecto? ¿Qué requisitos se cumplieron? ¿Qué código se probó? ¿Cómo es la calidad del código? La integración continua presenta varios informes de análisis de manera oportuna, lo que permite al equipo de desarrollo y a la gerencia comprender el verdadero estado del proyecto y tomar decisiones correctas. El sentimiento de "No conozco la verdadera cara del Monte Lu, sólo porque estoy en esta montaña" se ha ido. En términos generales, las personas más exitosas tienen la mejor información. Las personas más exitosas tienen la mejor información. Porque la integración continua puede mejorar la calidad del software, reducir los riesgos, mejorar la eficiencia del desarrollo de software y permitir que todos "trabajen y vivan felices" en lugar de "trabajar horas extras y no hacer nada". Esta no es la única respuesta estándar, cada equipo puede llegar a su propia respuesta mediante la reflexión y el debate. Para obtener más información sobre la integración continua, consulte el libro Integración continua.

er>