Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Calidad del codigo (MadridGUG)

1,084 views

Published on

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

Published in: Software
  • Be the first to comment

  • Be the first to like this

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 ?

×