basándonos en las prácticas de los coding dojo, intentaremos mostrar cómo aplicar en vivo, conceptos de la programación orientados a la calidad.
-----
El código zombi es aquel que está infectado del virus de la mala calidad. Este virus provoca que el código se degrade poco a poco hasta corromper el sistema, se ejecute lentamente y consuma todos los recursos disponibles. Todo programador que entre en contacto con código zombi y no esté preparado puede infectarse y empezar a hacer código de mala calidad.
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
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”.
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...
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]
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!!
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...
La calidad debe ser un valor que se aplique a todos los niveles. Debe formar parte de la manera "normal" de hacer del equipo.
SOLID – Patrones de diseño – TDD¿Cómo se detecta el código zombie? CodeSmell
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…
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…
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…
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.