SlideShare une entreprise Scribd logo
1  sur  82
Télécharger pour lire hors ligne
Code Smells y SOLID
A qué huele tu código?




http://village.blogs.pressdemocrat.com/10315/recap-whos-ready-for-summer/?tc=ar
Comencemos!!




http://lifesabusiness.files.wordpress.com/2011/05/lets-start.jpg?w=600&h=400
Porqué es
necesario
escribir un
buen código?
Desarrollo de Software Tradicional
http://www.flickr.com/photos/futureshape/4000128011/
Mucho software
actual se
comporta como
un juego de Jenga
http://www.albertelli.com/photoarchive/Random_2003/lawn_jenga0002.jpeg
Unpequeño


                                                             cambio…


http://amistadcuauti.files.wordpress.com/2008/08/jenga.jpg
Provoca
efectos por
      todas
   partes...




http://design-crit.com/blog/images/jenga.jpg
Necesitamos un
  cambio en el
      sistema…




  http://raulpiriz.files.wordpress.com/2010/09/alg_jefe.jpg
Produce
  temor…




http://blog.rwbenwick.com/wp-content/uploads/2009/12/Reason-For-Leaving-iStock_000008369823Medium.jpg
http://www.albertelli.com/photoarchive/Random_2003/lawn_jenga0002.jpeg
Pasamos más
                                                                                     tiempo
                                                                            leyendo código
                                                                                        que
                                                                              escribiéndolo




http://photos.pcpro.co.uk/blogs/wp-content/uploads/2010/10/frustrated.jpg
Costo de poseer código “No Mantenible”
Ellos podrán ayudarnos?
Ustedes!!




http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/04/developers.jpg
Actitud                  http://www.flickr.com/photos/designd15/4220055968/in/photostream/




“Escribir código que entienda la computadora es una
técnica; escribir código que entienda un ser humano
           es un Arte” – Robert ‘Uncle Bob’ Martin
Entonces, ¿Por
                                                                              qué es
                                                                        importante
                                                                      escribir mejor
                                                                            código?

http://www.websoftwareqa.com/wp-content/uploads/2010/07/Computer-Code.jpg
Fácil de Entender



Fácil de Cambiar



      Barato de Mantener
Cómo detectar
Dónde puedo       si lo estoy
encontrar la      haciendo mal?
información que
necesito?
                  Qué puedo
                  aplicar y qué
Qué patrones      no?
resuelven este
problema?
y muchos más…
Code Smells




Cómo detectar un
código mal oliente?
Qué son los Code Smells?
     Son todos los síntomas que
podemos encontrar en el código
       fuente de un sistema que
indican que muy probablemente
         existan problemas más
 profundos de calidad de código,
          de diseño o de ambos.
Rigidez




          http://www.naturecabins.com/solar/images_600x400/20080525_steel_beam_closeup.JPG
Rigidez es la tendencia que
  posee el software a ser
 difícil de cambiar, incluso
    en formas sencillas o
     cambios mínimos.
Fragilidad




http://www.flickr.com/photos/tsvadivel/4780317627/
Fragilidad es la tendencia
 que posee un programa
para romperse en muchos
lugares cuando un simple
   cambio es realizado.
Inamovilidad




http://4.bp.blogspot.com/_b5RFglsqS4k/Rm2_uGVsxuI/AAAAAAAACfY/CkpR-E0HsV0/s400/sumo.jpg
Inamovilidad es la
 dificultad de separar el
sistema en componentes
      que pueden ser
   reutilizados en otros
         sistemas.
http://photos.runic.com/photos/syrup1.jpg




Viscosidad
Viscosidad se presenta
 cuando hacer las cosas
incorrectamente es más
  fácil que hacerlas del
     modo correcto.
Ambiente de desarrollo lento e
ineficiente

Tiempos muy largos de compilación

Subir el código toma horas

Hacer el deploy toma varios
minutos
Complejidad
                                                                      innecesaria




http://www.funglode.org/Portals/0/images/Sala_de_Prensa/2010/Marzo/Complejidad%20interior.jpg
Complejidad innecesaria
existe cuando hay muchos
      elementos que
actualmente no son útiles.
Repetición
                                                                          innecesaria




http://www.fondospantallagratis.com/wp-content/uploads/2009/03/fichas_de_domino.jpg
Repetición innecesaria es
 cuando el código posee
estructuras repetidas que
pueden ser unificadas bajo
  una sola abstracción.
