test que español ejemplo driven development atdd tdd

tdd - que - ¿El desarrollo basado en pruebas es bueno para un principiante?



tdd wikipedia (14)

Ampliando esta pregunta sobre cómo aprendí a pasar de la descripción del problema al código. Dos personas mencionaron el TDD.

¿Sería bueno para un principiante entrar en TDD (y evitar los malos hábitos en el futuro?) ¿O sería demasiado complejo para una etapa cuando entender qué es un lenguaje de programación?


Experimentando las reglas de TDD

También creo que idealmente TDD sería muy útil en las primeras etapas de aprendizaje. En retrospectiva, sé que me ayudaría a abordar los problemas desde una perspectiva completamente diferente.

Lo que me deja perplejo es que cuando uno está aprendiendo, hay tantos conceptos nuevos que se absorben, que la confusión puede comenzar muy pronto. Por lo tanto, aunque creo que TDD sería muy útil, no creo que pueda ser algo que haya aprendido con éxito uno mismo.

Al igual que cualquier otra cosa en la vida, tendemos a aprender mejor cuando alguien nos está enseñando físicamente . Mostrarnos cómo abordan los problemas de una manera TDD puede hacer mucho más que leer sobre él en libros o en la web. Quiero decir, esto no puede doler, pero no es un sustituto de un mentor que realmente puede mostrarte las cuerdas.

Experimentar TDD lo es todo, así que si puedes hacer que alguien te enseñe a TDD durante esas primeras etapas, creo que el aprendizaje en su conjunto se acelerará más allá de lo que cualquiera esperaría.


¡Sí! Seguro.


Creo que no es bueno para alguien que acaba de aprender programación. ¿Cómo sabrá esa persona qué afirmar? : P TDD es para diseño, no para pruebas. Una vez que una persona sabe cómo programar, será bueno comenzar a estudiar el enfoque TDD.


Creo que sí. Los estudios incluso encontraron que los beneficios son mayores para los principiantes . Le da más orientación para escribir el código. Usted sabe cuáles deberían ser los resultados y el comportamiento, y escribe las pruebas. Luego escribes el código. Pruebas pasan Ya terminaste Y sabes que has terminado.


Mi lema de programación es:

  1. Hazlo funcionar: el programa resuelve el problema
  2. Haga las cosas bien: el programa está diseñado limpiamente y hay una pequeña cantidad de duplicaciones
  3. Hazlo rápido - optimizado (si es necesario)

Test Driven Development maneja los dos primeros.

Creo que a un principiante se le debe enseñar TDD para que sepa cómo ejecutar programas. En mi humilde opinión, solo entonces se pueden enseñar buenas técnicas de diseño.


Ojalá hubiera TDD cuando estaba aprendiendo a programar por primera vez, y que lo había recogido antes de quedar tan arraigado de la "vieja manera" que es muy difícil para mí aprender TDD ...


Primero debes entender cómo codificar bien. Lea, estudie y practique eso hasta que tenga un buen manejo del mismo. Una vez que tenga eso, mire en el diseño impulsado por la prueba: es muy poderoso.


Realmente depende de tu definición de "iniciador". Si por "iniciador" te refieres a alguien sin ningún tipo de formación en programación, entonces no, no creo que TDD sea una muy buena forma de comenzar. Un programador necesita aprender los conceptos básicos (evitar bucles infinitos, asignación de memoria, etc.) antes de preocuparse por la refactorización y el desarrollo impulsado por pruebas.


TDD está destinado a ser más simple que el método "tradicional" (de no probarlo hasta el final), porque las pruebas aclaran lo que usted entiende del problema. Si realmente no tienes una idea clara de cuál era el problema, escribir pruebas es bastante difícil.

Entonces, para un principiante, escribir pruebas hace que el jugo del pensamiento vaya en la dirección correcta, que es el comportamiento contractual, no el comportamiento de implementación.


Un beneficio importante de TDD es definir la cocción. En la programación algorítmica simple, si aparece un par de escenarios donde la corrección se afirma fácilmente, es fácil enumerarlos en una prueba unitaria y seguir codificando hasta que todos funcionen.

A veces las pruebas unitarias pueden ser difíciles para los principiantes, si hay muchas dependencias y comienzas a encontrar escenarios donde es necesario burlarse de los objetos.

Sin embargo, si puede hacer una declaración simple acerca de la corrección, y es fácil de escribir, entonces definitivamente anótelo en el código.

También puede observar que si una simple declaración de corrección no se describe fácilmente, es posible que no comprenda completamente su problema.

Buena suerte...


ciertamente es mucho para asimilar, pero una vez dicho esto, me gustaría comenzar a escribir pruebas unitarias. Lo que realmente hubiera sido bueno es si tuviera un mentor en mi lugar de trabajo que podría haber guiado mi progreso de TDD. He estado aprendiendo TDD de forma automática durante aproximadamente un año y hay mucho por cubrir y cuanto más lo haces, más involucrado está, pero en realidad está empezando a dar sus frutos ahora.


el código es código ya sea que sea lo que estás tratando de disparar, o una prueba.

Aprender TDD desde el principio tiene mucho valor. Es una de esas habilidades que debería ser un hábito. Hay muchos de nosotros que comprendemos y valoramos el valor del tdd pero años de programación han inculcado algunos hábitos que pueden ser difíciles de romper más adelante.

En cuanto a que TDD es para el diseño del contrato / implementación / prueba del código, es todas esas cosas. ¿Te llevará TDD al código perfecto? No, la experiencia y el estudio de la nave te ayudarán a madurar tus enfoques de codificación. Pero TDD es una herramienta muy importante para cada desarrollador.

El uso de TDD ayudará a llevarlo a un diseño comprobable. Y un diseño que es comprobable está en teoría bien encapsulado y debe adherirse al principio abierto abierto.

En mi opinión, siempre y cuando la gente vea TDD como algo que es una herramienta de nicho o de alguna manera es opcional mientras se escribe el código, esas personas obviamente no obtienen el valor de TDD.


def self.learn_tdd_and_programming_together? if you_have_tdd_mentor_sitting_next_to_you? "go for it" else if language.ruby? "it''s possible, there is quite a bit of good stuff out there that could give you a chance of learning programming with TDD from the start. It''s sort of in the ruby culture" elsif language.dot_net? "learn TDD after you learn the basics of .NET" end end end


Creo que este comentario ilustra que puede ser algo muy bueno para los principiantes aprender directamente.