Bootcamp2012dsv code management continuois integration

80
Paseo Bonanova, 9 - 08022 Barcelona - T. 932 541 530 Fortuny, 3 - 28010 Madrid - T. 917 021 645 www.nextret.net - [email protected] Asuntos Internos El código fuente: “Somos lo que vendemos” [email protected] Gestión código fuente

description

 

Transcript of Bootcamp2012dsv code management continuois integration

Page 1: Bootcamp2012dsv code management continuois integration

Paseo Bonanova, 9 - 08022 Barcelona - T. 932 541 530Fortuny, 3 - 28010 Madrid - T. 917 021 645www.nextret.net - [email protected]

Asuntos Internos

El código fuente:

“Somos lo que vendemos”

[email protected]

Gestión código fuente

Page 2: Bootcamp2012dsv code management continuois integration

1. DOS HISTORIAS DE MUCHO MIEDO

Gestión código fuente 2

Page 3: Bootcamp2012dsv code management continuois integration

1. Dos historias de mucho miedo

Estas son dos historias que pasaron de verdad (o no).

Gestión código fuente 3

Page 4: Bootcamp2012dsv code management continuois integration

1. Dos historias de mucho miedo

Alberto Benitez Cazorla ([email protected]) dejó la empresa para ir a criar marmotas en el Pirineo.

Sus compañeros de proyecto no encontraron el código fuente de su aplicación el día que había que hacer una corrección urgente para ya de antes de ayer.

Cuando por fin lo encontraron, nunca supieron cual de los tres proyectos modificados en fechas similares era el bueno.

Gestión código fuente 4

Page 5: Bootcamp2012dsv code management continuois integration

1. Dos historias de mucho miedo

Xavier Yuste Zamora ([email protected]) estuvo una temporada en un cliente y le pidieron venir a la central para modificar un proyecto anterior.

Al volver, su PC había sido formateado y donado a una ONG que lo usa para las altas y bajas de una leprosería.

El código fuente había desaparecido.

Gestión código fuente 5

Page 6: Bootcamp2012dsv code management continuois integration

2. ¡TENEMOS UNA ISO-LUCION!O NO.

Gestión código fuente 6

Page 7: Bootcamp2012dsv code management continuois integration

2. ¡Tenemos una ISO-lución! O no.

La ISO-9001 dice que la copia de backup del fuente debe estar en

i:\_exe\Exxxxx\Fuentes:

“¿Mentiendes?”

net use i: \\ntnx01\home$

No C:\miproyecto\backup\2034-13-31-laCaixaExtranet.rar

No i:\_exe\Exxxxx\Docs\Java\2034-13-31-laCaixaExtranet.rar

No j:\Transfer\TeLoDejoAqui\2034-13-31-laCaixaExtranet.rar

Gestión código fuente 7

Page 8: Bootcamp2012dsv code management continuois integration

2. ¡Tenemos una ISO-lución! O no.

La ISO-9001 de la empresa dice que el fuente debe estar en i:\_exe\Exxxxx\Fuentes:

Problemas

Nadie lo copia.

Si se acuerdan de copiarlo, se hace manualmente.

Manual == ERRORES

Gestión código fuente 8

Page 9: Bootcamp2012dsv code management continuois integration

2. ¡Tenemos una ISO-lución! O no.

La ISO-9000 de la empresa dice que el fuente debe estar en i:\_exe\Exxxxx\Fuentes:

Dudas ¿Como se relaciona con la copia local del desarrollador?

¿DONDE ESTÁ LA COPIA LOCAL? ¿Como estamos seguros que todo lo copiado es lo que debe estar? ¿Está todo lo que debe ser copiado? ¿Todo lo copiado debe estar ahí? ¿Gromenauer?

Gestión código fuente 9

Page 10: Bootcamp2012dsv code management continuois integration

3. “UNA NUEVA ESPERANZA”Gestión código fuente 10

Page 11: Bootcamp2012dsv code management continuois integration

3. “Una nueva esperanza”

“Usa el control de código, Luke”

A. Da igual cual... ¡sólo usa alguno!

Subversion, git, hg, CVS Visual Source Safe, aceptamos pulpo como SCM? Google is your friend.

Busca, encuentra, lee, aprende... usa.

B. Usalo ordenadamente

Organiza y automatiza tu proyecto. Usa servidores confiables, propios o del cliente. Cumple con los 10 mandamientos. Cumple las best practices de tu gestor de código.