Opacidad




http://img.fotocommunity.com/photos/11575434.jpg
Opacidad es la tendencia
que posee un módulo a ser
     difícil de leer y
      comprender.
http://fotos0.mundofotos.net/2008/19_11_2008/nostalgica1227105482/perrito-oliendo-flores.jpg




A qué huele tu código?
Un buen
                                                                             desarrollador
                                                                                  tiene un
                                                                                olfato fino




http://vinos.viaresto.com.ar/sites/default/files/Foto-aroma.jpg?1308074199
http://www.shrink4men.com/wp-content/uploads/2010/12/pointing-finger.jpg




Si Usted posee…
Código ilegible




http://3.bp.blogspot.com/_-XV87BeCV9Y/SwLqj5UzO8I/AAAAAAAAA4g/hzaxblNx1jw/s1600/IMG_2385.JPG
Código duplicado




http://www.matrix-explained.com/photopost/data/512/39100hugo3.jpg
Métodos muy Laaaargos!!




http://1.bp.blogspot.com/-
VqyZkA5M2eU/T35ixp0dD_I/AAAAAAAAAN4/pppIVZSeHbQ/s1600/548383_393176807378912_329870347042892_1399267_792609564_n.jpg
Clases muy                       grandes




http://cache2.allpostersimages.com/p/LRG/21/2163/18ACD00Z/posters/miller-john-huge-tyres-big-foot-customised-car-usa.jpg
http://www.zonelibere.net/images/stories/zenstones.jpg




                                                         Refactorizar
http://4.bp.blogspot.com/-RhAnCDMlvts/Tptjf9pQcZI/AAAAAAAAAUU/lJSYMataDOM/s1600/mecanismo-reloj.jpg




Cambiar la estructura interna del
código…
http://4.bp.blogspot.com/-RhAnCDMlvts/Tptjf9pQcZI/AAAAAAAAAUU/lJSYMataDOM/s1600/mecanismo-reloj.jpg


Sin alterar su comportamiento visible…




 Cambiar la estructura interna…
http://img.alibaba.com/wsphoto/v0/390462787/6pcs-lot-free-
shipping-2011-new-arrival-vintage-pocket-watch-necklaces.jpg
Obtener un código más
          simple.

  La refactorización enseña
técnicas para descubrir código
  de mala calidad y técnicas
       para cambiarlo.
http://theicebergfestival.ca/wp-content/gallery/iceberg-photos-2009/iceberg2.jpg




S.O.L.I.D
Single Responsibility Principle
Open / Close Principle
Liskov Substitution Principle
Interface Segregation Principle
Dependency Inversion Principle
Bueno, manos a la obra!!
Single Responsibility Principle
                      “Cada objeto debe tener
                        una responsabilidad
                            única, y esta
                        responsabilidad debe
                        estar completamente
                       encapsulada dentro de
                               la clase”
      “Las clases deben tener una única
     responsabilidad, una única razón de
                   cambio”
Open / Close Principle
               “Una clase debe
              estar abierta para
                extensión pero
                 cerrada para
                modificación”
Liskov Substitution Principle




  “Las clases derivadas deben ser
  sustituidas por sus clases base”
Interface Segregation Principle
                  “Mantenga interfaces
                    finas a un nivel de
                granularidad que el cliente
                         necesita.

                 Los clientes no deben ser
                  forzados a depender de
                interfaces que no utilizan.”
Dependency Inversion Principle
                     “Clases de alto nivel
                     no deben depender
                      de clases de bajo
                     nivel. Ambas deben
                       depender de sus
                        abstracciones”

     “Dependa de abstracciones, no de
           objetos concretos”
SOLID hace
que tu código
   huela bien
Gracias!

           @JohnnyOrdonez
Referencias

 • Clean Code: A Handbook of Agile Software Craftsmanship,
   Robert C. Martin (Aug 11, 2008) http://www.amazon.com/Clean-Code-
   Handbook-Software-Craftsmanship/dp/0132350882


 • Agile Software Development, Principles, Patterns, and
   Practices, Robert C. Martin (Oct 25, 2002) http://www.amazon.com/Software-
   Development-Principles-Patterns-Practices/dp/0135974445

 • Code Smells, Louhekon (2010) http://www.louhekon.fi/2010/02/code-
   smells/

 • A Taxonomy for "Bad Code Smells ", Mika Mäntylä (2010)
   http://www.soberit.hut.fi/mmantyla/BadCodeSmellsTaxonomy.htm
