SlideShare una empresa de Scribd logo
1 de 49
Fernando Escolar
Pablo Bouzada
Coding Kihon: mejora tus
técnicas de programación
BARCELONA DEVELOPERS CONFERENCE 2012
6 dic – 7 dic – 8 dic
www.pasiona.com
info@pasiona.com
(+34) 669 333 333
@pasiona            Barcelona                 Bilbao                      Madrid           Londres
                    Pujades 350, 10ª planta   Gran Vía 19-21, 2ª planta   Pinar 5,         1 Northumberland Avenue
                    08019 · Barcelona         48008 · Bilbao              28006 · Madrid   London · WC2N 5BW
Qué es



Microsoft                                 Innovación                                      Pasión
socio 100% alineado                       ligada a la mejora continua y basada            somos grandes entusiastas de todo
partner 100% especializado                en las nuevas oportunidades tecnológicas        aquello que creamos y vemos crecer


Desarrollo                                Tecnología                                      Experiencia
capacidad para realizar proyectos de      soluciones a cada una de las necesidades        o la garantía de la habilidad derivada
ámbito tecnológico con un fin de mejora   empresariales que se platean en cada ámbito     de años de vivencias y observación


Especialización                           Conocimiento                                    Valores humanos
ofrecemos soluciones a medida con         adquirido a través de la realización de         guía de lo que hacemos y pretendemos
las mejores herramientas tecnológicas     proyectos, formación e innovación tecnológica   que nos enseña y nos conduce día a día
Servicios
Consultoría   Proyectos    Auditoría




              Servicios profesionales    Social      Formación
                                         Media



                                        Innovación    Azure
Pablo Bouzada
   @pbousan
pbouzada@pasiona.compbousan@techdencias.net
    Fernando Escolar
       @fernandoescolar
    fescolar@pasiona.com fernandoescolar@techdencias.net

         Quique Martínez
            @quiqu3
         qmartinez@pasiona.com quiqu3@techdencias.net
@techdencias

@pasiona




    #BCD12
Agenda
¿Qué es un coding dojo?
Pair Programming
TDD
SOLID
Algunos trucos
¿Qué es un coding dojo?
Las katas son pequeños ejercicios que nos
ayudan a aprender.
Dave Thomas – The pragmatic programmer
Pair Programming
Test Driven Development
SOLID
 Single responsibility
 Open-closed
 Liskov substitution
 Interface segregation
 Dependency inversion
 KISS
 DRY
 YAGNI
 …
 ¡¡Sentido común!!
Algunos trucos
cuidado con los comentarios
métodos o clases
demasiado largas
clases con muchos
atributos

métodos con muchos
parámetros
verbo + sujeto = peligro
nombres iguales
diferentes significados
métodos que no llaman el
     propio objeto
ocultar métodos heredados
Kata FizzBuzz
Existe un juego que se practica en Estados Unidos a la hora de beber unas copas con los amigos. Consiste en que cada
uno vaya diciendo un número secuencial en orden. Pero con unas normas especiales. Las premisas son simples:
    Si un número es divisible entre 3 se dice “Fizz”
    Si un número es divisible entre 5 se dice “Buzz”
    Si es divisible entre 3 y entre 5 decimos “FizzBuzz”



Queremos desarrollar un software que sepa jugar a este juego. Y para este fin sacamos una serie de especificaciones:

Especificaciones unitarios para pruebas:
    Devuelvo el número que me toca: Cuando te paso 1, 2, 4, 13, 50, 72 devuelve el mismo número.
    Múltiplos de 3: Cuando te paso 3, 12, 39, 78 digo “Fizz”
    Múltiplos de 5: Cuando te paso 5, 10, 50,75, 95 digo “Buzz”
    Múltiplos de 3 y 5: Cuando te paso 15, 30, 60, 90 devuelvo “FizzBuzz”.
this page has been left blank intentionally
Pablo Bouzada
   @pbousan
pbouzada@pasiona.compbousan@techdencias.net
    Fernando Escolar
       @fernandoescolar
    fescolar@pasiona.com fernandoescolar@techdencias.net

         Quique Martínez
            @quiqu3
         qmartinez@pasiona.com quiqu3@techdencias.net
