Developing Frogtek

El blog del Departamento de Tecnología

Etiqueta: code kata

Katas diarias

Hace unas semanas se nos ocurrió retomar el tema de las Katas, y digo retomar porque hace un tiempo nos dio por hacer Katas una vez a la semana. Esta vez fue diferente, en vez de hacerlo con tanto tiempo de diferencia, nos planteamos hacerlas diariamente. En eso consiste la Kata, ¿no? en practicar, practicar y practicar.

Así pues, empezamos Julio, Pedro y yo con Katas diarias (más adelante se uniría Javier Martínez a la fiesta). Cada uno de nosotros se propuso un objetivo concreto con dichas Katas:

* Julio pretende mejorar su rapidez de desarrollo en Eclipse, aprendiendo teclas rápidas y trucos del IDE

* Pedro se propuso aprender emacs y mejorar su programación en este entorno (¡¡y vaya si lo está haciendo!! Ayer me enseñó unas cosas espectaculares, pero creo que eso se merece otro post)

* Yo, por otro lado, me propuse aprender Vim.

Y todos haríamos la Kata en un lenguaje diferente al que estamos habituados, en este caso, Python.

Cada semana elegíamos una Kata del repositorio de 12meses12katas y durante esa semana trabajábamos durante 25 minutos en esa Kata. Una vez pasado el tiempo, mostrábamos a los compañeros el código realizado y lo comentábamos entre todos. Al día siguiente empezaríamos de nuevo, desde cero.

Hace poco, cambiamos las reglas del juego. Ahora, lo que pretendíamos hacer es escoger una Kata y hacerla durante un mes. La primera semana la haríamos normalmente pero el resto de las semanas y hasta que acabase el mes nos pondríamos limitaciones, para explorar otras formas de resolver el problema y cambiar la forma de pensar. Se nos ocurrieron cosas como:

* Hacer la Kata solo con objetos, nada de primitivos. Encapsulamiento máximo

* Hacer la Kata en modo spaghetti-code. Nada de refactors

(Llevamos poco tiempo haciendo esto, así que solo se nos han ocurrido estas restricciones).

No puedo hablar por mis compañeros, pero creo que en general es una muy buena práctica. No solo mejoras en rapidez a la hora de desarrollar en un lenguaje en concreto si no que además, en nuestro caso, estamos aprendiendo otras herramientas de trabajo. 25 minutos al día, cada día. Es poco tiempo y aporta mucho.

 

Primera code kata en frogtek

Hoy hemos tenido la primera code kata. Jose ha preparado una magnifica sesión en la que hemos puesto el pomodoro a 25 minutos para elaborar una solución al problema del Fizz Buzz.

Hemos tenido soluciones muy elegantes, os paso esta por ejemplo de Alberto:

public class FizzBuzz {

	final static String FIZZ = "Fizz";
	final static String BUZZ = "Buzz";
	final static String FIZZBUZZ = "FizzBuzz";
	public static void main(String[] args) {
		for (int i=1; i<=100; i++) {
			System.out.println(getFizzBuzz(i));
			
		}
	}
	
	public static String getFizzBuzz (int number) {
		if (number % 15 ==0){
			return FIZZBUZZ;
		} else if (number % 3 ==0){
			return FIZZ;
		} else if (number % 5 ==0){
			return BUZZ;
		} else {
			return Integer.toString(number);
		}
	}

}

¿Algún comentario? ¿Mejora?

Hemos decidido hacerla en Java, la próxima irá en python y alguien por ahí ha dicho que en LISP.