Coding kihon + Zombie Code Survival Guide
Upcoming SlideShare
Loading in...5
×
 

Coding kihon + Zombie Code Survival Guide

on

  • 680 views

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. ...

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.

Statistics

Views

Total Views
680
Views on SlideShare
441
Embed Views
239

Actions

Likes
2
Downloads
13
Comments
0

3 Embeds 239

http://programandonet.com 234
http://reader.aol.com 4
http://teresayricardo.azurewebsites.net 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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.

Coding kihon + Zombie Code Survival Guide Coding kihon + Zombie Code Survival Guide Presentation Transcript

  • Fernando EscolarPablo BouzadaCoding Kihon: mejora tustécnicas de programaciónBARCELONA DEVELOPERS CONFERENCE 20126 dic – 7 dic – 8 dic
  • www.pasiona.cominfo@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é esMicrosoft Innovación Pasiónsocio 100% alineado ligada a la mejora continua y basada somos grandes entusiastas de todopartner 100% especializado en las nuevas oportunidades tecnológicas aquello que creamos y vemos crecerDesarrollo Tecnología Experienciacapacidad 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ónEspecialización Conocimiento Valores humanosofrecemos soluciones a medida con adquirido a través de la realización de guía de lo que hacemos y pretendemoslas mejores herramientas tecnológicas proyectos, formación e innovación tecnológica que nos enseña y nos conduce día a día
  • ServiciosConsultoría Proyectos Auditoría Servicios profesionales Social Formación Media Innovación Azure
  • Pablo Bouzada @pbousanpbouzada@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 ProgrammingTDDSOLIDAlgunos trucos
  • ¿Qué es un coding dojo?
  • Las katas son pequeños ejercicios que nosayudan 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 clasesdemasiado largas
  • clases con muchosatributosmétodos con muchosparámetros
  • verbo + sujeto = peligro
  • nombres igualesdiferentes significados
  • métodos que no llaman el propio objeto
  • ocultar métodos heredados
  • Kata FizzBuzzExiste un juego que se practica en Estados Unidos a la hora de beber unas copas con los amigos. Consiste en que cadauno 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 @pbousanpbouzada@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&Apbouzada@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