Referencias

 • A Taxonomy for "Bad Code Smells ", Mika Mäntylä (2010)
   http://www.soberit.hut.fi/mmantyla/BadCodeSmellsTaxonomy.htm


 • SOLID Software Design, AbbasRaza (2012)
   http://www.slideshare.net/theceo/solid-software-design


 • SOLID OO Principles, Andreas Enbohm (2011)
   http://www.slideshare.net/enbohm/solid-design-principles-9016117


 • The SOLID Principles in C#, Leon van Bokhorst (2012)
   http://www.remondo.net/solid-principles-csharp-single-responsibility/


 • A qué huele tu código?, Rubén Bernárdez (2011)
   http://www.slideshare.net/rubenbp/a-qu-huele-tu-cdigo-afinando-nuestro-
   olfato-7400175
Más Code
       Smells y Tips
     para corregirlos


                                                                         Tomado de:

http://www.slideshare.net/rubenbp/a-qu-huele-tu-cdigo-afinando-nuestro-olfato-7400175
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?

Contenu connexe

Tendances

EstáNdares De Calidad Aplicadas Al Software
EstáNdares De Calidad Aplicadas Al SoftwareEstáNdares De Calidad Aplicadas Al Software
EstáNdares De Calidad Aplicadas Al Softwareeduardo89
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooJosé Antonio Sandoval Acosta
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)Yadith Miranda Silva
 
Requerimientos funcionales y no funcionales
Requerimientos funcionales y no funcionalesRequerimientos funcionales y no funcionales
Requerimientos funcionales y no funcionalesLismirabal
 
GRID COMPUTING
GRID COMPUTING  GRID COMPUTING
GRID COMPUTING poool666
 
Programación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UMLProgramación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UMLGabriel Cortez
 
Proceso unificado de desarrollo de software
Proceso unificado de desarrollo de softwareProceso unificado de desarrollo de software
Proceso unificado de desarrollo de softwareturlahackers
 
Análisis y desarrollo de sistemas de información
Análisis y desarrollo de sistemas de informaciónAnálisis y desarrollo de sistemas de información
Análisis y desarrollo de sistemas de informaciónCaterine Ramírez Aldana
 
Linea de productos de software y Metodo Watch
Linea de productos de software y Metodo WatchLinea de productos de software y Metodo Watch
Linea de productos de software y Metodo WatchGrabielleBarreto
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
Metodologias Para El Analisis Y Diseño De Sistemas.
Metodologias Para El Analisis Y Diseño De Sistemas.Metodologias Para El Analisis Y Diseño De Sistemas.
Metodologias Para El Analisis Y Diseño De Sistemas.German Rodriguez
 
Las 4 P en el desarrollo de software
Las 4 P en el desarrollo de softwareLas 4 P en el desarrollo de software
Las 4 P en el desarrollo de softwareSofylutqm
 
presupuesto de red lan
presupuesto de red lanpresupuesto de red lan
presupuesto de red lanDyfre Memenay
 
Practicas Packet Tracer
Practicas Packet TracerPracticas Packet Tracer
Practicas Packet Tracermmgl1974
 
linea del tiempo software
linea del tiempo softwarelinea del tiempo software
linea del tiempo softwareRobal96
 
Elementos básicos para instalación de una red wan
Elementos básicos para instalación de una red wanElementos básicos para instalación de una red wan
Elementos básicos para instalación de una red wanDommenykc Domm
 

Tendances (20)

EstáNdares De Calidad Aplicadas Al Software
EstáNdares De Calidad Aplicadas Al SoftwareEstáNdares De Calidad Aplicadas Al Software
EstáNdares De Calidad Aplicadas Al Software
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma poo
 
Iso 12207
Iso 12207Iso 12207
Iso 12207
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)
 
Introducción a SOA
Introducción a SOAIntroducción a SOA
Introducción a SOA
 
Requerimientos funcionales y no funcionales
Requerimientos funcionales y no funcionalesRequerimientos funcionales y no funcionales
Requerimientos funcionales y no funcionales
 
GRID COMPUTING
GRID COMPUTING  GRID COMPUTING
GRID COMPUTING
 
Programación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UMLProgramación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UML
 
Proceso unificado de desarrollo de software
Proceso unificado de desarrollo de softwareProceso unificado de desarrollo de software
Proceso unificado de desarrollo de software
 
