SlideShare a Scribd company logo
1 of 9
Antipatrones de
desarrollo de software
                @pbousan
Pablo Bouzada
                pbouzada@renacimiento.com
                http://www.programandonet.com/
¿Qué es un antipatrón?
 Un antipatrón es un patrón que te dice cómo ir de un
 problema a una mala solución.

 Identificar malas prácticas puede ser tan valioso como
 conocer buenas prácticas.


¿Cuáles son sus causas?
     Prisa                      Codicia
     Falta de interés           Ignorancia
     Estrechez de miras         Soberbia
     Pereza




                                     Antipatrones de desarrollo de software
Demo         (mini)
 •   Spagheti Code
 •   Copy-Paste Programming
 •   Big Ball of Mud
 •   Magic Numbers
 •   Magic Strings
 •   Sequential Coupling
 •   Lava Flow
 •   Programming by Permutation
 •   God Object
 •   Magic PushButton
 •   Sweep It Under the Rug



     http://c2.com/cgi/wiki?DevelopmentAntiPatternRoadMap
     http://en.wikipedia.org/wiki/Anti-pattern


                                    Antipatrones de desarrollo de software
Conclusiones: ¿Cómo evitar los
antipatrones?
 •   Principios SOLID
 •   KISS (Keep It Simple, Stupid)
 •   DRY (Don’t Repeat Yourselft)
 •   YAGNI (You Ain’t Gone Need It)
 •   Patrones




                          Antipatrones de desarrollo de software
Consejo 1
 El código es algo vivo, que evoluciona contigo. Aplica todo
 lo que aprendes.




                                      Antipatrones de desarrollo de software
Consejo 2
 AHORA es el único buen momento para refactorizar.




                               Antipatrones de desarrollo de software
Consejo 3 … el más importante
 Programa siempre como si el tipo que va a mantener tu
 código fuese un asesino psicópata que sabe donde vives.




                                    Antipatrones de desarrollo de software
¿Preguntas?




              Antipatrones de desarrollo de software
MUCHAS GRACIAS!!


Pablo Bouzada   @pbousan
                pbouzada@renacimiento.com
                 http://www.programandonet.com/




                Antipatrones de desarrollo de software

More Related Content

What's hot

How Can We Better Sell DevOps?
How Can We Better Sell DevOps?How Can We Better Sell DevOps?
How Can We Better Sell DevOps?
Gene Kim
 
Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)
Andrew Avdeev
 
Agile presentation
Agile presentationAgile presentation
Agile presentation
infolock
 
Api gateway in microservices
Api gateway in microservicesApi gateway in microservices
Api gateway in microservices
Kunal Hire
 
Proceso Unificado De Rational
Proceso Unificado De RationalProceso Unificado De Rational
Proceso Unificado De Rational
Julio Pari
 

What's hot (20)

Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Docker: From Zero to Hero
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Hero
 
Modelos basados en prototipos
Modelos basados en prototiposModelos basados en prototipos
Modelos basados en prototipos
 
How Can We Better Sell DevOps?
How Can We Better Sell DevOps?How Can We Better Sell DevOps?
How Can We Better Sell DevOps?
 
SonarQube
SonarQubeSonarQube
SonarQube
 
IIS Unidad 4 Proyecto de software
IIS Unidad 4 Proyecto de softwareIIS Unidad 4 Proyecto de software
IIS Unidad 4 Proyecto de software
 
Demystifying DevOps
Demystifying DevOpsDemystifying DevOps
Demystifying DevOps
 
Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)
 
DevOps without DevOps Tools
DevOps without DevOps ToolsDevOps without DevOps Tools
DevOps without DevOps Tools
 
Introduction to Team Foundation Server (TFS) Online
Introduction to Team Foundation Server (TFS) OnlineIntroduction to Team Foundation Server (TFS) Online
Introduction to Team Foundation Server (TFS) Online
 
The Architecture of an API Platform
The Architecture of an API PlatformThe Architecture of an API Platform
The Architecture of an API Platform
 
Agile presentation
Agile presentationAgile presentation
Agile presentation
 
Api gateway in microservices
Api gateway in microservicesApi gateway in microservices
Api gateway in microservices
 
Proceso Unificado De Rational
Proceso Unificado De RationalProceso Unificado De Rational
Proceso Unificado De Rational
 
Product discovery con frameworks de ux y agile inception
 Product discovery con frameworks de ux y agile inception Product discovery con frameworks de ux y agile inception
Product discovery con frameworks de ux y agile inception
 
Prototipado
PrototipadoPrototipado
Prototipado
 
"Platform Engineering in practice — Why and How to start", Serg Hospodarets
"Platform Engineering in practice — Why and How to start", Serg Hospodarets "Platform Engineering in practice — Why and How to start", Serg Hospodarets
"Platform Engineering in practice — Why and How to start", Serg Hospodarets
 
