[AprendiendoTDD] 12 Meses - 12 Lenguajes JAVA

46 views
Skip to first unread message

Aprendiendo TDD

unread,
May 22, 2014, 3:23:58 AM5/22/14
to tdde...@googlegroups.com
Hola a todos,

Aquí va el segundo lenguaje para iniciarse con el TDD. Uno de los retos que nos propusimos al iniciar el blog era que cada mes investigar como podemos empezar a aplicar TDD en un lenguaje. Este mes nos ha tocado JAVA. 


Esperamos que os sea útil.

AprendiendoTDD
LinkedIn: AprendiendoTdd group

Matias Mascazzini

unread,
May 22, 2014, 8:51:05 AM5/22/14
to tdde...@googlegroups.com
Hola,
¿Cómo les resulta la experiencia de aplicar TDD sobre un lenguaje que no conocen?

me surgen un par de interrogantes, sesgados por mi experiencia de tratar de aplicarlo sobre algo que no conocía...
lo hacen en el sentido más purista de la metodología, es decir si o si la prueba que falle primero. ¿Cómo resuelven cuando la prueba falla, si es porque aun no hay nada implementado o porque hay un error al escribirla o un error de interpretación de como funciona el lenguaje?

Mientras escribía este mensaje, estuve viendo que van llevando el mismo ejemplo por los diferentes lenguajes ¿Cómo hacen para no caer en un "pre diseño"? o ¿su idea es traducir un ejemplo común a 12 lenguajes?

La primer pregunta es la que más me interesa, las otras son mera curiosidad.

Saludos
Matías Mascazzini

Corrientes, Argentina

Me encuentras en:
LinkedIn: http://ar.linkedin.com/in/matiasmasca/es
Twitter: @matiasmasca
ComunidadTIC: @matiasmasca
---------
Le recomiendo visitar: www.ComunidadTIC.com.ar
"¿Eres Informático?"


--
Has recibido este mensaje porque estás suscrito al grupo "TDDev" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a tddev-sp+u...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a tdde...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/tddev-sp.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Francisco Calles

unread,
May 22, 2014, 12:31:32 PM5/22/14
to tdde...@googlegroups.com
La verdad que por ahora nos ha ido bien ya que llevamos 2 lenguajes que tienen grandes similitudes y no nos hemos encontrado con grandes problemas.

En cuanto al purismo, lo que hacemos es intentar seguir la técnica ya que si no seguimos la técnica lo que hacemos es algo parecido a TDD, como es lógico nos encontramos con algunos problemas pero son mas problemas con el desconocimiento del lenguaje que con la técnica.

La idea es publicar un post cada mes con lo necesario para empezar a aplicar TDD en un lenguaje, hemos empezado con los dos en los que nos encontramos mas cómodos. Pensamos que lo interesante de los post no la complejidad del ejemplo sino que con el tengamos las herramientas necesarias para empezar a utilizar TDD en ese lenguaje.

Un saludo y gracias por el aporte

 
Francisco Calles Hernández
@francalles

Matias Mascazzini

unread,
May 22, 2014, 4:17:38 PM5/22/14
to tdde...@googlegroups.com
De todas maneras la idea es muy buena, me pasa a menudo cuando comento sobre TDD o BDD a mis colegas me preguntan si se puede aplicar en su lenguaje. Así que seguro que sus post serán de referencia para cuando hagamos alguna kata por aquí.

Saludos
Matías Mascazzini

Corrientes, Argentina

Me encuentras en:
LinkedIn: http://ar.linkedin.com/in/matiasmasca/es
Twitter: @matiasmasca
ComunidadTIC: @matiasmasca
---------
Le recomiendo visitar: www.ComunidadTIC.com.ar
"¿Eres Informático?"


JJG

unread,
May 23, 2014, 3:54:47 AM5/23/14
to tdde...@googlegroups.com
Matías, sobre lo que preguntas de cuando la prueba falla, lo que yo hago es seguir trabajando en la prueba hasta que falla por el motivo adecuado. Por ejemplo, si tengo una prueba que verifica que el resultado de una función es el número 3, trabajo la prueba hasta que devuelve un número que no es 3 y ahí ya paso a la implementación.

Un saludo.

Matias Mascazzini