@techdencias

@pasiona




    #BCD1
    2
Los zombis están de moda…
@pbousan                            Q&A
pbouzada@pasiona.compbousan@techdencias.net
    Fernando Escolar
       @fernandoescolar
    fescolar@pasiona.com fernandoescolar@techdencias.net

         Quique Martínez
            @quiqu3
         qmartinez@pasiona.com quiqu3@techdencias.net
BARCELONA DEVELOPERS CONFERENCE 2012
                        |   6 dic – 7 dic – 8 dic

Más contenido relacionado

Destacado

Ocean view
Ocean viewOcean view
Ocean viewkrylonky
 
Relación entre la guerra fría y la historia
Relación entre la guerra fría y  la historiaRelación entre la guerra fría y  la historia
Relación entre la guerra fría y la historiaSebas Cortes
 
Escuela politécnica
Escuela politécnicaEscuela politécnica
Escuela politécnicaOchaetaJoc
 
Domenica i cow boy a diano raduno "amici del cavallo"
Domenica i cow boy a diano   raduno "amici del cavallo"Domenica i cow boy a diano   raduno "amici del cavallo"
Domenica i cow boy a diano raduno "amici del cavallo"LiForYou
 
Colegio de bachilleres palntel 8
Colegio de bachilleres palntel 8Colegio de bachilleres palntel 8
Colegio de bachilleres palntel 8llaverito16
 
Comunicación y tecnología educativa
Comunicación y tecnología educativaComunicación y tecnología educativa
Comunicación y tecnología educativaMojgan Hashemi
 
2do parcial mencia david
2do parcial mencia david2do parcial mencia david
2do parcial mencia davidDavidMencia
 
11 Surprising Health Benefits of Sleep
11 Surprising Health Benefits of Sleep11 Surprising Health Benefits of Sleep
11 Surprising Health Benefits of SleepConsumer Health Digest
 
Registro en una página web para la renta de vehículos hecho en java.
Registro en una página web para la renta de vehículos hecho en java.Registro en una página web para la renta de vehículos hecho en java.
Registro en una página web para la renta de vehículos hecho en java.Alex Espinoza
 

Destacado (20)

Ocean view
Ocean viewOcean view
Ocean view
 
SOLID para CatDotNet
SOLID   para CatDotNetSOLID   para CatDotNet
SOLID para CatDotNet
 
Relación entre la guerra fría y la historia
Relación entre la guerra fría y  la historiaRelación entre la guerra fría y  la historia
Relación entre la guerra fría y la historia
 
El ayuno
El ayunoEl ayuno
El ayuno
 
Katy simbaña
Katy simbañaKaty simbaña
Katy simbaña
 
Escuela politécnica
Escuela politécnicaEscuela politécnica
Escuela politécnica
 
Psicología inversa
Psicología inversaPsicología inversa
Psicología inversa
 
Domenica i cow boy a diano raduno "amici del cavallo"
Domenica i cow boy a diano   raduno "amici del cavallo"Domenica i cow boy a diano   raduno "amici del cavallo"
Domenica i cow boy a diano raduno "amici del cavallo"
 
Consejo
ConsejoConsejo
Consejo
 
Colegio de bachilleres palntel 8
Colegio de bachilleres palntel 8Colegio de bachilleres palntel 8
Colegio de bachilleres palntel 8
 
Consejo
ConsejoConsejo
Consejo
 
Comunicación y tecnología educativa
Comunicación y tecnología educativaComunicación y tecnología educativa
Comunicación y tecnología educativa
 
Tecnología Educativa
Tecnología EducativaTecnología Educativa
Tecnología Educativa
 
2do parcial mencia david
2do parcial mencia david2do parcial mencia david
2do parcial mencia david
 
11 Surprising Health Benefits of Sleep
11 Surprising Health Benefits of Sleep11 Surprising Health Benefits of Sleep
11 Surprising Health Benefits of Sleep
 
Katy simbaña
Katy simbañaKaty simbaña
Katy simbaña
 
