Your SlideShare is downloading. ×
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Curso TDD Ruby on Rails #08: Buenas prácticas
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

1,577

Published on

Lección 08 del curso de TDD en Ruby on Rails: …

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
1,577
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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. 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. ESCRIBE CÓDIGO LIMPIO Y LEGIBLE Un buen código Ruby no precisa de muchos comentarios http://www.flickr.com/photos/luisbg/2072134438/
  • 4. CONVENCIONES “Sigue las convenciones” Están ahí por algo. No luches contra corriente. http://www.flickr.com/photos/talaakso/3741346743/
  • 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. D on't R epeat Y ourself Introducing... Inherited Resources Imágen: http://www.fickr.com/photos/cowfsh/132547104/
  • 7. DRY: REFACTORIZAR Primero repite, luego refactoriza http://www.flickr.com/photos/vinothchandar/4257167174/
  • 8. Separation of concerns (SoC) → Modularidad → Encapsulamiento → Distribución de responsabilidades
  • 9. THE Fat model & the skinny controller Imágen: http://www.fickr.com/photos/kylemay/553916826/
  • 10. Ley de Demeter: “Habla sólo con tus amigos” Imágen: http://www.fickr.com/photos/desireedelgado/3423389473/
  • 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. 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. TAFT “Test All the F***ing Time” Bryan Liles Video Ruby HoeDown 2008
  • 14. El Zen del Testing “Encuentra el equilibrio” Cada uno tiene su combo. Imágen: http://www.fickr.com/photos/digitalart/2912152377/
  • 15. Sé disciplinado: Practica tu combo Haz TDD “Dar cera, pulir cera” http://www.flickr.com/photos/kevinpoh/3650866967/
  • 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. 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. HAZ TESTS CON LO QUE PREFIERAS, PERO HÁZLOS http://www.fickr.com/photos/sebastian_bergmann/2282734669/
  • 19. HÁZLOS, EN SERIO http://www.fickr.com/photos/sebastian_bergmann/2291013416/
  • 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. CONTROL DE VERSIONES “Piensa en los gatitos” http://www.fickr.com/photos/mathias-erhart/2562106102/
  • 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. 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. AUTOMATIZAR: SERVIDORES Instalar y confgurar servidores Chef, Puppet, ...
  • 25. AUTOMATIZAR: DESPLIEGUE Despliega la aplicación de forma automática a los server ¡Capistrano!
  • 26. ¿PREGUNTAS?

×