unread,
May 23, 2014, 9:26:07 AM5/23/14
to tdde...@googlegroups.com
Claro, que falle por el motivo adecuado es la idea principal. Pero cuando uno esta trabajando con algo desconocido eso no es tan fácil de detectar, por lo menos al principio; como que requiere que conozcas el lenguaje en cierta profundidad primero. Me esta pasando algo similar con un framework, a la hora de diseñar las pruebas sobre algo que todavía no sé muy bien como funciona me cuesta considerablemente diseñarla; luego cuando hago una prueba de algo similar, ya me resulta más fácil, por mera comparación con el primer caso que tuvo mayor esfuerzo. Es decir conocer lo que voy a probar, que todavía no existe, puede llegar a ser importante. Puede que la clave de la cuestión este en mirar sólo los mensajes de las aserciones.

¿Es recomendable aplicar TDD sobre un nuevo lenguaje que no conoces? o es mejor conocer primero el lenguaje/framework/tecnológica antes de aplicar TDD para el diseño de una solución particular que lo utilice?


Me parece muy buena la idea de los post, y seguiría siendo buena aun si no aplicaran la técnica en su totalidad, porque seguramente será el primer paso para muchos a este y otros mundos asociados.




Saludos
Matías Mascazzini

Corrientes, Argentina

Me encuentras en:
LinkedIn: http://ar.linkedin.com/in/matiasmasca/es
Twitter: @matiasmasca
ComunidadTIC: @matiasmasca
---------
Le recomiendo visitar: www.ComunidadTIC.com.ar
"¿Eres Informático?"


JJG

unread,
May 25, 2014, 4:45:45 AM5/25/14
to tdde...@googlegroups.com
Matías, para aplicar TDD es necesario tener claro cuál es el resultado esperado y cómo definirlo / modelarlo. A lo mejor estás aprendiendo algo nuevo aún no tienes una idea lo suficientemente precisa de cómo obtener un resultado para plasmarlo en una prueba.

Cuando aprendí Python, no aplicaba TDD sino que trabaja con la línea de comandos e iba viendo los resultados de las llamadas a los métodos. Esta forma de trabajar aún la sigo utilizando cuando quiero escribir algo que utiliza librerías nuevas.

En mi primera aplicación con Django tampoco usé TDD. Mi objetivo era aprender cómo se hacían las cosas con Django, como conectaba las URLs con los métodos, como generaba las responses, dónde tenía que poner las plantillas, etc. Ahora que lo sé, probablemente mi segunda aplicación sí sea TDD.

Espero que esto te ayude. Un saludo.

Eric Mignot

unread,
May 25, 2014, 10:17:48 AM5/25/14
to tdde...@googlegroups.com
Hola,

No sé porque pero esta mañana tengo animo para participar y añadir mi grano. Quizá sea las flores, el canto de los parajos en nuestro jardín, la piscina azul que intenta atraerme en sus brazos aun demasiado fríos, un optimismo general que me da ganas de compartir acerca de una de mi pasión, el tdd.

Lo que llamo tdd es varias cosas. De manera muy genérica, pienso que hacemos tdd en nuestra vida cotidiana. Tdd para mi es otra manera de decir que estas capaz de decir/compartir un deseo sobre un resultado antes de arrancar una acción. Mi ejemplo favorito : pregunto a mi hija de poner la mesa. Ella ha seguido un curso de tdd con Carlos y entonces me pregunta antes de empezar "que esperas sobre la mesa ?". 

A menudo leo mensajes, blogs o artículos que consideran que tdd viene con automatizacion de las pruebas. Y entonces consideran que - por ejemplo - utilizar la linea de comandos para aprender algo nuevo no es tdd. Pienso que lo es, con prueba visual/manual.

Para mi es siempre mas útil tomar consciencia de las pruebas que tenemos en mente antes de empezar algo. Es otra manera de decir que estamos capaz de compartir nuestra intenciones. Con código, si puedo escribirla mejor. Si la prueba es visual, sigue una prueba que ha sido imaginada y compartida antes de empezar.

Un abrazo,
Eric


Eric Mignot - +1 514 249 5545
Have you tried @YoseTheGame?
 

Matias Mascazzini

unread,
Jun 5, 2014, 4:26:08 PM6/5/14
to tdde...@googlegroups.com
Gracias por sus respuestas JJG y Eric.




Saludos
Matías Mascazzini

Corrientes, Argentina

Me encuentras en:
LinkedIn: http://ar.linkedin.com/in/matiasmasca/es
Twitter: @matiasmasca
ComunidadTIC: @matiasmasca
---------
Le recomiendo visitar: www.ComunidadTIC.com.ar
"¿Eres Informático?"


Reply all
Reply to author
Forward
0 new messages