Registro en una página web para la renta de vehículos hecho en java.
Registro en una página web para la renta de vehículos hecho en java.Registro en una página web para la renta de vehículos hecho en java.
Registro en una página web para la renta de vehículos hecho en java.
 
Medio ambiente
Medio ambienteMedio ambiente
Medio ambiente
 
Parte II
Parte IIParte II
Parte II
 
Feliz Nawruz
Feliz NawruzFeliz Nawruz
Feliz Nawruz
 

Similar a Coding kihon + Zombie Code Survival Guide

TypeScript, ¿la solución definitiva?
TypeScript, ¿la solución definitiva?TypeScript, ¿la solución definitiva?
TypeScript, ¿la solución definitiva?Pablo Bouzada
 
KnockoutJs at We Love Js event
KnockoutJs at We Love Js eventKnockoutJs at We Love Js event
KnockoutJs at We Love Js eventMarc Rubiño
 
Aplicaciones moviles nativas con Xamarin
Aplicaciones moviles nativas con XamarinAplicaciones moviles nativas con Xamarin
Aplicaciones moviles nativas con XamarinMarc Rubiño
 
SPA ASP.NET MVC & AngularJS codemotion 2013
SPA ASP.NET MVC & AngularJS  codemotion 2013SPA ASP.NET MVC & AngularJS  codemotion 2013
SPA ASP.NET MVC & AngularJS codemotion 2013Marc Rubiño
 
BcnDevCon12 - Una vuelta por Orchard CMS
BcnDevCon12 - Una vuelta por Orchard CMSBcnDevCon12 - Una vuelta por Orchard CMS
BcnDevCon12 - Una vuelta por Orchard CMSEdin Kapic
 
DIPLOMADO EN TRANSFORMACION DIGITAL EMPRESARIAL.pdf
DIPLOMADO EN TRANSFORMACION DIGITAL EMPRESARIAL.pdfDIPLOMADO EN TRANSFORMACION DIGITAL EMPRESARIAL.pdf
DIPLOMADO EN TRANSFORMACION DIGITAL EMPRESARIAL.pdfEduardoLara533622
 
Àlex de Anta "Estratègia online" #FIBOReus
Àlex de Anta "Estratègia online" #FIBOReusÀlex de Anta "Estratègia online" #FIBOReus
Àlex de Anta "Estratègia online" #FIBOReusfiraReus
 
d2i Digital Innovation Institute Panama 2014
d2i Digital Innovation Institute Panama 2014d2i Digital Innovation Institute Panama 2014
d2i Digital Innovation Institute Panama 2014d2i institute panama
 
D2I Institute Panama Programacion 2015 Q1
D2I Institute Panama Programacion 2015 Q1D2I Institute Panama Programacion 2015 Q1
D2I Institute Panama Programacion 2015 Q1d2i institute panama
 
Mvp cluster - Línea de movilidad
Mvp cluster - Línea de movilidadMvp cluster - Línea de movilidad
Mvp cluster - Línea de movilidadMVP CLUSTER
 
Tegnologia y sociedad corte 1 by sergio
Tegnologia y sociedad corte 1 by sergioTegnologia y sociedad corte 1 by sergio
Tegnologia y sociedad corte 1 by sergioandres24752
 
Webinar: Todo lo que siempre quisiste saber sobre Redes Sociales Corporativas...
Webinar: Todo lo que siempre quisiste saber sobre Redes Sociales Corporativas...Webinar: Todo lo que siempre quisiste saber sobre Redes Sociales Corporativas...
Webinar: Todo lo que siempre quisiste saber sobre Redes Sociales Corporativas...Zyncro
 
Presentación Pixel Studios
Presentación Pixel StudiosPresentación Pixel Studios
Presentación Pixel StudiosSantiago Núñez
 
Deloffalon Raúl Casañas
Deloffalon Raúl CasañasDeloffalon Raúl Casañas
Deloffalon Raúl CasañasRaúl Casañas
 
Presentacion 5ol
Presentacion 5olPresentacion 5ol
Presentacion 5olCinco Oele
 

