SlideShare una empresa de Scribd logo
1 de 22
Refactoring
                 GOLF    Email: snahider@gmail.com
 Angel Núñez Salazar              Twitter: @snahider


                           Email: gquiroz@gmail.com
Gustavo Quiroz Madueño      Twitter: @quiroz_gustavo
Descripción
    Es un juego en el cual se utilizan ejercicios de
                  refactorización.

Se formarán equipos y a cada uno se le dará un código
                 inicial y uno final.

De manera similar al golf, la meta es utilizar la menor
cantidad de movimientos para llegar del punto inicial
                      al final.

Las mejores soluciones serán presentadas al resto de
                   los asistentes.
Equipo

   Player                  Caddie




Cada equipo estará conformado por 2
             personas
Player


         Realizar las
      refactorizaciones
 utilizando el computador


   Además ser el DRIVER del
           equipo
Caddie
 Registrar el número de
     movimientos y
 penalidades cometidas

 Asegurarse que los tests
      se ejecuten
    constantemente
 Además ser el NAVIGATOR del
           equipo
Campo de Juego
      Realizaremos 2 juegos
    diferentes y en cada juego
       se podrá utilizar C# o
               Java.

       Cada juego tiene un
     punto de partida (Tee) y
      el objetivo es llegar al
        punto final (Hole).
Equipamiento
 • Un IDE de su preferencia.
   (El código se encuentra en VS2010
   y Eclipse pero se puede importar)
           *Recomendación*
       Si usan VS instalar Resharper

 • Una hoja donde anotar los
   puntajes.

 • El código de cada juego en
   papel.
Puntaje
                    General
+1 Cada refactorización
+1 Copiar + Pegar
+1 Cualquier shortcut de edición código
+0 Dar formato o eliminar líneas en blanco
+0 Cambiar el acceso de los métodos o clases
                Penalidades
+2 Cada línea modificada manualmente
x2 Cada cambio mientras no compile
Equipo Ganador

El equipo que logre el menor puntaje
           será el ganador.

Al finalizar el juego, el equipo ganador
mostrará como realizó el juego al resto
              de asistentes.
Premios

  El equipo ganador de cada
juego se llevará 2 licencias de
           JetBrains.

Cada licencia será válida para
  Resharper o IntelliJ según
          elección.
DEMO
1st COURSE
Objetivo
    Aprender y practicar diversos
refactorizaciones tanto simples como
              complejos
Descripción
El código representa el dominio de
  una tienda online de bicicletas.
Reglas
   Es un juego de 3 hoyos, todos los equipos
comenzarán en el tee y en los siguientes hoyos de
              manera simultanea.




El tiempo por hoyo es 12 minutos, al finalizar cada
  hoyo el mejor equipo mostrará sus resultados.
Listos Para Comenzar
• Abrir el código inicial en el IDE, asegurarse que
  compile y todos los tests pasen.

• No olvidar las actividades de cada rol del
  equipo.

• El primer equipo en terminar debe levantar la
  mano.

• Tienen 12 minutos por hoyo.
2nd COURSE
Objetivo
    Aprender y practicar diversas
   estratégicas de refactorización
(Parallel Change y Narrowed Change)
Descripción
    El código es de una clase que
     representa a un Stack (Pila)

La meta es reemplazar el array simple
   por una clase especializada en el
       manejo de colecciones.
Reglas
        Es un recorrido de un único hoyo




El tiempo de todo el recorrido es de 18 minutos, al
 finalizar el tiempo el mejor equipo mostrará sus
                     resultados.
Listos Para Comenzar
• Abrir el código inicial en el IDE, asegurarse que
  compile y todos los tests pasen.

• No olvidar las actividades de cada rol del
  equipo.

• El primer equipo en terminar debe levantar la
  mano.

• Tienen 18 minutos para todo el recorrido.
Feedback
   Nadie puede pasar por la
 puerta sin dejar algún tipo de
idea, comentario o feedkback.

   No importa que sea un
 problema elemental o una
carita feliz, deben poner algo
         en la puerta.

Más contenido relacionado

Similar a Refactoring Golf

Informe grupo cronos
Informe grupo cronosInforme grupo cronos
Informe grupo cronos
raulernesto28
 