Contract Testing of WebSockets: Functional Programming Is Taking the Stage
Contract Testing of WebSockets: Functional Programming Is Taking the StageContract Testing of WebSockets: Functional Programming Is Taking the Stage
Contract Testing of WebSockets: Functional Programming Is Taking the Stage
 
SonarQube Presentation.pptx
SonarQube Presentation.pptxSonarQube Presentation.pptx
SonarQube Presentation.pptx
 
Lean Software Development
Lean Software Development Lean Software Development
Lean Software Development
 

Similar to Antipatrones de desarrollo de software

Presentacion programador apasionado
Presentacion programador apasionadoPresentacion programador apasionado
Presentacion programador apasionado
Edwin Cruz
 
Tema 3 proseso de desarrollo del software
Tema 3 proseso de desarrollo del softwareTema 3 proseso de desarrollo del software
Tema 3 proseso de desarrollo del software
Luis Garcia
 
¿Qué necesito para desarrollar software en las empresas modernas?
¿Qué necesito para desarrollar software en las empresas modernas?¿Qué necesito para desarrollar software en las empresas modernas?
¿Qué necesito para desarrollar software en las empresas modernas?
Rosalinda Muñoz Rodríguez
 
Universidad Cristianillescas
Universidad CristianillescasUniversidad Cristianillescas
Universidad Cristianillescas
cristian illescas
 

Similar to Antipatrones de desarrollo de software (20)

Presentacion programador apasionado
Presentacion programador apasionadoPresentacion programador apasionado
Presentacion programador apasionado
 
La autocrítica como hábito en el arte del cultivo de profesionales en software
La autocrítica como hábito en el arte del cultivo de profesionales en softwareLa autocrítica como hábito en el arte del cultivo de profesionales en software
La autocrítica como hábito en el arte del cultivo de profesionales en software
 
El proceso creativo de una aplicación
El proceso creativo de una aplicación El proceso creativo de una aplicación
El proceso creativo de una aplicación
 
Presentacion Programador Apasionado
Presentacion Programador ApasionadoPresentacion Programador Apasionado
Presentacion Programador Apasionado
 
Tecnicasdedesarrollo
TecnicasdedesarrolloTecnicasdedesarrollo
Tecnicasdedesarrollo
 
Testear videojuegos con Unity3D
Testear videojuegos con Unity3D Testear videojuegos con Unity3D
Testear videojuegos con Unity3D
 
¿Se puede implementar una Cultura Ágil?
¿Se puede implementar una Cultura Ágil?¿Se puede implementar una Cultura Ágil?
¿Se puede implementar una Cultura Ágil?
 
Bugs patches, trabajando con la comunidad de Drupal
Bugs patches, trabajando con la comunidad de DrupalBugs patches, trabajando con la comunidad de Drupal
Bugs patches, trabajando con la comunidad de Drupal
 
Opsec para analistas de seguridad
Opsec para analistas de seguridadOpsec para analistas de seguridad
Opsec para analistas de seguridad
 
Tema 3 proseso de desarrollo del software
Tema 3 proseso de desarrollo del softwareTema 3 proseso de desarrollo del software
Tema 3 proseso de desarrollo del software
 
Taller Prototipos EngineUp Peru - Abril 2011
Taller Prototipos EngineUp Peru - Abril 2011Taller Prototipos EngineUp Peru - Abril 2011
Taller Prototipos EngineUp Peru - Abril 2011
 
Seguridad de la Información para Periodistas.
Seguridad de la Información para Periodistas.Seguridad de la Información para Periodistas.
Seguridad de la Información para Periodistas.
 
PREVENCIÓN Y ELIMINACIÓN DE VIRUS
PREVENCIÓN Y ELIMINACIÓN DE VIRUSPREVENCIÓN Y ELIMINACIÓN DE VIRUS
PREVENCIÓN Y ELIMINACIÓN DE VIRUS
 
¿Qué necesito para desarrollar software en las empresas modernas?
¿Qué necesito para desarrollar software en las empresas modernas?¿Qué necesito para desarrollar software en las empresas modernas?
¿Qué necesito para desarrollar software en las empresas modernas?
 
Documentación y agilidad
Documentación y agilidadDocumentación y agilidad
Documentación y agilidad
 
Hack Space - Intro Design Thinking .00122
Hack Space - Intro Design Thinking .00122Hack Space - Intro Design Thinking .00122
Hack Space - Intro Design Thinking .00122
 
Como prototipar MAL una aplicación. La importancia del Wireframe
Como prototipar MAL una aplicación. La importancia del WireframeComo prototipar MAL una aplicación. La importancia del Wireframe
Como prototipar MAL una aplicación. La importancia del Wireframe
 
Como prototipar MAL una aplicación. La importancia del Wireframe
Como prototipar MAL una aplicación. La importancia del WireframeComo prototipar MAL una aplicación. La importancia del Wireframe
Como prototipar MAL una aplicación. La importancia del Wireframe
 
Universidad Cristianillescas
Universidad CristianillescasUniversidad Cristianillescas
Universidad Cristianillescas
 