Similar a Coding kihon + Zombie Code Survival Guide (20)

TypeScript, ¿la solución definitiva?
TypeScript, ¿la solución definitiva?TypeScript, ¿la solución definitiva?
TypeScript, ¿la solución definitiva?
 
Level up your skills
Level up your skillsLevel up your skills
Level up your skills
 
We Love Js 6 - Knockout js (with Marc Rubiño)
We Love Js 6 - Knockout js (with Marc Rubiño)We Love Js 6 - Knockout js (with Marc Rubiño)
We Love Js 6 - Knockout js (with Marc Rubiño)
 
KnockoutJs at We Love Js event
KnockoutJs at We Love Js eventKnockoutJs at We Love Js event
KnockoutJs at We Love Js event
 
Aplicaciones moviles nativas con Xamarin
Aplicaciones moviles nativas con XamarinAplicaciones moviles nativas con Xamarin
Aplicaciones moviles nativas con Xamarin
 
SPA ASP.NET MVC & AngularJS codemotion 2013
SPA ASP.NET MVC & AngularJS  codemotion 2013SPA ASP.NET MVC & AngularJS  codemotion 2013
SPA ASP.NET MVC & AngularJS codemotion 2013
 
BcnDevCon12 - Una vuelta por Orchard CMS
BcnDevCon12 - Una vuelta por Orchard CMSBcnDevCon12 - Una vuelta por Orchard CMS
BcnDevCon12 - Una vuelta por Orchard CMS
 
DIPLOMADO EN TRANSFORMACION DIGITAL EMPRESARIAL.pdf
DIPLOMADO EN TRANSFORMACION DIGITAL EMPRESARIAL.pdfDIPLOMADO EN TRANSFORMACION DIGITAL EMPRESARIAL.pdf
DIPLOMADO EN TRANSFORMACION DIGITAL EMPRESARIAL.pdf
 
Àlex de Anta "Estratègia online" #FIBOReus
Àlex de Anta "Estratègia online" #FIBOReusÀlex de Anta "Estratègia online" #FIBOReus
Àlex de Anta "Estratègia online" #FIBOReus
 
d2i Digital Innovation Institute Panama 2014
d2i Digital Innovation Institute Panama 2014d2i Digital Innovation Institute Panama 2014
d2i Digital Innovation Institute Panama 2014
 
D2I Institute Panama Programacion 2015 Q1
D2I Institute Panama Programacion 2015 Q1D2I Institute Panama Programacion 2015 Q1
D2I Institute Panama Programacion 2015 Q1
 
Mvp cluster - Línea de movilidad
Mvp cluster - Línea de movilidadMvp cluster - Línea de movilidad
Mvp cluster - Línea de movilidad
 
Tegnologia y sociedad corte 1 by sergio
Tegnologia y sociedad corte 1 by sergioTegnologia y sociedad corte 1 by sergio
Tegnologia y sociedad corte 1 by sergio
 
Webinar: Todo lo que siempre quisiste saber sobre Redes Sociales Corporativas...
Webinar: Todo lo que siempre quisiste saber sobre Redes Sociales Corporativas...Webinar: Todo lo que siempre quisiste saber sobre Redes Sociales Corporativas...
Webinar: Todo lo que siempre quisiste saber sobre Redes Sociales Corporativas...
 
Presentación Pixel Studios
Presentación Pixel StudiosPresentación Pixel Studios
Presentación Pixel Studios
 
Campus party
Campus partyCampus party
Campus party
 
Campus party
Campus partyCampus party
Campus party
 
Deloffalon Raúl Casañas
Deloffalon Raúl CasañasDeloffalon Raúl Casañas
Deloffalon Raúl Casañas
 
MediaNet Software
MediaNet SoftwareMediaNet Software
MediaNet Software
 
Presentacion 5ol
Presentacion 5olPresentacion 5ol
Presentacion 5ol
 

Más de Fernando Escolar Martínez-Berganza

Roslyn: Hello from the other compiler - dotNet Spain Conference 2016
Roslyn: Hello from the other compiler - dotNet Spain Conference 2016Roslyn: Hello from the other compiler - dotNet Spain Conference 2016
Roslyn: Hello from the other compiler - dotNet Spain Conference 2016Fernando Escolar Martínez-Berganza
 