Trucos de Unity que nadie te cuenta
Trucos de Unity que nadie te cuentaTrucos de Unity que nadie te cuenta
Trucos de Unity que nadie te cuenta
Miguel Company
 

Similar a Refactoring Golf (17)

Informe grupo cronos
Informe grupo cronosInforme grupo cronos
Informe grupo cronos
 
Workbook de JavaScript (2).pdf
Workbook de JavaScript (2).pdfWorkbook de JavaScript (2).pdf
Workbook de JavaScript (2).pdf
 
arduino
arduinoarduino
arduino
 
Ejercicios de Arduino resueltos Grupo Sabika
Ejercicios de Arduino resueltos Grupo SabikaEjercicios de Arduino resueltos Grupo Sabika
Ejercicios de Arduino resueltos Grupo Sabika
 
Ejercicios de arduino_resueltos
Ejercicios de arduino_resueltosEjercicios de arduino_resueltos
Ejercicios de arduino_resueltos
 
Introducción a las Herramientas de Desarrollo para Android
Introducción a las Herramientas de Desarrollo para AndroidIntroducción a las Herramientas de Desarrollo para Android
Introducción a las Herramientas de Desarrollo para Android
 
Proyecto arduino
Proyecto arduinoProyecto arduino
Proyecto arduino
 
Caja
CajaCaja
Caja
 
ejercicios de arduino miercoles 1.pdf
ejercicios de arduino miercoles 1.pdfejercicios de arduino miercoles 1.pdf
ejercicios de arduino miercoles 1.pdf
 
Ejercicios de arduino_resueltos
Ejercicios de arduino_resueltosEjercicios de arduino_resueltos
Ejercicios de arduino_resueltos
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Estela y naye
Estela y nayeEstela y naye
Estela y naye
 
Rodents Final
Rodents FinalRodents Final
Rodents Final
 
Arduino uno
Arduino unoArduino uno
Arduino uno
 
Trucos de Unity que nadie te cuenta
Trucos de Unity que nadie te cuentaTrucos de Unity que nadie te cuenta
Trucos de Unity que nadie te cuenta
 
TALLER VIDEOJUEGO 2D
TALLER VIDEOJUEGO 2DTALLER VIDEOJUEGO 2D
TALLER VIDEOJUEGO 2D
 
Juego de la Oca
Juego de la OcaJuego de la Oca
Juego de la Oca
 

Más de Angel Nuñez

Más de Angel Nuñez (20)

Structural Agility
Structural AgilityStructural Agility
Structural Agility
 
Architecting Sociotechnical Systems
Architecting Sociotechnical SystemsArchitecting Sociotechnical Systems
Architecting Sociotechnical Systems
 
Product Development Flow
Product Development FlowProduct Development Flow
Product Development Flow
 
Chaos Engineering
Chaos EngineeringChaos Engineering
Chaos Engineering
 
Hackeando la Cultura Organizacional
Hackeando la Cultura OrganizacionalHackeando la Cultura Organizacional
Hackeando la Cultura Organizacional
 
Liderazgo Transformacional
Liderazgo TransformacionalLiderazgo Transformacional
Liderazgo Transformacional
 
Liderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOpsLiderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOps
 
Exploratory Testing
Exploratory TestingExploratory Testing
Exploratory Testing
 
Kubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and ScalingKubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and Scaling
 
Agile Test Strategy
Agile Test StrategyAgile Test Strategy
Agile Test Strategy
 
Kubernetes - #gdglimasummit
Kubernetes - #gdglimasummitKubernetes - #gdglimasummit
Kubernetes - #gdglimasummit
 
Agile Testing - Software Testing Club
Agile Testing - Software Testing ClubAgile Testing - Software Testing Club
Agile Testing - Software Testing Club
 
Kubernetes - #dockerconlima
Kubernetes  - #dockerconlimaKubernetes  - #dockerconlima
Kubernetes - #dockerconlima
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
Test Driven Infrastructure
Test Driven InfrastructureTest Driven Infrastructure
Test Driven Infrastructure
 
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo HolísticamenteSoftware Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
 
Unit testing
Unit testingUnit testing
Unit testing
 