Análisis y desarrollo de sistemas de información
Análisis y desarrollo de sistemas de informaciónAnálisis y desarrollo de sistemas de información
Análisis y desarrollo de sistemas de información
 
Linea de productos de software y Metodo Watch
Linea de productos de software y Metodo WatchLinea de productos de software y Metodo Watch
Linea de productos de software y Metodo Watch
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
Metodologias Para El Analisis Y Diseño De Sistemas.
Metodologias Para El Analisis Y Diseño De Sistemas.Metodologias Para El Analisis Y Diseño De Sistemas.
Metodologias Para El Analisis Y Diseño De Sistemas.
 
Metodologia Incremental
Metodologia IncrementalMetodologia Incremental
Metodologia Incremental
 
PLANOS CABLEADO ESTRUCTURADO
PLANOS CABLEADO ESTRUCTURADOPLANOS CABLEADO ESTRUCTURADO
PLANOS CABLEADO ESTRUCTURADO
 
Las 4 P en el desarrollo de software
Las 4 P en el desarrollo de softwareLas 4 P en el desarrollo de software
Las 4 P en el desarrollo de software
 
presupuesto de red lan
presupuesto de red lanpresupuesto de red lan
presupuesto de red lan
 
Practicas Packet Tracer
Practicas Packet TracerPracticas Packet Tracer
Practicas Packet Tracer
 
linea del tiempo software
linea del tiempo softwarelinea del tiempo software
linea del tiempo software
 
Elementos básicos para instalación de una red wan
Elementos básicos para instalación de una red wanElementos básicos para instalación de una red wan
Elementos básicos para instalación de una red wan
 

En vedette

¿A qué huele tu código? Afinando nuestro olfato
¿A qué huele tu código? Afinando nuestro olfato¿A qué huele tu código? Afinando nuestro olfato
¿A qué huele tu código? Afinando nuestro olfatoRubén Bernárdez
 
Desarrollo de-software-basado-en-reutilizacion
Desarrollo de-software-basado-en-reutilizacionDesarrollo de-software-basado-en-reutilizacion
Desarrollo de-software-basado-en-reutilizacionMarvin Arteaga
 
Refactoring - Mejorando el diseño del código existente
Refactoring - Mejorando el diseño del código existenteRefactoring - Mejorando el diseño del código existente
Refactoring - Mejorando el diseño del código existenteMariano Sánchez
 
Refactoring e Code Smells: Seu código está apodrecendo!
Refactoring e Code Smells:  Seu código está apodrecendo!Refactoring e Code Smells:  Seu código está apodrecendo!
Refactoring e Code Smells: Seu código está apodrecendo!Emanuel Canuto
 
Refactoring for design smells
Refactoring for design smellsRefactoring for design smells
Refactoring for design smellsGanesh Samarthyam
 
Cylon.js - Javascript for Robotics Projects
Cylon.js - Javascript for Robotics ProjectsCylon.js - Javascript for Robotics Projects
Cylon.js - Javascript for Robotics ProjectsLuis Toscano
 
Principios SOLID de Diseño Orientado a Objetos
Principios SOLID de Diseño Orientado a ObjetosPrincipios SOLID de Diseño Orientado a Objetos
Principios SOLID de Diseño Orientado a ObjetosJose E. Rodriguez Huerta
 
Estimación Ágil, Story Points y Planning Poker
Estimación Ágil, Story Points y Planning PokerEstimación Ágil, Story Points y Planning Poker
Estimación Ágil, Story Points y Planning PokerJohnny Ordóñez
 
NetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvilNetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvilSorey García
 
SOLID - Teoria e Prática
SOLID - Teoria e PráticaSOLID - Teoria e Prática
SOLID - Teoria e PráticaEduardo Pires
 
Clean Code (EN ESPANOL)
Clean Code (EN ESPANOL)Clean Code (EN ESPANOL)
Clean Code (EN ESPANOL)Rodrigo Branas
 

En vedette (20)

Los olores del código
Los olores del códigoLos olores del código
Los olores del código
 
SOLID - ¿Cómo lo aplico a mi código?
SOLID - ¿Cómo lo aplico a mi código?SOLID - ¿Cómo lo aplico a mi código?
SOLID - ¿Cómo lo aplico a mi código?
 