Más de Fernando Escolar Martínez-Berganza (20)

Por qué todo lo que subo a azure esta mal
Por qué todo lo que subo a azure esta malPor qué todo lo que subo a azure esta mal
Por qué todo lo que subo a azure esta mal
 
Deconstrucción de SOLID
Deconstrucción de SOLIDDeconstrucción de SOLID
Deconstrucción de SOLID
 
Gapand - por qué odio git?
Gapand - por qué odio git?Gapand - por qué odio git?
Gapand - por qué odio git?
 
Betabeers - continuous deployment
Betabeers - continuous deploymentBetabeers - continuous deployment
Betabeers - continuous deployment
 
Devops RoadShow: load testing and autoscale
Devops RoadShow: load testing and autoscaleDevops RoadShow: load testing and autoscale
Devops RoadShow: load testing and autoscale
 
Roslyn: Hello from the other compiler - dotNet Spain Conference 2016
Roslyn: Hello from the other compiler - dotNet Spain Conference 2016Roslyn: Hello from the other compiler - dotNet Spain Conference 2016
Roslyn: Hello from the other compiler - dotNet Spain Conference 2016
 
Reconnect 2015 - ALM VSTS
Reconnect 2015 - ALM VSTSReconnect 2015 - ALM VSTS
Reconnect 2015 - ALM VSTS
 
Codemotion 2015 - Unit Testing
Codemotion 2015 - Unit TestingCodemotion 2015 - Unit Testing
Codemotion 2015 - Unit Testing
 
Unit testing en Windows 10
Unit testing en Windows 10Unit testing en Windows 10
Unit testing en Windows 10
 
Las cronicas de redis
Las cronicas de redisLas cronicas de redis
Las cronicas de redis
 
Redis: no solo una caché
Redis: no solo una cachéRedis: no solo una caché
Redis: no solo una caché
 
DotNet Conference: code smells
DotNet Conference: code smellsDotNet Conference: code smells
DotNet Conference: code smells
 
Foro de Arquitectos: caché en azure a fondo
Foro de Arquitectos: caché en azure a fondoForo de Arquitectos: caché en azure a fondo
Foro de Arquitectos: caché en azure a fondo
 
Codemotion: descubriendo las cachés
Codemotion: descubriendo las cachésCodemotion: descubriendo las cachés
Codemotion: descubriendo las cachés
 
Unit tesing y el mito de los 0 bugs
Unit tesing y el mito de los 0 bugsUnit tesing y el mito de los 0 bugs
Unit tesing y el mito de los 0 bugs
 
Mobile services by @quiqu3
Mobile services by @quiqu3Mobile services by @quiqu3
Mobile services by @quiqu3
 
Javascript no es vietnam
Javascript no es vietnamJavascript no es vietnam
Javascript no es vietnam
 
Where is my beer?
Where is my beer?Where is my beer?
Where is my beer?
 
Introducción a TDD
Introducción a TDDIntroducción a TDD
Introducción a TDD
 
Tests de carga en la nube
Tests de carga en la nubeTests de carga en la nube
Tests de carga en la nube
 

Último

R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 

Último (20)

R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 

