Upload
rafbermudez
View
968
Download
0
Embed Size (px)
Citation preview
@rafbermudez#codemotion_es
● Rafael Bermúdez Míguez ● @rafbermudez● [email protected]
Programa mejor que Chuck Norris: Herramientas que nos ayudan a mejorar
MADRID · NOV 27-28 · 2015
@rafbermudez#codemotion_es
De qué va esta película• Nadie programa como Chuck Norris, y lo sabes• Testear NO MOTIVA• Es difícil seguir las convenciones
• Formato de código• DRY• Mejora continua • Buenas prácticas
• Necesitamos métricas, pero el trabajo administrativo es horrible• Figura de “el perseguidor”
@rafbermudez#codemotion_es
GRACIAS
www.ets.es
@rafbermudez#codemotion_es
Cobertura del código• Mide las partes del código que han sido comprobadas
• Groovy: Test Code Coverage• https://github.com/beckje01/grails-code-coverage
• Configura las partes que te interesen
• haltOnFailure• lineRate• branchRate
@rafbermudez#codemotion_es
Cobertura: Provoca Buenas PrácticasList<Personas> Saludar(List<Persona> personas, Boolean esFeliz){
if (esFeliz){ //golpe de barba return personas[0..<-1]
} else{ //patada voladora return []
}}
List<Personas> Saludar(List<Persona> personas, Boolean esFeliz){
if (esFeliz){ return golpeDeBarba(personas)
} else{ return patadaVoladora(personas) }}
ENTENDIBLE, TESTEABLE
@rafbermudez#codemotion_es
Métricas de código• Groovy: Gmetrics
• http://gmetrics.sourceforge.net/
• Métricas de código (Totales y medias)• Lineas por clase• Líneas por función• Puntos de función• Complejidad ciclomática• Complejidad ABC• ...
@rafbermudez#codemotion_es
Complejidad ciclomática
@rafbermudez#codemotion_es
Complejidad ABC
@rafbermudez#codemotion_es
GMetrics
@rafbermudez#codemotion_es
Análisis estático de código• Útil para
• Seguir buenas prácticas• Establecer convenciones de equipo• Detectar patrones nocivos
• Detectar fallos de seguridad!• Groovy: Codenarc
• http://codenarc.sourceforge.net/• multitud de reglas preconfiguradas• customizable
• crea tus propias reglas
@rafbermudez#codemotion_es
Integración continua• Automatiza
• La compilación desde tu sistema de versionado• La ejecución de test• La generación de reportes• El deploy
• Jenkins• Servidor de integración continua• Automatiza la ejecución de tareas• Chuck Norris Plugin
@rafbermudez#codemotion_es
Ahora un poco de acción...
● Rafael Bermúdez Míguez ● @rafbermudez● [email protected]
Programa mejor que Chuck Norris:
Herramientas que nos ayudan a mejorar
MADRID · NOV 27-28 · 2015