¿A qué huele tu código? Afinando nuestro olfato
¿A qué huele tu código? Afinando nuestro olfato¿A qué huele tu código? Afinando nuestro olfato
¿A qué huele tu código? Afinando nuestro olfato
 
Code Smells
Code SmellsCode Smells
Code Smells
 
Services factory
Services factoryServices factory
Services factory
 
Desarrollo de-software-basado-en-reutilizacion
Desarrollo de-software-basado-en-reutilizacionDesarrollo de-software-basado-en-reutilizacion
Desarrollo de-software-basado-en-reutilizacion
 
Refactoring - Mejorando el diseño del código existente
Refactoring - Mejorando el diseño del código existenteRefactoring - Mejorando el diseño del código existente
Refactoring - Mejorando el diseño del código existente
 
Automatic API REST Droidcon
Automatic API REST DroidconAutomatic API REST Droidcon
Automatic API REST Droidcon
 
Refactoring e Code Smells: Seu código está apodrecendo!
Refactoring e Code Smells:  Seu código está apodrecendo!Refactoring e Code Smells:  Seu código está apodrecendo!
Refactoring e Code Smells: Seu código está apodrecendo!
 
Bad smells no código
Bad smells no códigoBad smells no código
Bad smells no código
 
Refactoring for design smells
Refactoring for design smellsRefactoring for design smells
Refactoring for design smells
 
Cylon.js - Javascript for Robotics Projects
Cylon.js - Javascript for Robotics ProjectsCylon.js - Javascript for Robotics Projects
Cylon.js - Javascript for Robotics Projects
 
Principios SOLID de Diseño Orientado a Objetos
Principios SOLID de Diseño Orientado a ObjetosPrincipios SOLID de Diseño Orientado a Objetos
Principios SOLID de Diseño Orientado a Objetos
 
Proyecto morse
Proyecto morseProyecto morse
Proyecto morse
 
Estimación Ágil, Story Points y Planning Poker
Estimación Ágil, Story Points y Planning PokerEstimación Ágil, Story Points y Planning Poker
Estimación Ágil, Story Points y Planning Poker
 
NetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvilNetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvil
 
ejemplos de pruebas unitarias y de integracion
ejemplos de pruebas unitarias y de integracion ejemplos de pruebas unitarias y de integracion
ejemplos de pruebas unitarias y de integracion
 
SOLID - Teoria e Prática
SOLID - Teoria e PráticaSOLID - Teoria e Prática
SOLID - Teoria e Prática
 
Deconstrucción de SOLID
Deconstrucción de SOLIDDeconstrucción de SOLID
Deconstrucción de SOLID
 
Clean Code (EN ESPANOL)
Clean Code (EN ESPANOL)Clean Code (EN ESPANOL)
Clean Code (EN ESPANOL)
 

Similaire à Code Smells y SOLID: A qué huele tu código?

Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Alfredo Chavez
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Alfredo Chavez
 
Ensayo aprendido en el semestre
Ensayo aprendido en el semestreEnsayo aprendido en el semestre
Ensayo aprendido en el semestreza_bluee
 
Ensayo de redes
Ensayo de redesEnsayo de redes
Ensayo de redesza_bluee
 
Herramientas Educativas
Herramientas EducativasHerramientas Educativas
Herramientas EducativasMiguel Angel
 
Web quest netiqueta
Web quest netiquetaWeb quest netiqueta
Web quest netiquetapamira
 
Objetos virtuales de aprendizaje en e-learning 2.0
Objetos virtuales de aprendizaje en e-learning 2.0Objetos virtuales de aprendizaje en e-learning 2.0
Objetos virtuales de aprendizaje en e-learning 2.0David Ramírez
 
Stc tecnologia junio 0214
Stc tecnologia junio 0214Stc tecnologia junio 0214
Stc tecnologia junio 0214Fausto Perez
 
Herramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteHerramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteCarlos Toxtli
 
Device Days 2012 - HTML5 y CSS3 para móvil
Device Days 2012 - HTML5 y CSS3 para móvilDevice Days 2012 - HTML5 y CSS3 para móvil
Device Days 2012 - HTML5 y CSS3 para móvilJavier Usobiaga
 
Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012
Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012
Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012Pilmee Gates
 
Me encanta que los estándares salgan bien
Me encanta que los estándares salgan bien Me encanta que los estándares salgan bien
Me encanta que los estándares salgan bien Isabel Cabezas Martín
 