Coding kihon + Zombie Code Survival Guide

  • 1. Fernando Escolar Pablo Bouzada Coding Kihon: mejora tus técnicas de programación BARCELONA DEVELOPERS CONFERENCE 2012 6 dic – 7 dic – 8 dic
  • 2. www.pasiona.com info@pasiona.com (+34) 669 333 333 @pasiona Barcelona Bilbao Madrid Londres Pujades 350, 10ª planta Gran Vía 19-21, 2ª planta Pinar 5, 1 Northumberland Avenue 08019 · Barcelona 48008 · Bilbao 28006 · Madrid London · WC2N 5BW
  • 3. Qué es Microsoft Innovación Pasión socio 100% alineado ligada a la mejora continua y basada somos grandes entusiastas de todo partner 100% especializado en las nuevas oportunidades tecnológicas aquello que creamos y vemos crecer Desarrollo Tecnología Experiencia capacidad para realizar proyectos de soluciones a cada una de las necesidades o la garantía de la habilidad derivada ámbito tecnológico con un fin de mejora empresariales que se platean en cada ámbito de años de vivencias y observación Especialización Conocimiento Valores humanos ofrecemos soluciones a medida con adquirido a través de la realización de guía de lo que hacemos y pretendemos las mejores herramientas tecnológicas proyectos, formación e innovación tecnológica que nos enseña y nos conduce día a día
  • 4. Servicios Consultoría Proyectos Auditoría Servicios profesionales Social Formación Media Innovación Azure
  • 5.
  • 6. Pablo Bouzada @pbousan pbouzada@pasiona.compbousan@techdencias.net Fernando Escolar @fernandoescolar fescolar@pasiona.com fernandoescolar@techdencias.net Quique Martínez @quiqu3 qmartinez@pasiona.com quiqu3@techdencias.net
  • 8. Agenda ¿Qué es un coding dojo? Pair Programming TDD SOLID Algunos trucos
  • 9. ¿Qué es un coding dojo?
  • 10. Las katas son pequeños ejercicios que nos ayudan a aprender. Dave Thomas – The pragmatic programmer
  • 13.
  • 14. SOLID
  • 15.  Single responsibility  Open-closed  Liskov substitution  Interface segregation  Dependency inversion
  • 16.  KISS  DRY  YAGNI  …  ¡¡Sentido común!!
  • 18. cuidado con los comentarios
  • 20. clases con muchos atributos métodos con muchos parámetros
  • 21. verbo + sujeto = peligro
  • 23. métodos que no llaman el propio objeto
  • 25. Kata FizzBuzz Existe un juego que se practica en Estados Unidos a la hora de beber unas copas con los amigos. Consiste en que cada uno vaya diciendo un número secuencial en orden. Pero con unas normas especiales. Las premisas son simples: Si un número es divisible entre 3 se dice “Fizz” Si un número es divisible entre 5 se dice “Buzz” Si es divisible entre 3 y entre 5 decimos “FizzBuzz” Queremos desarrollar un software que sepa jugar a este juego. Y para este fin sacamos una serie de especificaciones: Especificaciones unitarios para pruebas: Devuelvo el número que me toca: Cuando te paso 1, 2, 4, 13, 50, 72 devuelve el mismo número. Múltiplos de 3: Cuando te paso 3, 12, 39, 78 digo “Fizz” Múltiplos de 5: Cuando te paso 5, 10, 50,75, 95 digo “Buzz” Múltiplos de 3 y 5: Cuando te paso 15, 30, 60, 90 devuelvo “FizzBuzz”.
  • 26.
  • 27.
  • 28. this page has been left blank intentionally
  • 29. Pablo Bouzada @pbousan pbouzada@pasiona.compbousan@techdencias.net Fernando Escolar @fernandoescolar fescolar@pasiona.com fernandoescolar@techdencias.net Quique Martínez @quiqu3 qmartinez@pasiona.com quiqu3@techdencias.net
  • 31. Los zombis están de moda…
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48. @pbousan Q&A pbouzada@pasiona.compbousan@techdencias.net Fernando Escolar @fernandoescolar fescolar@pasiona.com fernandoescolar@techdencias.net Quique Martínez @quiqu3 qmartinez@pasiona.com quiqu3@techdencias.net
  • 49. BARCELONA DEVELOPERS CONFERENCE 2012 | 6 dic – 7 dic – 8 dic

