Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Calidad del codigo (MadridGUG)

1.159 visualizaciones

Publicado el

En esta charla del grupo de usuarios de Groovy en Madrid trate técnicas de calidad del código complementarias a la creación de tests

Publicado en: Software
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Calidad del codigo (MadridGUG)

  1. 1. Calidad en el codigo ➔ Mario Garcia ➔ Twitter: @marioggar ➔ Github: https://github.com/mariogarcia
  2. 2. La piramide No tests Tests Code coverage Documentation HOY
  3. 3. Indice ➔ Compilador ➔ Analisis estatico de codigo ➔ Testing ➔ Cobertura de codigo ➔ Entorno reproducible ➔ Todos los ejemplos basados en
  4. 4. Compilador ➔Groovy es fuertemente tipado ➔No puedes asignar un valor a un tipo diferente ➔Cuidado con def == Object ➔Groovy es dinamico ➔Se resuelven llamadas en tiempo de ejecucion
  5. 5. Compilador ➔Caso 0: No tenemos tests pero queremos tener cierta seguridad
  6. 6. Configuracion del compilador ➔Compiler config file ➔Como escribir el fichero de configuracion ➔http://docs.groovy-lang.org/latest/html/documentation/#compilation-cust omizers ➔Introduccion a la compilacion estatica ➔http://docs.groovy-lang.org/latest/html/documentation/#_static_compilati on ➔Como pasar el fichero de configuracion al compilador ➔http://www.groovy-lang.org/groovyc.html
  7. 7. MR Haki ➔Ejemplo completo ➔http://mrhaki.blogspot.com.es/2016/01/groovy-goodness-cust omising-groovy.html
  8. 8. Analisis estatico ➔Codenarc ➔Queremos seguir poniendo restricciones a como se codifica en nuestra aplicacion ➔“No usar servicios en nuestras clases de dominios de Grails” ➔“No usar variables def en bibliotecas que se vayan a compartir” ➔“No llamar nunca al metodo X en clases del tipo Y” ➔...etc ➔http://codenarc.sourceforge.net/
  9. 9. Analisis estatico ➔Codenarc Grails 3 ➔Grails Guide sobre Codenarc custom rules ➔https://github.com/grails-guides/grails-codenarc
  10. 10. Testing ➔Spock ➔http://spockframework.org/spock/docs/1.1/all_in_one.html ➔Junit 3/4 ➔http://www.groovy-lang.org/testing.html
  11. 11. Testing ➔ Spock para 90% de los casos pero… ➔ A veces quieres que tus tests se compilen estaticamente ➔ No puedes deberias usar Spock ➔ Cuando ? ➔ Testeando ASTs ➔ Testeando DSLs ➔ Contribuyendo a Groovy (Only GroovyTestCase allowed)
  12. 12. Cobertura de codigo ➔Cobertura de codigo ➔Estamos testeando todo lo importante ? ➔Herramientas ➔Cobertura ➔http://cobertura.github.io/cobertura/ ➔Jacoco ➔http://www.eclemma.org/jacoco/
  13. 13. Cobertura vs Jacoco con Grails 3 ➔Analisis en progreso ➔http://mariogarcia.github.io/blog/blog/2017/04/grails_coverag e.html ➔Cobertura es lo menos malo ➔Jacoco muestra todo el codigo generado por las ASTs
  14. 14. Clover ➔Clover OSS ➔http://openclover.org/ ➔Build Tools ➔Gradle/Ant ➔https://github.com/bmuschko/gradle-clover-plugin ➔IDE plugins ➔IDEA ➔Eclipse
  15. 15. Entornos reproducibles ➔Spock & Docker ➔Test Containers ➔https://github.com/testcontainers/testcontainers-spock ➔http://slides.com/kiview/groovy-integration-testing-spock-docker#/ ➔Gradle/Docker ➔https://github.com/bmuschko/gradle-docker-plugin
  16. 16. GRACIAS!!! ➔Preguntas ?

×