Formato
Reunión virtual
Duración:
Vídeo: 2:31 horas
Ponente:
Carlos Peix (@carlospeix)
Síntesis:
En el primer ejemplo transformamos una clase que violaba claramente el principio de responsabilidad única. Separamos el código en dos clases. Luego avanzamos un poco más sobre el caso analizando una violación al principio de inversión de la dependencia y también codificamos una solución.
En el segundo ejemplo tomamos como base una consulta hecha por Edgar Ramos la lista de AltNetHispano, en el que planteaba un problema que me pareció muy útil para demostrar el principio abierto-cerrado.
El tercer ejemplo vimos el principio de segregación de interfaces. Presenté una refactorización del patrón repositorio separándolo en un repositorio básico basado en generics y uno o más Enhanced Query Objects del gran @fabiomaulo (el gran ausente de la VAN, el pobre estaba sin PC, parece).
Hablando sobre el ejemplo anterior conté una anécdota sobre un reemplazo de repositorios que tuvimos que encarar (desde IBatis.NET a NHibernate) y nos costó bastante por estar en clara violación del principio de sustitucion de Liskov.
El cuarto ejemplo fue una respuesta a la consulta de un colega sobre un procesador de archivos basado en reglas que fuera configurable. Propuse una solución basada en interfaces y Windsor como container de inyección de dependencias.
Mas información: VAN sobre principios SOLID en AltNetHispano
Enlaces:
1 http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod 2 http://en.wikipedia.org/wiki/Solid_(object-oriented_design) 3 http://www.lostechies.com/blogs/chad_myers/archive/2008/03/07/pablo-s-topic-of-the-month-march-solid-principles.aspx 4 http://blogs.msdn.com/b/cdndevs/archive/2009/07/15/the-solid-principles-explained-with-motivational-posters.aspx 5 http://cdn.cloudfiles.mosso.com/c82752/pablos_solid_ebook.pdf 6 http://www.hanselminutes.com/default.aspx?showID=163
Si lo prefieren, pueden observar el vídeo en http://www.screencast.com/t/3gfcK5s3Wx44 o descargar el archivo desde este enlace, el cual tiene un tamaño de 492.94MB.
Unable to display content. Adobe Flash is required.
http://carlospeix.com/wp-content/uploads/2010/10/SOLID.ppt
http://github.com/cpeix/solid-examples