Gestión código fuente 11

Page 12: Bootcamp2012dsv code management continuois integration

3. “Una nueva esperanza”

Dale alegría a tu proyecto

La alegría de:

Que tú y todos sepan donde está cada cosa.

Que todo esté controlado y no falte nada.

Que se pueda hundir el mundo y puedas seguir.

Gestión código fuente 12

Page 13: Bootcamp2012dsv code management continuois integration

3. “Una nueva esperanza”

Dale alegría a tu proyecto

Y todo en unos sencillos pasos...

Gestión código fuente 13

Page 14: Bootcamp2012dsv code management continuois integration

4. ORGANIZA. AUTOMATIZA.Gestión código fuente 14

Page 15: Bootcamp2012dsv code management continuois integration

4. Organiza. Automatiza.

C:\_exe\Exxxxx == I:\_exe\Exxxxx Y punto.

Gestión código fuente 15

Page 16: Bootcamp2012dsv code management continuois integration

4. Organiza. Automatiza.

X:\_exe\Exxxxx\Fuentes\SVN X in { I, C } Checkout del código fuente del proyecto. Bajo control de versiones siempre. SVN o nombre descriptivo. Ejemplo:

En local C: puede trabajarse en el trunk o en un branch. En directorio de proyecto I: todo el árbol.

Gestión código fuente 16

Page 17: Bootcamp2012dsv code management continuois integration

4. Organiza. Automatiza.

C:\_exe\Exxxxx\workspace Para agrupar proyectos relacionados y aislarlos de los que no lo son. C:\_exe\Exxxxx\eclipse: IDE con todos los plugins del proyecto.

Gestión código fuente 17

Page 18: Bootcamp2012dsv code management continuois integration

4. Organiza. Automatiza.

Gestión código fuente 18

Page 19: Bootcamp2012dsv code management continuois integration

4. Organiza. Automatiza.

SlikSVN Cliente Subversion de linea de comandos para Windows. http://www.sliksvn.com/en/download

Gestión código fuente 19

Page 20: Bootcamp2012dsv code management continuois integration

4. Organiza. Automatiza.

¡Y ya está! Así de fácil.

Gestión código fuente 20

Page 21: Bootcamp2012dsv code management continuois integration

5. LOS 10 MANDAMIENTOS DEL CONTROL DE CÓDIGO

Gestión código fuente 21

Page 22: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos del control de código.

▊ · · · · · · · · · 10%

A. Deja de usar VSS. Ya. Está muerto. Como el pulpo Paul. http://support.microsoft.com/lifecycle/search/default.aspx?alpha=Visual+SourceSafe

Gestión código fuente 22

Page 23: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos del control de código.

▊▊ · · · · · · · · 20%

A. Si no está en control de código no existe. Repetir cada día este mantra:

“La única medida de progreso es código operativo bajo control, ommm”

Copias locales: Riesgo y descontrol.

Código controlado: Buenas prácticas.

Gestión código fuente 23

Page 24: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos del control de código.

▊▊▊ · · · · · · · 30%

A. ¡Commit pronto, commit regular… y sin remolonear!

Cada revisión con commit es un punto de recuperación. Para esas “pequeñas pérdidas” de que las cosas funcionen.

El riesgo de pesadillas de merge crece con el tiempo. Entropía del proyecto =

número de desarrolladores x tiempo sin hacer merge.

Enfuerza el aislamiento de funcionalidades en unidades de trabajo. Un commit, una cosa que funciona, una parte del todo.

Gestión código fuente 24

Page 25: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos del control de código.

▊▊▊▊ · · · · · · 40%

A. Inspecciona los cambios antes de subirlos. No subir basura.

Gestión código fuente 25

Page 26: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos del control de código.

▊▊▊▊ · · · · · · 40%

A. Inspecciona los cambios antes de subirlos. Subir cambios reales que afecten a todo el mundo.

Gestión código fuente 26

Page 27: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos del control de código.

▊▊▊▊ · · · · · · 40%

A. Inspecciona los cambios antes de subirlos. Revisa los ficheros uno por uno y valida los cambios.

Gestión código fuente 27

Page 28: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos del control de código.

▊▊▊▊▊ · · · · · 50%

A. Comenta el commit como si te fuese la vida en ello. En dos semanas ni tu mismo vas a saber qué cambiaste. Imagina que el equipo de soporte de tu código está formado por

maníacos homicidas con un hacha que saben dónde vives.

Gestión código fuente 28

