VAN - Octubre 23 de 2010 - Principios de Diseño SOLID

 

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 

 

Video

     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.

 

Presentación

     http://carlospeix.com/wp-content/uploads/2010/10/SOLID.ppt

 

Código (antes de aplicar refactorings)

     http://github.com/cpeix/solid-examples