Tag Archives: methodologies

Roman Numerals Java kata

Continuing with kata series, here we have roman numeral kata. Simple, you have to convert roman to integer and integer to rman.

In order to improve other things I purpossed to follow KISS and SOLID principles. Also creating a Fluent Interface based on static methods:

  • convert(roman).toArabic();
  • convert(arabic).toRoman();

The movie on Youtube:

Kata code here: romannumerals-fluentinterface-solid.zip

Finally, a class diagram illustrating the Open/Close principle which I tried to follow, here we can add more numeric systems only by adding the corresponding Number subclasses (Octal, Hexadecimal,…):

Class Diagram

Roman Numerals Java kata

Siguiendo con la serie de katas, ahora toca la kata de los números romanos. Es simple, se trata de convertir de entero a romano y viceversa.

Para darle una vuelta de tuerca me he propuesto seguir los principios KISS y SOLID, que se recomienda tener en mente cuando refactoricemos. Y ya de paso me he propuesto implementar una Interfaz fluida basada en métodos estáticos:

  • convert(roman).toArabic();
  • convert(arabic).toRoman();

El video de la kata lo teneis en Youtube:

El código de la kata aquí: romannumerals-fluentinterface-solid.zip

Y por último un diagrama de clases que ilustra como el diseño respeta el diseño Open/Close, en tanto en cuanto fácilmente, añadiendo más subclases, podremos ampliar a tantos sistemas numéricos como queramos (Octal, Hexadecimal,…):

Class Diagram

String Calculator Java Kata

Con el fin de mejorar mi kunFu (mi TDD, mi Java, y mi oficio en general), pretendo hacer unas katas, y publicarlas aquí por si a alguien le interesa como las he resuelto, y se anima a resolverlas.

Me estoy basando en las katas de la web 12meses12katas (gracias @kinisoftware por tu esfuerzo en esta iniciativa!!).

La primera es StringCalculator, yo la he resuelto así:

El código os lo empaqueto aquí: String Calculator Java Kata. También lo podéis ver en el repo de Git Hub.

Espero que os divirtáis viéndolo  tanto como yo lo hice haciéndolo ( que sí, que me lo paso muy bien programando!!. Digo yo que no será tan raro, no? ;-P )