Page 29: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos del control de código.

▊▊▊▊▊ · · · · · 50%

A. Comenta el commit como si te fuse la vida en ello. Buenos comentarios de commit te salvarán el culo en un blame.

Gestión código fuente 29

Page 30: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos del control de código.

▊▊▊▊▊ · · · · · 50%

A. Comenta el commit como si te fuse la vida en ello. Los comentarios de commit son la crónica de tu proyecto.

Gestión código fuente 30

Page 31: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos del control de código.

▊▊▊▊▊ · · · · · 50%

A. Comenta el commit como si te fuese la vida en ello. Antipatrones de comentario:

Algunas mierdecillas... Funciona! Arreglados algunos jodidos errores fix Arreglo de un pequeño bug... Actualizado typo Revision 1024!!

http://stackoverflow.hewgill.com/questions/909/338.html (\ /)

(O.o)(> <) El conejito aprueba los cambios.

Gestión código fuente 31

Page 32: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos del control de código.

▊▊▊▊▊▊ · · · · 60%

A. Sólo tu harás commit de tus cambios Antipatrón: Desarrollador jefe que revisa los cambios ajenos y hace

commit. Eso no es control de código. Eso es una guardería.

Gestión código fuente 32

Page 33: Bootcamp2012dsv code management continuois integration

A. Versionar la base de datos no es opcional. Apaliza al DBA hasta que lo entienda.

Dos estrategias: Versionar un script de creación desde el cero inicial.

“Y se hizo el esquema, y se crearon las tablas, y los índices, y los stored procedures”.

Partir de crear un esquema inicial y añadir scripts de cada modificación, versionados en un script maestro que los ejecute en orden. “Y a la tabla de empleados le quitó una costilla, y creo la vista de departamento IT”.

5. Los 10 mandamientos del control de código.

Gestión código fuente 33

▊▊▊▊▊▊▊ · · · 70%

Page 34: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos del control de código.

▊▊▊▊▊▊▊▊ · · 80%

A. El resultado de la compilación no va al control de código ¿Si el código no sirve para compilarlo, para qué lo guardas?

Ni *.class, ni *.jar, ni *.obj, ni *.exe, ni *.gaitas. No tiene sentido y sólo vas a fastidiar a tu equipo. Usa las herramientas para ignorar extensiones y directorios. Cuando incorpores ficheros, haz un clean previo del proyecto.

Guarda lo mínimo que define el proyecto.

Y si hay que guardar un resultado final: I:\_exe\Exxxxx\Entregados\

Gestión código fuente 34

Page 35: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos del control de código.

▊▊▊▊▊▊▊▊▊ · 90%

A. Tu configuración personal no le importa a nadie Entraría en conflicto con la configuración de otros. Depende de la tecnología.

Ejemplo Java: pom.xml si es necesario para Maven .project y .classpath de Eclipse no se requieren pudiendo importar el proyecto.

Gestión código fuente 35

Page 36: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos del control de código.

▊▊▊▊▊▊▊▊▊▊100%

A. Las dependencias tambien deben estar ahí. O sólo funcionará en tu máquina. A no ser que uses Maven u otro gestor de dependencias.

Por si las moscas, una copia en I:\_exe\Exxxxx\Fuentes\dependencias Y si hace falta, versionarla.

Gestión código fuente 36

Page 37: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos: Bonus track

▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊

A. Todo commit se asocia a una unidad de trabajo del proyecto.

El comentario del commit incluye el identificador de la unidad. El id de un bug. El código de una funcionalidad.

Facilita encontrar todas los cambios relacionados con un tema “¿Quién #@$%!!! tocó qué y cuándo y por qué para hacer ésto?” Bastará con buscar el identificador de la tarea.

Gestión código fuente 37

Page 38: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos: Bonus track

▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊

A. Todo commit se asocia a una unidad de trabajo del proyecto. Ejemplo:

Las tareas tienen un código identificativo.

Gestión código fuente 38

Page 39: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos: Bonus track

▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊

Todo commit se asocia a una unidad de trabajo del proyecto. Ejemplo:

Encontrar cambios buscando por el código de tarea.

Gestión código fuente 39

Page 40: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos: Bonus track

Gestión código fuente 40

Page 41: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos: Bonus track

Gestión código fuente 41

Page 42: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos: Bonus track

▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊

¿Cosas fuera de control de código? Si, una: Las pruebas de concepto.

