SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
Programación Orientada a Objetos
(js)
2
Workshop (objetivos)
● Preguntarnos
– Ventajas y desventajas de utilizar if/switches
– Alternativas a estas estructuras
– Alternativas para reducir la cantiadad de
if/switch
– Ventajas y desventajas de estas alternativas
– Áreas de aplicación
– Qué significa escribir “buen código”?
3
Let’s rock!
● Domain Driven Design (DDD)
● Test Driven Desing (TDD)
4
Algunas respuestas
● Ventajas y desventajas de utilizar if/switches
– +) Es el standard
– - ) Previene pensar un diseno extensible
– - ) Complejidad Ciclomática (https://en.wikipedia.org/wiki/Cyclomatic_complexity)
– - ) Dificulta las pruebas
– - ) Dificulta entendimiento de código
– - ) Genera código difícil de extender
5
Alternativa (Prototipos o Clases)
● Ventajas
– +) Extensible
– +) S.O.L.I.D
● Single Responsability
● Open/Close principle
– + ) Reduce posibilidad de errores
– + ) Patrón nulo.
6
Conclusiones… ?
● Prototipar o clasificar
● Utilizar if de ser necesario o standard
● Dar entidad a las cosas
● Utilizar metodología de diseño
● Medir esfuerzo actual y futuro
● Fomentar la refactorizar
● Buen código:
– Pruebas → refactorización,
– Cobertura,
– Olores (Code Smells).
7
Quién…?
● Ingeniero en Informática de la Facultad de Ingeniería de la UBA.
● Docente de Programación Orientada a Objetos (FIUBA).
● Docente de Algoritmos y Programación III (UNTREF)
● Tutor/Colaborador en Nodeschool BA.
● Colaborador en BANode.
@dsminotauro diegosanchez about me (próximamente)

Más contenido relacionado

Similar a Reducción de ifs en JavaScript con Programación Orientada a Prototipos

TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasTDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasOrlando Bustos Mateluna
 
Agile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilAgile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilagilenavarra
 
Grails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasGrails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasCarlos Camacho
 
Introducción Análisis y Diseño
Introducción Análisis y DiseñoIntroducción Análisis y Diseño
Introducción Análisis y DiseñoCarlos A. Iglesias
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...Miguel Ángel Sánchez Chordi
 
Tema 1 multiprocesadores
Tema 1 multiprocesadoresTema 1 multiprocesadores
Tema 1 multiprocesadoresKuma Sanchez
 
Cursotdd 141202105217-conversion-gate01
Cursotdd 141202105217-conversion-gate01Cursotdd 141202105217-conversion-gate01
Cursotdd 141202105217-conversion-gate01Javier Morales
 
Swift migration. the true history
Swift migration. the true historySwift migration. the true history
Swift migration. the true historyidealistacreamcode
 
Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Jose Emilio Labra Gayo
 
Inyección de dependencia
Inyección de dependenciaInyección de dependencia
Inyección de dependenciaAdrián Paredes
 
"Demystifying development techniques" por @eturino
"Demystifying development techniques" por @eturino"Demystifying development techniques" por @eturino
"Demystifying development techniques" por @eturinowebcat
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosFranklin Parrales Bravo
 
6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a Objetos6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a ObjetosJose Emilio Labra Gayo
 
s03 - modelo de referencia para desarrollo de proyectos
s03 - modelo de referencia para desarrollo de proyectoss03 - modelo de referencia para desarrollo de proyectos
s03 - modelo de referencia para desarrollo de proyectosMario Solarte
 

Similar a Reducción de ifs en JavaScript con Programación Orientada a Prototipos (20)

TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasTDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
 
Agile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilAgile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvil
 
Grails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasGrails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - Sistemas
 
Introducción Análisis y Diseño
Introducción Análisis y DiseñoIntroducción Análisis y Diseño
Introducción Análisis y Diseño
 
Grails barcamp 2013
Grails barcamp 2013Grails barcamp 2013
Grails barcamp 2013
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Tema 1 multiprocesadores
Tema 1 multiprocesadoresTema 1 multiprocesadores
Tema 1 multiprocesadores
 
Java12
Java12Java12
Java12
 
Cursotdd 141202105217-conversion-gate01
Cursotdd 141202105217-conversion-gate01Cursotdd 141202105217-conversion-gate01
Cursotdd 141202105217-conversion-gate01
 
TDD Course (Spanish)
TDD Course (Spanish)TDD Course (Spanish)
TDD Course (Spanish)
 
Swift migration. the true history
Swift migration. the true historySwift migration. the true history
Swift migration. the true history
 
Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001
 
Inyección de dependencia
Inyección de dependenciaInyección de dependencia
Inyección de dependencia
 
"Demystifying development techniques" por @eturino
"Demystifying development techniques" por @eturino"Demystifying development techniques" por @eturino
"Demystifying development techniques" por @eturino
 
Alternativas metodológicas
Alternativas metodológicasAlternativas metodológicas
Alternativas metodológicas
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a Objetos
 
6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a Objetos6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a Objetos
 
Tdd desde las_trincheras
Tdd desde las_trincherasTdd desde las_trincheras
Tdd desde las_trincheras
 
s03 - modelo de referencia para desarrollo de proyectos
s03 - modelo de referencia para desarrollo de proyectoss03 - modelo de referencia para desarrollo de proyectos
s03 - modelo de referencia para desarrollo de proyectos
 

Reducción de ifs en JavaScript con Programación Orientada a Prototipos

  • 2. 2 Workshop (objetivos) ● Preguntarnos – Ventajas y desventajas de utilizar if/switches – Alternativas a estas estructuras – Alternativas para reducir la cantiadad de if/switch – Ventajas y desventajas de estas alternativas – Áreas de aplicación – Qué significa escribir “buen código”?
  • 3. 3 Let’s rock! ● Domain Driven Design (DDD) ● Test Driven Desing (TDD)
  • 4. 4 Algunas respuestas ● Ventajas y desventajas de utilizar if/switches – +) Es el standard – - ) Previene pensar un diseno extensible – - ) Complejidad Ciclomática (https://en.wikipedia.org/wiki/Cyclomatic_complexity) – - ) Dificulta las pruebas – - ) Dificulta entendimiento de código – - ) Genera código difícil de extender
  • 5. 5 Alternativa (Prototipos o Clases) ● Ventajas – +) Extensible – +) S.O.L.I.D ● Single Responsability ● Open/Close principle – + ) Reduce posibilidad de errores – + ) Patrón nulo.
  • 6. 6 Conclusiones… ? ● Prototipar o clasificar ● Utilizar if de ser necesario o standard ● Dar entidad a las cosas ● Utilizar metodología de diseño ● Medir esfuerzo actual y futuro ● Fomentar la refactorizar ● Buen código: – Pruebas → refactorización, – Cobertura, – Olores (Code Smells).
  • 7. 7 Quién…? ● Ingeniero en Informática de la Facultad de Ingeniería de la UBA. ● Docente de Programación Orientada a Objetos (FIUBA). ● Docente de Algoritmos y Programación III (UNTREF) ● Tutor/Colaborador en Nodeschool BA. ● Colaborador en BANode. @dsminotauro diegosanchez about me (próximamente)