Diseñando la web móvil con HTML5 y CSS3
Diseñando la web móvil con HTML5 y CSS3Diseñando la web móvil con HTML5 y CSS3
Diseñando la web móvil con HTML5 y CSS3Marta Armada
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.jsINSIGNIA4U
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plonementtes
 

Similaire à Code Smells y SOLID: A qué huele tu código? (20)

Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
 
Developing for Android (The movie)
Developing for Android (The movie)Developing for Android (The movie)
Developing for Android (The movie)
 
Ensayo aprendido en el semestre
Ensayo aprendido en el semestreEnsayo aprendido en el semestre
Ensayo aprendido en el semestre
 
Ensayo de redes
Ensayo de redesEnsayo de redes
Ensayo de redes
 
Herramientas Educativas
Herramientas EducativasHerramientas Educativas
Herramientas Educativas
 
Web quest netiqueta
Web quest netiquetaWeb quest netiqueta
Web quest netiqueta
 
Objetos virtuales de aprendizaje en e-learning 2.0
Objetos virtuales de aprendizaje en e-learning 2.0Objetos virtuales de aprendizaje en e-learning 2.0
Objetos virtuales de aprendizaje en e-learning 2.0
 
Stc tecnologia junio 0214
Stc tecnologia junio 0214Stc tecnologia junio 0214
Stc tecnologia junio 0214
 
Herramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteHerramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamente
 
Device Days 2012 - HTML5 y CSS3 para móvil
Device Days 2012 - HTML5 y CSS3 para móvilDevice Days 2012 - HTML5 y CSS3 para móvil
Device Days 2012 - HTML5 y CSS3 para móvil
 
Aplicaciones o herramientas para integrar a Moodle
Aplicaciones o herramientas para integrar a Moodle Aplicaciones o herramientas para integrar a Moodle
Aplicaciones o herramientas para integrar a Moodle
 
Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012
Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012
Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012
 
Nube (1)
Nube (1)Nube (1)
Nube (1)
 
Me encanta que los estándares salgan bien
Me encanta que los estándares salgan bien Me encanta que los estándares salgan bien
Me encanta que los estándares salgan bien
 
Diseñando la web móvil con HTML5 y CSS3
Diseñando la web móvil con HTML5 y CSS3Diseñando la web móvil con HTML5 y CSS3
Diseñando la web móvil con HTML5 y CSS3
 
Introducción a la web móvil
Introducción a la web móvilIntroducción a la web móvil
Introducción a la web móvil
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.js
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plone
 
Pres3
Pres3Pres3
Pres3
 

Plus de Johnny Ordóñez

Gestión Lean de Portafolios de Empresariales - Guía de Implementación
Gestión Lean de Portafolios de Empresariales - Guía de ImplementaciónGestión Lean de Portafolios de Empresariales - Guía de Implementación
Gestión Lean de Portafolios de Empresariales - Guía de ImplementaciónJohnny Ordóñez
 
Alineamiento Estratégico con OKRs - OKR Summit (Chile 2020)
Alineamiento Estratégico con OKRs - OKR Summit (Chile 2020)Alineamiento Estratégico con OKRs - OKR Summit (Chile 2020)
Alineamiento Estratégico con OKRs - OKR Summit (Chile 2020)Johnny Ordóñez
 
Diseño de Centro de Excelencia en Ágil (CoEs)
Diseño de Centro de Excelencia en Ágil (CoEs)Diseño de Centro de Excelencia en Ágil (CoEs)
Diseño de Centro de Excelencia en Ágil (CoEs)Johnny Ordóñez
 
Principios operativos ágiles - Modelo Operativo Ágil
Principios operativos ágiles - Modelo Operativo ÁgilPrincipios operativos ágiles - Modelo Operativo Ágil
Principios operativos ágiles - Modelo Operativo ÁgilJohnny Ordóñez
 
CoE Value Proposition Canvas
CoE Value Proposition CanvasCoE Value Proposition Canvas
CoE Value Proposition CanvasJohnny Ordóñez
 
Agilidad como cualidad de un sistema vivo - agility enablement (CAS 2019)
Agilidad como cualidad de un sistema vivo - agility enablement (CAS 2019) Agilidad como cualidad de un sistema vivo - agility enablement (CAS 2019)
Agilidad como cualidad de un sistema vivo - agility enablement (CAS 2019) Johnny Ordóñez
 