Ficheros zip que con un proyecto que demuestra una solución. Con un documento que explique por qué se hizo y como. Crean Knowledge Base.

Gestión código fuente 42

Page 43: Bootcamp2012dsv code management continuois integration

5. Los 10 mandamientos: Bonus track

▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊▊

Subversion best practices Varias fuentes adicionales:

http://solowebstartup.com/top-18-subversion-best-practices http://svn.apache.org/repos/asf/subversion/trunk/doc/user/svn-best-practices.html

Gestión código fuente 43

Page 44: Bootcamp2012dsv code management continuois integration

6. EL CONTROL DE CÓDIGO ESTÁ BAJO CONTROL

Gestión código fuente 44

Page 45: Bootcamp2012dsv code management continuois integration

6. Control bajo control

#chucknorrisfacts

Gestión código fuente 45

Page 46: Bootcamp2012dsv code management continuois integration

6. Control bajo control

StatSVN http://www.statsvn.org/ So, what is StatSVN? Great statistics for SVN!

StatSVN retrieves information from a Subversion repository and generates various tables and charts describing the project development, e.g. Timeline for the lines of code Lines of code for each developer Activity by Clock time Authors Activity Author activity per Module Author Most Recent Commits with links to ViewVc Stats per directory File count Average file size Largest files Files with most revisions Directory Sizes Repository Tags Number of LOC per version. Repository tree with file count and lines of code LOC and Churn the evolution of LOC and the amount of change per day Repo Map the dynamic hierarchical view of your repo for the last 30 days

Gestión código fuente 46

Page 47: Bootcamp2012dsv code management continuois integration

6. Control bajo control

http://www.statsvn.org/demo/ruby/

Gestión código fuente 47

Page 48: Bootcamp2012dsv code management continuois integration

6. Control bajo control

http://www.statsvn.org/demo/ruby/

Gestión código fuente 48

Page 49: Bootcamp2012dsv code management continuois integration

7. ¿DONDE ESTA EL SUBVERSION?Gestión código fuente 49

Page 50: Bootcamp2012dsv code management continuois integration

7. ¿Dónde está el Subversion?

Varias opciones: Usar el del propio cliente.

Caso de las organizaciones que controlan su código de cerca. Ejemplo: UOC

Gestión código fuente 50

Page 51: Bootcamp2012dsv code management continuois integration

7. ¿Dónde está el Subversion?

Varias opciones: Usar un hosting externo.

Caso de cliente que quiera su propio repositorio sin infrastructura propia. Ejemplo de hosting: xp-dev.com, unfuddle.com. Facilitan algunas herramientas extra de gestión de proyecto:

Timeline. Tickets. Wiki.

Gestión código fuente 51

Page 52: Bootcamp2012dsv code management continuois integration

7. ¿Dónde está el Subversion?

Varias opciones: Acceder al Area 51 de NexTReT.

http://area51.nextret.net/ desde red interna. http://area51.nextret.net:xxxx/ desde Internet (seguridad y/o IP reciclada). Autenticación con login/password de red corporativa.

Gestión código fuente 52

Page 53: Bootcamp2012dsv code management continuois integration

7. ¿Dónde está el Subversion?

Varias opciones: Acceder al Area 51 de NexTReT.

Un repositorio por año /repo12 Un directorio raíz por proyecto /Exxxxx Pedir a [email protected] (futuro: sau) StatSVN on the way…

Gestión código fuente 53

Page 54: Bootcamp2012dsv code management continuois integration

8. INTEGRACION CONTINUAGestión código fuente 54

Page 55: Bootcamp2012dsv code management continuois integration

8. Integración continua

La integración continua es la ejecución de todas estas tareas… Obtener la última versión del código del proyecto. Compilarlo y generar binarios. Realizar pruebas unitarias y de integración. Correr análisis de métricas de calidad del código. Enviar correos con informes.

… cada vez que un desarrollador hace commit de un cambio. ¿Cada vez que se envía un commit? ¡¿A MANO?!

¡Un momento!

Gestión código fuente 55

Page 56: Bootcamp2012dsv code management continuois integration

8. Integración continua

“Never send a human to do a machine’s job”

Gestión código fuente 56

Page 57: Bootcamp2012dsv code management continuois integration

8. Integración continua

“Throughout human history,

we have been dependent on machines to survive.”

Gestión código fuente 57

Page 58: Bootcamp2012dsv code management continuois integration

8. Integración continua

La integración continua

Permite asegurar continuamente de forma automatizada