Adopcion Codigo Abierto
Adopcion Codigo AbiertoAdopcion Codigo Abierto
Adopcion Codigo Abierto
 

More from Pablo Bouzada

Introducción a TypeScript
Introducción a TypeScriptIntroducción a TypeScript
Introducción a TypeScript
Pablo Bouzada
 
TypeScript, ¿la solución definitiva?
TypeScript, ¿la solución definitiva?TypeScript, ¿la solución definitiva?
TypeScript, ¿la solución definitiva?
Pablo Bouzada
 

More from Pablo Bouzada (11)

Toxic cultures - DevOpsDays Eindhoven 2022
Toxic cultures - DevOpsDays Eindhoven 2022Toxic cultures - DevOpsDays Eindhoven 2022
Toxic cultures - DevOpsDays Eindhoven 2022
 
Culture really matters - DevOps and Cloud days 2021
Culture really matters  - DevOps and Cloud days 2021Culture really matters  - DevOps and Cloud days 2021
Culture really matters - DevOps and Cloud days 2021
 
Cultura - más allá de eslóganes y palabras bonitas
Cultura - más allá de eslóganes y palabras bonitasCultura - más allá de eslóganes y palabras bonitas
Cultura - más allá de eslóganes y palabras bonitas
 
Atlantica conf 2019 no estas preparado para migrar al cloud
Atlantica conf 2019   no estas preparado para migrar al cloudAtlantica conf 2019   no estas preparado para migrar al cloud
Atlantica conf 2019 no estas preparado para migrar al cloud
 
Antipatrones de la cultura de una organización
Antipatrones de la cultura de una organizaciónAntipatrones de la cultura de una organización
Antipatrones de la cultura de una organización
 
Gab 2019 - No, (aún) no estás preparado para migrar a Azure
Gab 2019 - No, (aún) no estás preparado para migrar a AzureGab 2019 - No, (aún) no estás preparado para migrar a Azure
Gab 2019 - No, (aún) no estás preparado para migrar a Azure
 
Introducción a TypeScript
Introducción a TypeScriptIntroducción a TypeScript
Introducción a TypeScript
 
TypeScript, ¿la solución definitiva?
TypeScript, ¿la solución definitiva?TypeScript, ¿la solución definitiva?
TypeScript, ¿la solución definitiva?
 
¿Cuál es tu excusa para no tener tests?
¿Cuál es tu excusa para no tener tests?¿Cuál es tu excusa para no tener tests?
¿Cuál es tu excusa para no tener tests?
 
Descubriendo windows8
Descubriendo windows8Descubriendo windows8
Descubriendo windows8
 
Aos2012 sobrevivir a proyectos heredados
Aos2012 sobrevivir a proyectos heredadosAos2012 sobrevivir a proyectos heredados
Aos2012 sobrevivir a proyectos heredados
 

Recently uploaded

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Recently uploaded (11)

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
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
 
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.
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
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...
 
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
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
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
 

Antipatrones de desarrollo de software

  • 1. Antipatrones de desarrollo de software @pbousan Pablo Bouzada pbouzada@renacimiento.com http://www.programandonet.com/
  • 2. ¿Qué es un antipatrón? Un antipatrón es un patrón que te dice cómo ir de un problema a una mala solución. Identificar malas prácticas puede ser tan valioso como conocer buenas prácticas. ¿Cuáles son sus causas?  Prisa  Codicia  Falta de interés  Ignorancia  Estrechez de miras  Soberbia  Pereza Antipatrones de desarrollo de software
  • 3. Demo (mini) • Spagheti Code • Copy-Paste Programming • Big Ball of Mud • Magic Numbers • Magic Strings • Sequential Coupling • Lava Flow • Programming by Permutation • God Object • Magic PushButton • Sweep It Under the Rug http://c2.com/cgi/wiki?DevelopmentAntiPatternRoadMap http://en.wikipedia.org/wiki/Anti-pattern Antipatrones de desarrollo de software
  • 4. Conclusiones: ¿Cómo evitar los antipatrones? • Principios SOLID • KISS (Keep It Simple, Stupid) • DRY (Don’t Repeat Yourselft) • YAGNI (You Ain’t Gone Need It) • Patrones Antipatrones de desarrollo de software
  • 5. Consejo 1 El código es algo vivo, que evoluciona contigo. Aplica todo lo que aprendes. Antipatrones de desarrollo de software
  • 6. Consejo 2 AHORA es el único buen momento para refactorizar. Antipatrones de desarrollo de software
  • 7. Consejo 3 … el más importante Programa siempre como si el tipo que va a mantener tu código fuese un asesino psicópata que sabe donde vives. Antipatrones de desarrollo de software
  • 8. ¿Preguntas? Antipatrones de desarrollo de software
  • 9. MUCHAS GRACIAS!! Pablo Bouzada @pbousan pbouzada@renacimiento.com http://www.programandonet.com/ Antipatrones de desarrollo de software