Notas del editor

  1. El libro del que hemos sacado el título para esta charla, Apocalipsis Z de un escritor nacional, la serie TheWalkingDead, multitud de juegos como Plants vs Zombies, y, como no, Sálvame, el programa que más ha hecho por consumir los cerebros de los televidentes de este país...
  2. Ahora os preguntaréis, ¿a qué viene todo? Bueno, no es más ni menos que una metáfora. Personalmente me gusta hablar de las cosas técnicas usando metáforas, porque se entienden mejor y porque así puedo decir cosas malas sin que nadie se ofenda, porque no os voy a engañar, de lo que voy a hablar es sobre ... código de mierda que te encuentras por ahí. Pero queda mucho más molón referiste a eso como código heredado, deuda técnica o código zombi.Aquí va la metáfora:  El software esalgo vivo, como una persona, y si se infecta con el virus Z, va a degenerase y se convierte en zombie: camina, emite sonidos, realiza acciones básicas, pero ha dejado de ser algo vivo. El problema es que este código zombi no se pudre y se acaba descomponiendo, como le ocurriría a un cuerpo de un ser vivo. Sino que sigue vivo, no vivo no,... muerto, bueno, tampoco... sigue no-muerto (eso) mientras encuentre cerebros frescos de los que alimentarse. El casos es que esos cerebros frescos suelen ser los de los desarrolladores de un equipo de software, y sinceramente, si a un programador le quitas el cerebro, sólo te quedan un par de manos que teclean muy rápido y usan atajos de teclado para todo [Risas]
  3. Veamos un ejemplo de código zombi, este es muy significativo por lo mal hecho que está, y lo peor de todo es que ni siquiera hacía lo que se esperaba de él.Qué pasa cuando llegamos a este punto, que tanto el código como parte del equipo se han convertido en zombis??Entonces podemos decir que estamos en Zombieland!!
  4. Para el que no lo sepa, Zombieland es una peli que va sobre zombis, en la que salen, WoddyHarrelson, el que hace de Mark Zukemberg, la niña de Little Miss Sunshine y ... una tía con motosierra, que está buena, pero no sé quien es. Posiblemente es la mejor peli de zombis de la historia, al menos de las mejores que he visto… de las 2Y para qué os cuento esto, pues porque voy a aprovechar que en la peli se habla sobre las reglas para sobrevivir en zombieland, y eso es lo que vamos a hacer, vamos a presentar las reglas para acabar con el código zombie...
  5. La calidad debe ser un valor que se aplique a todos los niveles. Debe formar parte de la manera &quot;normal&quot; de hacer del equipo.
  6. SOLID – Patrones de diseño – TDD¿Cómo se detecta el código zombie? CodeSmell
  7. Que hayamos limpiado de código zombi nuestra pequeña parcela no quiere decir que el día de mañana no nos caiga encima una tras otra oleadas y oleadas de zombis con ganas de comerse nuestro cerebro.Es necesario acabar con el problema de raíz, a veces es por la desidia de uno o varios programadores, otras porque los clientes piden requisitos imposibles y no tenemos a nadie que les pare los pies, puede ser porque el equipo esté poco formado… sea cual sea el caso, esto provoca frustración y la frustración lleva al desanimo y el desanimo, a la ira, la ira al odio y el odio al código oscuro…
  8. No podía faltar una referencia a StarWarsEl tema es que hay que conseguir encontrar esas malas prácticas que se están repitiendo en el proyecto y acabar con ellas. Son los conocidos antipatrones, y para mencionar unos cuantos: Código espagueti, programación copy/paste, programación por permutación, el martillo de oro, …Cuando queráis os puedo dar otra charla sobre esto…
  9. No podía faltar una referencia a StarWarsEl tema es que hay que conseguir encontrar esas malas prácticas que se están repitiendo en el proyecto y acabar con ellas. Son los conocidos antipatrones, y para mencionar unos cuantos: Código espagueti, programación copy/paste, programación por permutación, el martillo de oro, …Cuando queráis os puedo dar otra charla sobre esto…
  10. Codereviews constantes, no para buscar los fallos de otros sino para aprender los unos de los otros. Para esto es imprescindible tener un espíritu crítico, primero con uno mismo y con su trabajo, y saber aceptar las críticas constructivas de los demás.Mejora continua: no sólo la formación, sino de los procesos. Cualquier proceso que sea largo y tedioso se dejará siempre para el final y será muy propicio a los errores. Hay que evitar esto, y lo podemos hacer con integración continua, despliegues continuos, … Mantener al equipo motivadoEn definitiva, hay que evitar la frustración.