que los cambios que lleva cada uno de los desarrolladores en un equipo de trabajo no presenta problemas de integración con el código del resto del equipo.

Es una de las prácticas propuestas por las metodologías ágiles.

El objetivo es trasladar la variable del esfuerzo de integración de la parte final del desarrollo para repartirlo a lo largo de todo el proyecto.

Gestión código fuente 58

Page 59: Bootcamp2012dsv code management continuois integration

8. Integración continua

Ventajas Minimizar los tiempos y la problemática de la integración en los equipos

de desarrollo. Automatizar la construcción y paso de pruebas en cada cambio

realizado en el repositorio de código Mejora la eficiencia del equipo de desarrollo.

Automatizar herramientas de análisis de calidad del código, como Sonar, Checkstyle, PMD, Cobertura, etc…

Automatizar pasos a entornos de pruebas, como entornos de preproducción. Se identifican errores de entorno en fases tempranas.

Automatizar tareas de gestión de la configuración, como etiquetado de versiones de desarrollo Minimiza el tiempo de realimentación con el cliente.

Hacer visible al equipo de desarrollo el estado del proyecto. Aumentar la confianza en el código entregado al repositorio.

Gestión código fuente 59

Page 60: Bootcamp2012dsv code management continuois integration

8. Integración continua

Requiere que el build del sistema esté automatizado y pueda ejecutarse con un único comando Implica gestionar las dependencias. La mejor herramienta de gestión de dependencias es Maven.

Beneficios de Maven: Gestión automática de dependencias: Artefactos públicos/privados y otros frameworks (Spring, JPA, JSF...) Ciclo de vida repetible:

Construcción, pruebas, empaquetado, despliegue, etc..

Independiente del IDE de desarrollo empleado. Mejora la carga de los entornos de desarrollo locales y reduce el

tiempo de creación inicial y configuración de dichos entornos. Habilita la creación de repositorios corporativos de dependencias y

artefactos, mejorando la organización interna.

Gestión código fuente 60

Page 61: Bootcamp2012dsv code management continuois integration

8. Integración continua

Self-test del código

Implica que el código desarrollado tenga siempre al menos pruebas unitarias que cubran el mayor porcentaje posible del mismo.

Es posible aplicando metodología TDD: Test Driven Development.

TDD garantiza que el juego de pruebas evoluciona acorde a la evolución del sistema, al ser necesario plantear la prueba antes del componente a desarrollar.

La integración continua potencia sus beneficios al garantizar la ejecución automática de ese juego de pruebas de forma continua.

Gestión código fuente 61

Page 62: Bootcamp2012dsv code management continuois integration

8. Integración continua

Self-test del código

El punto de partida son los frameworks XUnit, que permiten reducir el esfuerzo en la creación de los componentes de prueba: Test Unitarios: Ej: JUnit. Test de Integración: Ej: DBUnit.

La integración continua permite también automatizar: Pruebas de rendimiento, Ej: JMeter, JUnitPerf. Pruebas automáticas de interfaz de usuario, Ej: Selenium, Sahi, Watir.

El punto de partida son los frameworks XUnit, que permiten reducir el esfuerzo en la creación de los componentes de prueba: Test Unitarios: Ej: JUnit. Test de Integración: Ej: DBUnit.

La integración continua permite también automatizar: Pruebas de rendimiento, Ej: JMeter, JUnitPerf. Pruebas automáticas de interfaz de usuario, Ej: Selenium, Sahi, Watir.

Gestión código fuente 62

Page 63: Bootcamp2012dsv code management continuois integration

8. Integración continua

Entrega continua de cambios

Es necesario establecer un punto único como repositorio del sistema en desarrollo, con la estructura adecuada, normalmente: Rama principal con la versión actual en desarrollo. (HEAD / trunk) Rama de mantenimiento de la última versión en producción.

Los miembros del equipo de desarrollo deben entregar sus cambios cada vez que esos cambios sean correctos y pasen las pruebas asociadas en su entorno local, afrontando antes la integración con cambios conflictivos de otros miembros del equipo

En todo momento, el servidor de integración continua construye de forma completa el sistema en cada cambio del repositorio, avisando de los errores a los autores de los cambios entregados.

Gestión código fuente 63

Page 64: Bootcamp2012dsv code management continuois integration

8. Integración continua

Servidor de integración continua Existen múltiples implementaciones disponibles: Hudson, Continuum,

