Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Modular design with TDD

Modular design with TDD

The slides we used during the workshop at http://conferencia2013.agile-spain.org.

It's only the exercise description. No explanations in it. Oh, and it's in spanish.

Javier Acero

October 10, 2013
Tweet

More Decks by Javier Acero

Other Decks in Programming

Transcript

  1. RESTRICCIONES: - Haz lo más simple que pueda funcionar. -

    Escribe el mejor código que puedas. - No hagas más de lo que pide la funcionalidad. - No introduzcas infraestructura si la funcionalidad no lo pide explícitamente. - No dependas de librerías si la funcionalidad no lo pide explícitamente.
  2. ITERACIÓN I Un usuario puede registrarse con un nombre de

    usuario. Por ejemplo: “@pasku1” Si otra persona se ha registrado usando ese mismo nombre de usuario se produce un error. 10min
  3. ITERACIÓN II Un usuario puede seguir a otros usuarios. Para

    hacerlo basta con conocer el nickname del usuario al que se quiere seguir. Cualquiera debe poder consultar a quién sigue un determinado usuario conociendo su nickname. 20min
  4. ITERACIÓN III Los registros de usuarios así como las listas

    de usuarios seguidos deben almacenarse de forma durable. 20min
  5. MÁS RESTRICCIONES: - Situar el código escrito hasta ahora dentro

    de un namespace llamado “core” - Usar el código escrito hasta ahora como si fuera una librería externa. - El código de esta iteración debe estar en un namespace diferente. - Ese namespace puede tener una única dependencia del “core”.
  6. ITERACIÓN IV Crear un mecanismo de entrega HTTP que permita

    acceder a la funcionalidad desarrollada hasta ahora. 30min
  7. ITERACIÓN V Un usuario puede publicar “roars”. El resto de

    usuarios deben poder consultar todos los “roars” que un usuario con un determinado “nickname” ha escrito. 20min
  8. ITERACIÓN VI Poner esta nueva funcionalidad disponible en mecanismo de

    entrega. Garantizar la durabilidad de los datos. 40min