Este documento presenta un resumen de las buenas prácticas en el desarrollo de aplicaciones web. Enfatiza la importancia de escribir código limpio y legible siguiendo convenciones, usar herramientas para evitar repeticiones, separar preocupaciones, y realizar pruebas automáticas frecuentemente. También recomienda prácticas como desarrollo guiado por pruebas, uso de control de versiones, e implementación automática para mejorar la calidad y mantenibilidad del código.
Buenas prácticas en desarrollo de aplicaciones web
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/
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/
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”
→ ...
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