Cruise Control... Detectar cambios y descargar el código desde el repositorio de

versiones. Lanzar la construcción del sistema, y la ejecución de las pruebas. Ejecutar automáticamente herramientas de análisis de la calidad del

código. Publicar los artefactos generados en la construcción. Etiquetar el código tras una construcción exitosa. Ante errores, notificar al equipo de desarrollo de los mismos. Gestionar el histórico de construcciones y de estadísticas de pruebas.

Gestión código fuente 64

Page 65: Bootcamp2012dsv code management continuois integration

8. Integración continua

Gestión código fuente 65

Page 66: Bootcamp2012dsv code management continuois integration

8. Integración continua

Gestión código fuente 66

Page 67: Bootcamp2012dsv code management continuois integration

8. Integración continua

Gestión código fuente 67

Page 68: Bootcamp2012dsv code management continuois integration

8. Integración continua

Métricas Es importante disponer de herramientas que permitan automatizar

análisis de código para gestionar: Nomenclaturas requeridas por arquitectura y metodología. Buenas prácticas. Código repetido. % de código cubierto por pruebas. Parámetros de complejidad de clases y métodos. % de código comentado. Evolución de las métricas a lo largo del tiempo.

Gestión código fuente 68

Page 69: Bootcamp2012dsv code management continuois integration

8. Integración continua

Salida de las métricas Cuadro de mando

Gestión código fuente 69

Page 70: Bootcamp2012dsv code management continuois integration

8. Integración continua

Escenario de aplicación

Gestión código fuente 70

Page 71: Bootcamp2012dsv code management continuois integration

8. Integración continua

¿Un servidor?

Cualquier contenedor de servlets Java (Tomcat, JBoss, Jetty, OC4J…) $ nohup java -jar hudson.war > $LOGFILE 2>&1

Posibilidad de arquitectura de maestro que delega a esclavos.

Capacidad de desplegar esclavos en instancias EC2 de Amazon. 10 céntimos la hora.

¿Maestro en Area 51, esclavos en cloud?

Gestión código fuente 71

Page 72: Bootcamp2012dsv code management continuois integration

8. Integración continua

“Pero yo trabajo en .Net”

“Pues vale”

Obligatorios: MSBuild plugin

http://wiki.hudson-ci.org/display/HUDSON/MSBuild+Plugin

NUnit plugin http://wiki.hudson-ci.org/display/HUDSON/NUnit+Plugin

Opcionales: Violations plugin

http://wiki.hudson-ci.org/display/HUDSON/Violations

Open Tasks plugin http://wiki.hudson-ci.org/display/HUDSON/Task+Scanner+Plugin

Gestión código fuente 72

Page 73: Bootcamp2012dsv code management continuois integration

8. Integración continua

Microsoft Team Foundation Server 2010

Gestión código fuente 73

Page 74: Bootcamp2012dsv code management continuois integration

8. Integración continua

Microsoft Team Foundation Server 2010

Gestión código fuente 74

Page 75: Bootcamp2012dsv code management continuois integration

8. Integración continua

Microsoft Team Foundation Server 2010

Gestión código fuente 75

Page 76: Bootcamp2012dsv code management continuois integration

EPÍLOGOGestión código fuente 76

Page 77: Bootcamp2012dsv code management continuois integration

Epílogo

El código fuente de [email protected] apareció de casualidad

En un backup de un servidor virtual a punto de ser borrado. A tiempo de no tener que tomar decisiones drásticas.

Gestión código fuente 77

Page 78: Bootcamp2012dsv code management continuois integration

Epílogo

Las marmotas de [email protected] se han hecho famosas

Si el 2 de febrero la marmota ve cajas de pizzas en tu oficina, el proyecto no cumplirá los plazos de entrega .

Gestión código fuente 78

Page 79: Bootcamp2012dsv code management continuois integration

Epílogo

Ningún pulpo fué maltratado en la elaboración de este documento.

Gestión código fuente 79

Page 80: Bootcamp2012dsv code management continuois integration

Cuando volver a casa y olvidarse de todo significa, literalmente eso.Nadie sabe cuando va a surgir un problema, aunque está claro que son inevitables.

Sin embargo, resolverlos es precisamente una de nuestras especialidades.Y será una de las que más aprecies. Pregúntale a nuestros clientes.

www.nextret.net - [email protected] Bonanova, 9 - 08022 Barcelona - T. 932 541 530

Fortuny, 3 - 28010 Madrid - T. 917 021 645