Test Automation .NET
Test Automation .NETTest Automation .NET
Test Automation .NET
 
Refactoring
RefactoringRefactoring
Refactoring
 
Refactoring to Patterns
Refactoring to PatternsRefactoring to Patterns
Refactoring to Patterns
 

Último

QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
Marc Liust
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
Yanitza28
 
microsoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamtemicrosoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamte
2024020140
 

Último (16)

Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxTarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el tema
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
 
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacion
 
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
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdf
 
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
microsoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamtemicrosoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamte
 
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
 

Refactoring Golf

  • 1. Refactoring GOLF Email: snahider@gmail.com Angel Núñez Salazar Twitter: @snahider Email: gquiroz@gmail.com Gustavo Quiroz Madueño Twitter: @quiroz_gustavo
  • 2. Descripción Es un juego en el cual se utilizan ejercicios de refactorización. Se formarán equipos y a cada uno se le dará un código inicial y uno final. De manera similar al golf, la meta es utilizar la menor cantidad de movimientos para llegar del punto inicial al final. Las mejores soluciones serán presentadas al resto de los asistentes.
  • 3. Equipo Player Caddie Cada equipo estará conformado por 2 personas
  • 4. Player Realizar las refactorizaciones utilizando el computador Además ser el DRIVER del equipo
  • 5. Caddie Registrar el número de movimientos y penalidades cometidas Asegurarse que los tests se ejecuten constantemente Además ser el NAVIGATOR del equipo
  • 6. Campo de Juego Realizaremos 2 juegos diferentes y en cada juego se podrá utilizar C# o Java. Cada juego tiene un punto de partida (Tee) y el objetivo es llegar al punto final (Hole).
  • 7. Equipamiento • Un IDE de su preferencia. (El código se encuentra en VS2010 y Eclipse pero se puede importar) *Recomendación* Si usan VS instalar Resharper • Una hoja donde anotar los puntajes. • El código de cada juego en papel.
  • 8. Puntaje General +1 Cada refactorización +1 Copiar + Pegar +1 Cualquier shortcut de edición código +0 Dar formato o eliminar líneas en blanco +0 Cambiar el acceso de los métodos o clases Penalidades +2 Cada línea modificada manualmente x2 Cada cambio mientras no compile
  • 9. Equipo Ganador El equipo que logre el menor puntaje será el ganador. Al finalizar el juego, el equipo ganador mostrará como realizó el juego al resto de asistentes.
  • 10. Premios El equipo ganador de cada juego se llevará 2 licencias de JetBrains. Cada licencia será válida para Resharper o IntelliJ según elección.
  • 11. DEMO
  • 13. Objetivo Aprender y practicar diversos refactorizaciones tanto simples como complejos
  • 14. Descripción El código representa el dominio de una tienda online de bicicletas.
  • 15. Reglas Es un juego de 3 hoyos, todos los equipos comenzarán en el tee y en los siguientes hoyos de manera simultanea. El tiempo por hoyo es 12 minutos, al finalizar cada hoyo el mejor equipo mostrará sus resultados.
  • 16. Listos Para Comenzar • Abrir el código inicial en el IDE, asegurarse que compile y todos los tests pasen. • No olvidar las actividades de cada rol del equipo. • El primer equipo en terminar debe levantar la mano. • Tienen 12 minutos por hoyo.
  • 18. Objetivo Aprender y practicar diversas estratégicas de refactorización (Parallel Change y Narrowed Change)
  • 19. Descripción El código es de una clase que representa a un Stack (Pila) La meta es reemplazar el array simple por una clase especializada en el manejo de colecciones.
  • 20. Reglas Es un recorrido de un único hoyo El tiempo de todo el recorrido es de 18 minutos, al finalizar el tiempo el mejor equipo mostrará sus resultados.
  • 21. Listos Para Comenzar • Abrir el código inicial en el IDE, asegurarse que compile y todos los tests pasen. • No olvidar las actividades de cada rol del equipo. • El primer equipo en terminar debe levantar la mano. • Tienen 18 minutos para todo el recorrido.
  • 22. Feedback Nadie puede pasar por la puerta sin dejar algún tipo de idea, comentario o feedkback. No importa que sea un problema elemental o una carita feliz, deben poner algo en la puerta.