Curso TDD Ruby on Rails #08: Buenas prácticas

2,059 views

Published on

Lección 08 del curso de TDD en Ruby on Rails:
Buenas prácticas

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,059
On SlideShare
0
From Embeds
0
Number of Embeds
17
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Curso TDD Ruby on Rails #08: Buenas prácticas

  1. 1. CURSO DE TESTING OSL 12 – 16 DE ABRIL 2010 Buenas prácticas en el desarrollo de aplicaciones web Alberto Perdomo Web: http://albertoperdomo.net Email: alberto.perdomo@aentos.es Twitter: @albertoperdomo http://www.aentos.com
  2. 2. EL CÓDIGO PERDURA No escribas código del que te vayas a sentir avergonzado. Alguien lo va a ver tarde o temprano. http://www.flickr.com/photos/andre5/4408196113/
  3. 3. ESCRIBE CÓDIGO LIMPIO Y LEGIBLE Un buen código Ruby no precisa de muchos comentarios http://www.flickr.com/photos/luisbg/2072134438/
  4. 4. CONVENCIONES “Sigue las convenciones” Están ahí por algo. No luches contra corriente. http://www.flickr.com/photos/talaakso/3741346743/
  5. 5. USA HERRAMIENTAS Hay herramientas, gemas y plugins para casi todo lo que puedas imaginar. Directorio: http://www.ruby-toolbox.com/ http://www.flickr.com/photos/usefulguy/226373498/
  6. 6. D on't R epeat Y ourself Introducing... Inherited Resources Imágen: http://www.fickr.com/photos/cowfsh/132547104/
  7. 7. DRY: REFACTORIZAR Primero repite, luego refactoriza http://www.flickr.com/photos/vinothchandar/4257167174/
  8. 8. Separation of concerns (SoC) → Modularidad → Encapsulamiento → Distribución de responsabilidades
  9. 9. THE Fat model & the skinny controller Imágen: http://www.fickr.com/photos/kylemay/553916826/
  10. 10. Ley de Demeter: “Habla sólo con tus amigos” Imágen: http://www.fickr.com/photos/desireedelgado/3423389473/
  11. 11. #1 NMO*: muy alto #2 NMO*: MEDIO alto NMO*: MEDIO #3 *NMO = NIVEL DE MAL OLOR Código: http://brian.maybeyoureinsane.net/blog/2006/12/15/law-of-demeter-or-how-to-avoid-coding-yourself-into-a-corner-in-rails/
  12. 12. DELEGATE, FTW!! AquI HUELE A ROSAS!!!! Código: http://brian.maybeyoureinsane.net/blog/2006/12/15/law-of-demeter-or-how-to-avoid-coding-yourself-into-a-corner-in-rails/
  13. 13. TAFT “Test All the F***ing Time” Bryan Liles Video Ruby HoeDown 2008
  14. 14. El Zen del Testing “Encuentra el equilibrio” Cada uno tiene su combo. Imágen: http://www.fickr.com/photos/digitalart/2912152377/
  15. 15. Sé disciplinado: Practica tu combo Haz TDD “Dar cera, pulir cera” http://www.flickr.com/photos/kevinpoh/3650866967/
  16. 16. CÓDIGO / TESTING Comportamiento → Piensa en comportamiento, no en implementación → El código expresa comportamiento → Tu código debe ser una “caja negra” Tests = ejemplos de comportamiento Haz que los tests dirijan tu código → RED → GREEN → REFACTOR
  17. 17. EVITA LOS TEST FRÁGILES → se rompen con facilidad → síntomas: cada vez que refactorizas tienes que actualizarlos → prueban detalles de implementación no comportamiento
  18. 18. HAZ TESTS CON LO QUE PREFIERAS, PERO HÁZLOS http://www.fickr.com/photos/sebastian_bergmann/2282734669/
  19. 19. HÁZLOS, EN SERIO http://www.fickr.com/photos/sebastian_bergmann/2291013416/
  20. 20. USA CONTROL DE VERSIONES Distribuídos → Git → el más popular (recomendado) → Darcs → Mercurial →… Centralizados → Subversion → bueno para empezar → CVS → bienvenidos a la prehistoria → Sourcesafe → “si lo usas no me lo digas” → ...
  21. 21. CONTROL DE VERSIONES “Piensa en los gatitos” http://www.fickr.com/photos/mathias-erhart/2562106102/
  22. 22. AUTOMATIZA Todo tiene que ser reproducible Hacer las cosas a mano no sirve Tu tiempo es oro http://www.fickr.com/photos/macinate/3454346075/
  23. 23. AUTOMATÍZAR LOS TEST Integración continua (ejecutar los test en el servidor) Integrity, CruiseControl.rb, Hudson Ejecutar los test en local AutoTest, ZenTest
  24. 24. AUTOMATIZAR: SERVIDORES Instalar y confgurar servidores Chef, Puppet, ...
  25. 25. AUTOMATIZAR: DESPLIEGUE Despliega la aplicación de forma automática a los server ¡Capistrano!
  26. 26. ¿PREGUNTAS?

×