Revisión de código fuente de manera ágil

Post on 27-Jun-2015

1.693 views 1 download

Transcript of Revisión de código fuente de manera ágil

Revisión de Código Fuente de Manera Ágil

Jose Luis BugarinCEO ILUMINATIC SAC

jbugarin@iluminatic.com@jlbugarin

consultorjava.com – iluminatic.com

¿Por qué Debemos cuidar la calidad de nuestro código?

Pensemos…

• "Los programas deben ser escritos para que la gente lea, y sólo las máquinas puedan ejecutarlos “

Abel & Sussman

Cambios en Los Requerimientos

Costo de un Defecto

Defectos en nuestro software

Algunos números referenciales

• Encontrar, la solución de problemas en la producción es 100 veces máscaro que durante la fase de diseño / requisitos

•• 40-50% del trabajo de proyecto típico es "reescribir"• 80% de retrabajo proviene del 20% de los defectos• 80% de los defectos provienen del 20% de los módulos• 90% del tiempo de inactividad viene de 10% de los defectos• Las revisiones cruzadas atrapan 60% de los defectos• Las prácticas personales disciplinado puede reducir los defectos hasta en un 75%

Pero…

• La evidencia es abrumadora, pero ..• Nos parece que nunca tenemos tiempo para

hacerlo, pero siempre parece que encontramos tiempo para "rehacer“ “reescribir” “comenzar desde cero”

¿Qué onda con el QA?

• QA puede o no puede cuidar la calidad de Nuestro software? ¿Por qué los desarrolladores deben cuidar su código?> Porque QA debe o no debe preocuparse por la calidad del diseño y la implementación.> En su lugar, deben preocuparse por "testeos funcionales,aceptación, rendimiento, facilidad de uso, etc.”> Tu desarrollador entrega un software de mejor calidad por lo que QA realmente puede centrarse en"Testeos de funcionalidad"

Deuda Tecnica

• "La deuda técnica" son actividades (como la refactorización, la actualización de unalibrería, codificación estándar, ..) que usted ha dejado de realizar.

¿Cómo mejorar la calidad de nuestro software?

Maneras de mejorar nuestro software

• Comience temprano.

• Programe tiempo para bajar su deuda técnica.• Hacer que funcione (de inmediato).• Requiere vigilancia y el cambio de actitud.• Estar dispuesto a ayudar y ser ayudado.

Esfuerzo Individual

• Preocuparse uno mismo por la calidad de su código.

• > Buenas nombres de las variables, métodos, Método corto, clases más pequeñas,• Debe ser sencillo.• Escribir las pruebas con alta cobertura.• Ejecutar todas las pruebas necesarias.• Compruebe con frecuencia.• Pida retroalimentación.

Esfuerzos de Equipo

• Evitar los atajos.• Hable propiedad colectiva - equipo debe

poseer el código.• Promover la interacción positiva.• Proporcionar retroalimentación constructiva.• revisión de código constante.

Tratar Advertencias (Warning) como errores

• “Es solo una advertencia”• Estas advertencias pueden tener “cosas”

ocultas• Si es inevitable, suprimir selectivamente

Verificación de Código

Cobertura de Código

• ¿Qué cantidad (%) de su código está cubierto por la prueba?• Las herramientas de cobertura de código pueden decir

cuáles y cuánto códigoestá cubierto> Clover> Cobertura> JaCoCo• Algunas herramientas de código de eliminación que no tienen ninguna prueba de> Guantánamo> Ashcroft

Duplicado de Código

• Código duplicado es caro de mantener> Código duplicado es común• Herramientas que permiten detectar la duplicación de código> PMD

Análisis de Código

• Análisis de código para encontrar errores> Los errores lógicos> Codificación, violaciones> Problemas de sincronización y mas• Herramientas> PMD> FindBugs> Jlint

Principios para Generación de Códigos

• Sencillez• Claridad• brevedad• Humanidad

Comentarios en el Código

• Los comentarios deben decir "por qué" o el "propósito" no "cómo"• No comentar lo que hace el código - Soy capaz de leer el código y entenderlo• No conservar la documentación separada del código

Herramientas Recomendadas

• PMD• CHECKSTYLE• FINDBUGS• CODEPRO• SONAR