Agile People - Habilitando la agilidad desde Gestión de talento
Agile People - Habilitando la agilidad desde Gestión de talentoAgile People - Habilitando la agilidad desde Gestión de talento
Agile People - Habilitando la agilidad desde Gestión de talentoJohnny Ordóñez
 
Gestión Lean de Portafolios de Innovación - Foro Líderes de Transformación (L...
Gestión Lean de Portafolios de Innovación - Foro Líderes de Transformación (L...Gestión Lean de Portafolios de Innovación - Foro Líderes de Transformación (L...
Gestión Lean de Portafolios de Innovación - Foro Líderes de Transformación (L...Johnny Ordóñez
 
Agilidad en tiempos de VUCA - Keynote Telefónica Colombia
Agilidad en tiempos de VUCA - Keynote Telefónica ColombiaAgilidad en tiempos de VUCA - Keynote Telefónica Colombia
Agilidad en tiempos de VUCA - Keynote Telefónica ColombiaJohnny Ordóñez
 
La ilusión de Agilidad - Scrum Day Colombia 2019
La ilusión de Agilidad - Scrum Day Colombia 2019La ilusión de Agilidad - Scrum Day Colombia 2019
La ilusión de Agilidad - Scrum Day Colombia 2019Johnny Ordóñez
 
Corporate Innovation Portfolio Management (Excerpt)
Corporate Innovation Portfolio Management (Excerpt)Corporate Innovation Portfolio Management (Excerpt)
Corporate Innovation Portfolio Management (Excerpt)Johnny Ordóñez
 
agility enablement Library - (English version)
agility enablement Library - (English version)agility enablement Library - (English version)
agility enablement Library - (English version)Johnny Ordóñez
 
'agility enablement' - Biblioteca
'agility enablement' - Biblioteca'agility enablement' - Biblioteca
'agility enablement' - BibliotecaJohnny Ordóñez
 
'agility enablement' - Habilitando la agilidad empresarial (Lima 2018)
'agility enablement' - Habilitando la agilidad empresarial (Lima 2018)'agility enablement' - Habilitando la agilidad empresarial (Lima 2018)
'agility enablement' - Habilitando la agilidad empresarial (Lima 2018)Johnny Ordóñez
 
Enterprise agility - A Johnny Ordonez Compilation about EA
Enterprise agility - A Johnny Ordonez Compilation about EAEnterprise agility - A Johnny Ordonez Compilation about EA
Enterprise agility - A Johnny Ordonez Compilation about EAJohnny Ordóñez
 
'agility enablement' - desbloqueando la agilidad empresarial
'agility enablement' - desbloqueando la agilidad empresarial'agility enablement' - desbloqueando la agilidad empresarial
'agility enablement' - desbloqueando la agilidad empresarialJohnny Ordóñez
 
'agility enablement'- unlocking enterprise agility
'agility enablement'- unlocking enterprise agility'agility enablement'- unlocking enterprise agility
'agility enablement'- unlocking enterprise agilityJohnny Ordóñez
 
De Agile Coach a 'agility enabler': Habilitando la agilidad empresarial
De Agile Coach a 'agility enabler': Habilitando la agilidad empresarialDe Agile Coach a 'agility enabler': Habilitando la agilidad empresarial
De Agile Coach a 'agility enabler': Habilitando la agilidad empresarialJohnny Ordóñez
 
OKR Canvas - Métricas, KPIs y OKRs
OKR Canvas - Métricas, KPIs y OKRsOKR Canvas - Métricas, KPIs y OKRs
OKR Canvas - Métricas, KPIs y OKRsJohnny Ordóñez
 

Plus de Johnny Ordóñez (20)

Gestión Lean de Portafolios de Empresariales - Guía de Implementación
Gestión Lean de Portafolios de Empresariales - Guía de ImplementaciónGestión Lean de Portafolios de Empresariales - Guía de Implementación
Gestión Lean de Portafolios de Empresariales - Guía de Implementación
 
Alineamiento Estratégico con OKRs - OKR Summit (Chile 2020)
Alineamiento Estratégico con OKRs - OKR Summit (Chile 2020)Alineamiento Estratégico con OKRs - OKR Summit (Chile 2020)
Alineamiento Estratégico con OKRs - OKR Summit (Chile 2020)
 
Diseño de Centro de Excelencia en Ágil (CoEs)
Diseño de Centro de Excelencia en Ágil (CoEs)Diseño de Centro de Excelencia en Ágil (CoEs)
Diseño de Centro de Excelencia en Ágil (CoEs)
 
Principios operativos ágiles - Modelo Operativo Ágil
Principios operativos ágiles - Modelo Operativo ÁgilPrincipios operativos ágiles - Modelo Operativo Ágil
Principios operativos ágiles - Modelo Operativo Ágil
 
CoE Value Proposition Canvas
CoE Value Proposition CanvasCoE Value Proposition Canvas
CoE Value Proposition Canvas
 
Agilidad como cualidad de un sistema vivo - agility enablement (CAS 2019)
Agilidad como cualidad de un sistema vivo - agility enablement (CAS 2019) Agilidad como cualidad de un sistema vivo - agility enablement (CAS 2019)
Agilidad como cualidad de un sistema vivo - agility enablement (CAS 2019)
 
Agile People - Habilitando la agilidad desde Gestión de talento
Agile People - Habilitando la agilidad desde Gestión de talentoAgile People - Habilitando la agilidad desde Gestión de talento
Agile People - Habilitando la agilidad desde Gestión de talento
 
Gestión Lean de Portafolios de Innovación - Foro Líderes de Transformación (L...
Gestión Lean de Portafolios de Innovación - Foro Líderes de Transformación (L...Gestión Lean de Portafolios de Innovación - Foro Líderes de Transformación (L...
Gestión Lean de Portafolios de Innovación - Foro Líderes de Transformación (L...
 
Agilidad en tiempos de VUCA - Keynote Telefónica Colombia
Agilidad en tiempos de VUCA - Keynote Telefónica ColombiaAgilidad en tiempos de VUCA - Keynote Telefónica Colombia
Agilidad en tiempos de VUCA - Keynote Telefónica Colombia
 
La ilusión de Agilidad - Scrum Day Colombia 2019
La ilusión de Agilidad - Scrum Day Colombia 2019La ilusión de Agilidad - Scrum Day Colombia 2019
La ilusión de Agilidad - Scrum Day Colombia 2019
 
Corporate Innovation Portfolio Management (Excerpt)
Corporate Innovation Portfolio Management (Excerpt)Corporate Innovation Portfolio Management (Excerpt)
Corporate Innovation Portfolio Management (Excerpt)
 
agility enablement Library - (English version)
agility enablement Library - (English version)agility enablement Library - (English version)
agility enablement Library - (English version)
 
'agility enablement' - Biblioteca
'agility enablement' - Biblioteca'agility enablement' - Biblioteca
'agility enablement' - Biblioteca
 
'agility enablement' - Habilitando la agilidad empresarial (Lima 2018)
'agility enablement' - Habilitando la agilidad empresarial (Lima 2018)'agility enablement' - Habilitando la agilidad empresarial (Lima 2018)
'agility enablement' - Habilitando la agilidad empresarial (Lima 2018)
 
Enterprise agility - A Johnny Ordonez Compilation about EA
Enterprise agility - A Johnny Ordonez Compilation about EAEnterprise agility - A Johnny Ordonez Compilation about EA
Enterprise agility - A Johnny Ordonez Compilation about EA
 
'agility enablement' - desbloqueando la agilidad empresarial
'agility enablement' - desbloqueando la agilidad empresarial'agility enablement' - desbloqueando la agilidad empresarial
'agility enablement' - desbloqueando la agilidad empresarial
 
'agility enablement'- unlocking enterprise agility
'agility enablement'- unlocking enterprise agility'agility enablement'- unlocking enterprise agility
'agility enablement'- unlocking enterprise agility
 
De Agile Coach a 'agility enabler': Habilitando la agilidad empresarial
De Agile Coach a 'agility enabler': Habilitando la agilidad empresarialDe Agile Coach a 'agility enabler': Habilitando la agilidad empresarial
De Agile Coach a 'agility enabler': Habilitando la agilidad empresarial
 
OKR Canvas - Ágiles 2018
OKR Canvas - Ágiles 2018OKR Canvas - Ágiles 2018
OKR Canvas - Ágiles 2018
 
OKR Canvas - Métricas, KPIs y OKRs
OKR Canvas - Métricas, KPIs y OKRsOKR Canvas - Métricas, KPIs y OKRs
OKR Canvas - Métricas, KPIs y OKRs
 

Dernier

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 

Dernier (11)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 

Code Smells y SOLID: A qué huele tu código?