Portada
mis comunidades
otras secciones
Soy el unico que se ha acordado de Futurama?
#2 Completamente de acuerdo contigo, es más, yo añadiria otro punto más aparte del color. La banda sonora. ¿Por qué decidieron desacerse de John Williams para intentar copiar a John Williams?
Mirad los dos teaser de Star Wars VII, gran culpa de que nos pongan los pelos como escarpias a todos la tiene la banda sonora de Williams, obviamente no lo es todo, pero si que es muy importante.
Mirad este año, Star Wars, Jurassic world y Terminator... a ninguno se les ha ocurrido cambiar la banda sonora. Creo que ese es otro gran fallo de esta pelicula.
Titular real : "Un policia de EEUU apunta con una pistola a dos adolescentes negros porque son negros."
#4 Vendiendo miedo, yo lo dijo Michael Moore en Bowling for Columbine.
#32 Si los Palestinos tuvieran el mismo poder militar Israel no tendria cojones de hacer lo que esta haciendo.
#11 Antes de sentarse a programar hay que escribir, eso es lo único que digo, ni flujo de ejecución ni nada, las ideas al papel.
#13 El papel es tan de los 2000... Ahora, antes de escribir código, deberías empezar por tus tests. Así no se te olvida lo que estás haciendo:
- Test, que falle
- Lo arreglas, commit
- Otro test, que falle
- Lo arreglas, commit
Así, te interrumpan cuando te interrumpan, puedes seguir donde estabas, ya que un test incluye bastante de lo que pensabas hacer en el código y a veces cómo pensabas abordarlo.
Típico test que está sin solucionar:
```js
var popup = popupModule.createPopup('#popup', '#trigger');
$('#trigger').trigger('click');
expect($('#popup').is(':visible').toBeTruthy()
```
Cuando me encuentro ese test que falla, sé perfectamente qué es lo que tengo que implementar.
#14 #15 #20 #25 #27 El TDD sólo sirve cuando la idea ya está avanzada. Si lo que estás haciendo es diseñar un componente desde cero, desde la idea abstracta, es absolutamente inútil.
TDD está bien para los desarrolladores puros, a los que se les dan las estructuras ya pensadas y lo "único" que tienen que hacer es programar (nótense las comillas en "único", no estoy despreciando esta tarea en absoluto). No han sido pocas las veces que he visto usar TDD para sistemas completamente nuevos y al final acabas programando dos veces: primero los tests, luego la implementación inicial, luego rehaces los tests porque te has dado cuenta de que necesitabas otras APIs diferentes y luego, finalmente, la implementación que encaje con los nuevos tests.
#29 El TDD sirve todo el rato,... TDD no significa que los tests no se puedan cambiar más adelante, borrar, o combinar... La idea del TDD es que no es sólo útil para que tu aplicación esté probada, sino para ayudarte a establecer un ciclo de trabajo y a pensar, antes de picar código, qué demonios es lo que quieres hacer.
Lo que es una tontería es ser super estricto y estar haciendo tests para cada pequeña porción de lógica que añades, pero pensar "outside-in" en lugar de "inside-out" es muy útil a la hora de hacer código que sea cómodo de usar.
Cuántas veces, antes de empezar a programar una clase, hemos hecho un pequeño boceto en código de cómo usaríamos esa clase... Pues bien, una vez esta uno acostumbrado a escribir tests, ese código que uno luego tiraría a la basura, lo hace en formato test, y esto ayuda muchísimo a ir hilando ideas...
Y como dice #30 no todo el mundo sabe hacer tests, y para mucha gente esto es poco productivo. Pero a mi me funciona para el 50-60% de código que hago... El truco es tener 10-15 estrategias distintas a la hora de afrontar algo, de plantearse cómo testearlo. No todo tiene que tener 20 mocks y 200 tests. Y no hay que ser talibán ni de TDD ni de lo contrario (no tener ni un santo test). A veces, con escribir 4 o 5 tests inicialmente para un código en el que trabajarás 4 horas es una aproximación muy válida. No siempre hay que tener esos mini-ciclos de un test, al menos es mi opinión, que eso no funciona para todo tipo de códigos.
Por ejemplo, el otro día programando el código de pathfinding de un juego, pues hacer TDD me ayudó a establecer qué formato iba a dar a los nodos y segmentos, y qué cosas iba a esperar... Fue entonces cuando me fui dando cuenta de cuándo quería ids de nodos, y cuándo píxeles... Si no hubiera hecho los tests primero, me habría dado cuenta a medias y tendría que haberlo cambiado todo 3 ó 4 veces.
#30 (y #32 y #34) Desde mi punto de vista, un desarrollador puro es alguien a quien le dan las interfaces/objetos/esquemas ya hechos y "sólo" tiene que modelarlo en la tecnología escogida.
No todo el mundo programa ni todo desarrollador hace sólo programación. De ahí lo de "puro". Alguien que sólo desarrolle, o sea, que sólo programe.
Te pongo un ejemplo que he tenido hace poco: estábamos tratando con crowdsourcing y necesitábamos un componente que pudiera verificar cómo de fiables eran los diferentes datos que se estaban subiendo. Todavía es una idea abstracta, no puedes definir ni tests ni interfaces ni nada. Ni siquiera tienes claro qué tipos de entradas y salidas vas a necesitar.
Durante las primeras horas (o días o incluso semanas), lo único que vas a hacer es leer fuentes, pensar, hacer algún esquema no muy concreto y hablar con gente que creas que puede aportarte ideas.
Ahí ni el TDD ni ninguna técnica de programación podrá ayudarte. Estás sólo tú con tus ideas felices.
TDD sólo sirve cuando la idea ya está avanzada, esquematizada y repensada. Que yo no sé vosotros, pero en mi trabajo eso suele ser menos de la mitad del tiempo.
#33 TDD sólo sirve cuando sabes lo que quieres hacer, como cualquier otra técnica de programación del mundo. De todos modos en ocasiones una aproximación con BDD y tratando de definir ejemplos de lo que quieres ayuda bastante, y si lo haces bien esos mismos ejemplos posteriormente se convierten en las pruebas de aceptación de tu sistema. Luego, la idea del "programador" como alguien que codifica en base a un diseño entregado por otro, vamos el waterfall de toda la vida, hace siglos que esta desterrada de cualquier equipo de programación medianamente competente, the design is the code decía jack reeves hace muchos, muchos años (dale al google y leete los artículos).
#32 En problemas puramente algoritmicos TDD no ayuda al diseño de algoritmos, para eso existen tecncias de algoritmia, en estos casos puede ser suficiente con tener algunos test iniciales y usarlos simplemente como método de comprobación para saber cuando hemos terminado, pero no como técnica de diseño del propio algoritmo, esto quedo bastante claro con el famoso asunto del sudoku y Ron Jeffries (uno de los integrantes del equipo original del proyecto C3 con Kent Beck donde se empezo a utilizar esto del TDD). Para el resto de problemas la aproximación en baby steps suele dar buenos resultados, tu código crece de manera mucho más sana, sobre todo si haces buen uso de la fase de refactor.
#36 EFfectivamente, TDD sirve cuando el proyecto ya está avanzado. Luego, volviendo al tema inicial del hilo, ni TDD ni hacer dibujitos ni nada similar te puede ayudar a la hora de simular ante los demás que estás trabajando más que cuando te sientas sencillamente en la silla (o vas andando, a mi me ayuda andar) mirando al infinito.
#29 Hombre, si te pones a picar código a lo loco, sin pensar un poco antes lo que quieres hacer y cómo estructurarlo, pues claro que no funciona. Pero es que tampoco te va a funcionar de otra manera, el código va a ser una locura hasta que se estabilice.
Llevamos 50 años de ingeniería del software por algo. Lo de ponerse a picar sobre la marcha puede servir para un script de tres al cuarto, pero para poco más.
#25 Tienes razón que en el sentido estricto no funciona del todo bien a la hora de diseñar algo. Pero por ejemplo, siempre se dice que diseñar un API es la mejor forma de diseñar un sistema, ya que ayuda a la hora de buscar qué tipo de uso se le va a dar al sistema.
Pues bien, si en lugar de usar papel y boli, se hace una base de datos y se programa un cliente del api en forma de unit tests (o tests de comportamiento), ese cliente (que se podrá ir cambiando, claro) es una documentación, una hoja de ruta perfecta. Y es cierto que en ese caso, lo ideal es ir en grupos de tests, no de uno en uno.
Nada mas fácil que coger papel y boli para evitar esas cosas...
#13 El papel es tan de los 2000... Ahora, antes de escribir código, deberías empezar por tus tests. Así no se te olvida lo que estás haciendo:
- Test, que falle
- Lo arreglas, commit
- Otro test, que falle
- Lo arreglas, commit
Así, te interrumpan cuando te interrumpan, puedes seguir donde estabas, ya que un test incluye bastante de lo que pensabas hacer en el código y a veces cómo pensabas abordarlo.
Típico test que está sin solucionar:
```js
var popup = popupModule.createPopup('#popup', '#trigger');
$('#trigger').trigger('click');
expect($('#popup').is(':visible').toBeTruthy()
```
Cuando me encuentro ese test que falla, sé perfectamente qué es lo que tengo que implementar.
#14 #15 #20 #25 #27 El TDD sólo sirve cuando la idea ya está avanzada. Si lo que estás haciendo es diseñar un componente desde cero, desde la idea abstracta, es absolutamente inútil.
TDD está bien para los desarrolladores puros, a los que se les dan las estructuras ya pensadas y lo "único" que tienen que hacer es programar (nótense las comillas en "único", no estoy despreciando esta tarea en absoluto). No han sido pocas las veces que he visto usar TDD para sistemas completamente nuevos y al final acabas programando dos veces: primero los tests, luego la implementación inicial, luego rehaces los tests porque te has dado cuenta de que necesitabas otras APIs diferentes y luego, finalmente, la implementación que encaje con los nuevos tests.
#29 El TDD sirve todo el rato,... TDD no significa que los tests no se puedan cambiar más adelante, borrar, o combinar... La idea del TDD es que no es sólo útil para que tu aplicación esté probada, sino para ayudarte a establecer un ciclo de trabajo y a pensar, antes de picar código, qué demonios es lo que quieres hacer.
Lo que es una tontería es ser super estricto y estar haciendo tests para cada pequeña porción de lógica que añades, pero pensar "outside-in" en lugar de "inside-out" es muy útil a la hora de hacer código que sea cómodo de usar.
Cuántas veces, antes de empezar a programar una clase, hemos hecho un pequeño boceto en código de cómo usaríamos esa clase... Pues bien, una vez esta uno acostumbrado a escribir tests, ese código que uno luego tiraría a la basura, lo hace en formato test, y esto ayuda muchísimo a ir hilando ideas...
Y como dice #30 no todo el mundo sabe hacer tests, y para mucha gente esto es poco productivo. Pero a mi me funciona para el 50-60% de código que hago... El truco es tener 10-15 estrategias distintas a la hora de afrontar algo, de plantearse cómo testearlo. No todo tiene que tener 20 mocks y 200 tests. Y no hay que ser talibán ni de TDD ni de lo contrario (no tener ni un santo test). A veces, con escribir 4 o 5 tests inicialmente para un código en el que trabajarás 4 horas es una aproximación muy válida. No siempre hay que tener esos mini-ciclos de un test, al menos es mi opinión, que eso no funciona para todo tipo de códigos.
Por ejemplo, el otro día programando el código de pathfinding de un juego, pues hacer TDD me ayudó a establecer qué formato iba a dar a los nodos y segmentos, y qué cosas iba a esperar... Fue entonces cuando me fui dando cuenta de cuándo quería ids de nodos, y cuándo píxeles... Si no hubiera hecho los tests primero, me habría dado cuenta a medias y tendría que haberlo cambiado todo 3 ó 4 veces.
#30 (y #32 y #34) Desde mi punto de vista, un desarrollador puro es alguien a quien le dan las interfaces/objetos/esquemas ya hechos y "sólo" tiene que modelarlo en la tecnología escogida.
No todo el mundo programa ni todo desarrollador hace sólo programación. De ahí lo de "puro". Alguien que sólo desarrolle, o sea, que sólo programe.
Te pongo un ejemplo que he tenido hace poco: estábamos tratando con crowdsourcing y necesitábamos un componente que pudiera verificar cómo de fiables eran los diferentes datos que se estaban subiendo. Todavía es una idea abstracta, no puedes definir ni tests ni interfaces ni nada. Ni siquiera tienes claro qué tipos de entradas y salidas vas a necesitar.
Durante las primeras horas (o días o incluso semanas), lo único que vas a hacer es leer fuentes, pensar, hacer algún esquema no muy concreto y hablar con gente que creas que puede aportarte ideas.
Ahí ni el TDD ni ninguna técnica de programación podrá ayudarte. Estás sólo tú con tus ideas felices.
TDD sólo sirve cuando la idea ya está avanzada, esquematizada y repensada. Que yo no sé vosotros, pero en mi trabajo eso suele ser menos de la mitad del tiempo.
#33 TDD sólo sirve cuando sabes lo que quieres hacer, como cualquier otra técnica de programación del mundo. De todos modos en ocasiones una aproximación con BDD y tratando de definir ejemplos de lo que quieres ayuda bastante, y si lo haces bien esos mismos ejemplos posteriormente se convierten en las pruebas de aceptación de tu sistema. Luego, la idea del "programador" como alguien que codifica en base a un diseño entregado por otro, vamos el waterfall de toda la vida, hace siglos que esta desterrada de cualquier equipo de programación medianamente competente, the design is the code decía jack reeves hace muchos, muchos años (dale al google y leete los artículos).
#32 En problemas puramente algoritmicos TDD no ayuda al diseño de algoritmos, para eso existen tecncias de algoritmia, en estos casos puede ser suficiente con tener algunos test iniciales y usarlos simplemente como método de comprobación para saber cuando hemos terminado, pero no como técnica de diseño del propio algoritmo, esto quedo bastante claro con el famoso asunto del sudoku y Ron Jeffries (uno de los integrantes del equipo original del proyecto C3 con Kent Beck donde se empezo a utilizar esto del TDD). Para el resto de problemas la aproximación en baby steps suele dar buenos resultados, tu código crece de manera mucho más sana, sobre todo si haces buen uso de la fase de refactor.
#29 Hombre, si te pones a picar código a lo loco, sin pensar un poco antes lo que quieres hacer y cómo estructurarlo, pues claro que no funciona. Pero es que tampoco te va a funcionar de otra manera, el código va a ser una locura hasta que se estabilice.
Llevamos 50 años de ingeniería del software por algo. Lo de ponerse a picar sobre la marcha puede servir para un script de tres al cuarto, pero para poco más.
#25 Tienes razón que en el sentido estricto no funciona del todo bien a la hora de diseñar algo. Pero por ejemplo, siempre se dice que diseñar un API es la mejor forma de diseñar un sistema, ya que ayuda a la hora de buscar qué tipo de uso se le va a dar al sistema.
Pues bien, si en lugar de usar papel y boli, se hace una base de datos y se programa un cliente del api en forma de unit tests (o tests de comportamiento), ese cliente (que se podrá ir cambiando, claro) es una documentación, una hoja de ruta perfecta. Y es cierto que en ese caso, lo ideal es ir en grupos de tests, no de uno en uno.
Lo raro es que a Antena3 no se le ocurriese antes...
Traducción: La diputada Milagrosa Martinez no deja su escaño porque no le sale del coño.
Joder como esta Mordor...
#3 Y sin mira telescopica...vaya tela el Simo Häyhä
Podía haberlo resumido en solo una...tener dinero
Para toda esta mierda podría haberse ido a EE.UU...
"Dicho de otra forma: los jóvenes confían más en McDonald's que en la Iglesia" Frase épica donde las haya...
Wiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii!!!!!!!!!!!!!!!
Al final los Simpsons tendrán razón
#2 Acuerdate que es de "Fucking master of the universe"
#6 Si, seria curioso que te pegaran un tiro para que no bebieras alcohol, que es malo para la salud...
El sector de establecimientos de ocio nocturno de Sevilla ha manifestado su intención de solicitar la colaboración del Ayuntamiento a la hora de llevar a cabo modificaciones normativas con el objetivo de paliar las grandes pérdidas registradas en este colectivo durante el año 2011, con una caída en la facturación que en Sevilla se cifra en el 80%.
Cómo han cambiado los tiempos, por suerte, los nazis han pasado de invadir media Europa a invadir campos de futbol en la liga europea. Y demasiado, aún, que invaden. Lo que tendrían que hacer es meterlos en la cárcel para que les invadan otras cosas en las duchas.
Visto que algunos siguen empeñados en ver a Carlo Palomino alias “El Pollo” como un joven estudiante victima de la extrema derecha, publico integro el siguiente post donde vemos la verdadera cara de un indeseable que fallecía victima de su violencia.
La banda norteamericana Pearl Jam revive estos días el estallido del "grunge" con la reedición de su primer álbum, Ten, que contribuyó de manera decisiva al despegue del género musical surgido en Seattle, su ciudad natal, a comienzos de los noventa.
Una nueva pesadilla se cierne sobre los internautas británicos, que podrían tener que afrontar el pago de 20 libras esterlinas al año de forma adicional sobre el coste de las líneas ADSL. Y todo, como siempre, para proteger a las industrias de la música y el cine.
En Gizmodo han estado probando Windows 7 Beta durante unos días y han logrado descubrir uno de los secretos del nuevo sistema operativo de Microsoft: nuestra vieja y querida Blue Screen of Death no ha desaparecido. Sigue vivita y coleando.
Hasta ahora todos los vídeos de Slow Motion que había visto convertían una escena normal en algo curioso, divertido o raro, pero nunca en una secuencia más propia de una película de terror. Via no puedo creer.
Toys'r'us ha sacado al mercado una nueva tabla Ouija para niñas.
¿Alguna vez habéis tenido que sujetar tanto tiempo vuestro vaso de cerveza (o cualquier otra bebida fría) y por el solo hecho de sujetarlo con la mano, se ha calentado? Pues eso es cosa del pasado gracias al sujeta vasos. Visto en No Puedo Creer.
Don Lafontaine, el mítico locutor estadounidense de los avances cinematográficos, falleció el pasado lunes en el hospital Cedar-Sinai de Los Ángeles a consecuencia de un fallo respiratorio. Serán muy pocos los que puedan asociar el nombre del locutor a una cara, pero serán también escasas las personas que no hayan escuchado uno de los 5.000 tráilers que firmó en más de 40 años de carrera.
Que en internet hay mucho porno es evidente, ahora bien, hacer este comentario indica el poco conocimiento que este hombre tiene del medio.
#35 Cierto. Fallo mio.
Soy el unico que se ha acordado de Futurama?
#2 Completamente de acuerdo contigo, es más, yo añadiria otro punto más aparte del color. La banda sonora. ¿Por qué decidieron desacerse de John Williams para intentar copiar a John Williams?
Mirad los dos teaser de Star Wars VII, gran culpa de que nos pongan los pelos como escarpias a todos la tiene la banda sonora de Williams, obviamente no lo es todo, pero si que es muy importante.
Mirad este año, Star Wars, Jurassic world y Terminator... a ninguno se les ha ocurrido cambiar la banda sonora. Creo que ese es otro gran fallo de esta pelicula.
Titular real : "Un policia de EEUU apunta con una pistola a dos adolescentes negros porque son negros."
#4 Vendiendo miedo, yo lo dijo Michael Moore en Bowling for Columbine.
#32 Si los Palestinos tuvieran el mismo poder militar Israel no tendria cojones de hacer lo que esta haciendo.
#11 Antes de sentarse a programar hay que escribir, eso es lo único que digo, ni flujo de ejecución ni nada, las ideas al papel.
#13 El papel es tan de los 2000... Ahora, antes de escribir código, deberías empezar por tus tests. Así no se te olvida lo que estás haciendo:
- Test, que falle
- Lo arreglas, commit
- Otro test, que falle
- Lo arreglas, commit
Así, te interrumpan cuando te interrumpan, puedes seguir donde estabas, ya que un test incluye bastante de lo que pensabas hacer en el código y a veces cómo pensabas abordarlo.
Típico test que está sin solucionar:
```js
var popup = popupModule.createPopup('#popup', '#trigger');
$('#trigger').trigger('click');
expect($('#popup').is(':visible').toBeTruthy()
```
Cuando me encuentro ese test que falla, sé perfectamente qué es lo que tengo que implementar.
#14 #15 #20 #25 #27 El TDD sólo sirve cuando la idea ya está avanzada. Si lo que estás haciendo es diseñar un componente desde cero, desde la idea abstracta, es absolutamente inútil.
TDD está bien para los desarrolladores puros, a los que se les dan las estructuras ya pensadas y lo "único" que tienen que hacer es programar (nótense las comillas en "único", no estoy despreciando esta tarea en absoluto). No han sido pocas las veces que he visto usar TDD para sistemas completamente nuevos y al final acabas programando dos veces: primero los tests, luego la implementación inicial, luego rehaces los tests porque te has dado cuenta de que necesitabas otras APIs diferentes y luego, finalmente, la implementación que encaje con los nuevos tests.
#29 El TDD sirve todo el rato,... TDD no significa que los tests no se puedan cambiar más adelante, borrar, o combinar... La idea del TDD es que no es sólo útil para que tu aplicación esté probada, sino para ayudarte a establecer un ciclo de trabajo y a pensar, antes de picar código, qué demonios es lo que quieres hacer.
Lo que es una tontería es ser super estricto y estar haciendo tests para cada pequeña porción de lógica que añades, pero pensar "outside-in" en lugar de "inside-out" es muy útil a la hora de hacer código que sea cómodo de usar.
Cuántas veces, antes de empezar a programar una clase, hemos hecho un pequeño boceto en código de cómo usaríamos esa clase... Pues bien, una vez esta uno acostumbrado a escribir tests, ese código que uno luego tiraría a la basura, lo hace en formato test, y esto ayuda muchísimo a ir hilando ideas...
Y como dice #30 no todo el mundo sabe hacer tests, y para mucha gente esto es poco productivo. Pero a mi me funciona para el 50-60% de código que hago... El truco es tener 10-15 estrategias distintas a la hora de afrontar algo, de plantearse cómo testearlo. No todo tiene que tener 20 mocks y 200 tests. Y no hay que ser talibán ni de TDD ni de lo contrario (no tener ni un santo test). A veces, con escribir 4 o 5 tests inicialmente para un código en el que trabajarás 4 horas es una aproximación muy válida. No siempre hay que tener esos mini-ciclos de un test, al menos es mi opinión, que eso no funciona para todo tipo de códigos.
Por ejemplo, el otro día programando el código de pathfinding de un juego, pues hacer TDD me ayudó a establecer qué formato iba a dar a los nodos y segmentos, y qué cosas iba a esperar... Fue entonces cuando me fui dando cuenta de cuándo quería ids de nodos, y cuándo píxeles... Si no hubiera hecho los tests primero, me habría dado cuenta a medias y tendría que haberlo cambiado todo 3 ó 4 veces.
#30 (y #32 y #34) Desde mi punto de vista, un desarrollador puro es alguien a quien le dan las interfaces/objetos/esquemas ya hechos y "sólo" tiene que modelarlo en la tecnología escogida.
No todo el mundo programa ni todo desarrollador hace sólo programación. De ahí lo de "puro". Alguien que sólo desarrolle, o sea, que sólo programe.
Te pongo un ejemplo que he tenido hace poco: estábamos tratando con crowdsourcing y necesitábamos un componente que pudiera verificar cómo de fiables eran los diferentes datos que se estaban subiendo. Todavía es una idea abstracta, no puedes definir ni tests ni interfaces ni nada. Ni siquiera tienes claro qué tipos de entradas y salidas vas a necesitar.
Durante las primeras horas (o días o incluso semanas), lo único que vas a hacer es leer fuentes, pensar, hacer algún esquema no muy concreto y hablar con gente que creas que puede aportarte ideas.
Ahí ni el TDD ni ninguna técnica de programación podrá ayudarte. Estás sólo tú con tus ideas felices.
TDD sólo sirve cuando la idea ya está avanzada, esquematizada y repensada. Que yo no sé vosotros, pero en mi trabajo eso suele ser menos de la mitad del tiempo.
#33 TDD sólo sirve cuando sabes lo que quieres hacer, como cualquier otra técnica de programación del mundo. De todos modos en ocasiones una aproximación con BDD y tratando de definir ejemplos de lo que quieres ayuda bastante, y si lo haces bien esos mismos ejemplos posteriormente se convierten en las pruebas de aceptación de tu sistema. Luego, la idea del "programador" como alguien que codifica en base a un diseño entregado por otro, vamos el waterfall de toda la vida, hace siglos que esta desterrada de cualquier equipo de programación medianamente competente, the design is the code decía jack reeves hace muchos, muchos años (dale al google y leete los artículos).
#32 En problemas puramente algoritmicos TDD no ayuda al diseño de algoritmos, para eso existen tecncias de algoritmia, en estos casos puede ser suficiente con tener algunos test iniciales y usarlos simplemente como método de comprobación para saber cuando hemos terminado, pero no como técnica de diseño del propio algoritmo, esto quedo bastante claro con el famoso asunto del sudoku y Ron Jeffries (uno de los integrantes del equipo original del proyecto C3 con Kent Beck donde se empezo a utilizar esto del TDD). Para el resto de problemas la aproximación en baby steps suele dar buenos resultados, tu código crece de manera mucho más sana, sobre todo si haces buen uso de la fase de refactor.
#36 EFfectivamente, TDD sirve cuando el proyecto ya está avanzado. Luego, volviendo al tema inicial del hilo, ni TDD ni hacer dibujitos ni nada similar te puede ayudar a la hora de simular ante los demás que estás trabajando más que cuando te sientas sencillamente en la silla (o vas andando, a mi me ayuda andar) mirando al infinito.
#29 Hombre, si te pones a picar código a lo loco, sin pensar un poco antes lo que quieres hacer y cómo estructurarlo, pues claro que no funciona. Pero es que tampoco te va a funcionar de otra manera, el código va a ser una locura hasta que se estabilice.
Llevamos 50 años de ingeniería del software por algo. Lo de ponerse a picar sobre la marcha puede servir para un script de tres al cuarto, pero para poco más.
#25 Tienes razón que en el sentido estricto no funciona del todo bien a la hora de diseñar algo. Pero por ejemplo, siempre se dice que diseñar un API es la mejor forma de diseñar un sistema, ya que ayuda a la hora de buscar qué tipo de uso se le va a dar al sistema.
Pues bien, si en lugar de usar papel y boli, se hace una base de datos y se programa un cliente del api en forma de unit tests (o tests de comportamiento), ese cliente (que se podrá ir cambiando, claro) es una documentación, una hoja de ruta perfecta. Y es cierto que en ese caso, lo ideal es ir en grupos de tests, no de uno en uno.
Nada mas fácil que coger papel y boli para evitar esas cosas...
#13 El papel es tan de los 2000... Ahora, antes de escribir código, deberías empezar por tus tests. Así no se te olvida lo que estás haciendo:
- Test, que falle
- Lo arreglas, commit
- Otro test, que falle
- Lo arreglas, commit
Así, te interrumpan cuando te interrumpan, puedes seguir donde estabas, ya que un test incluye bastante de lo que pensabas hacer en el código y a veces cómo pensabas abordarlo.
Típico test que está sin solucionar:
```js
var popup = popupModule.createPopup('#popup', '#trigger');
$('#trigger').trigger('click');
expect($('#popup').is(':visible').toBeTruthy()
```
Cuando me encuentro ese test que falla, sé perfectamente qué es lo que tengo que implementar.
#14 #15 #20 #25 #27 El TDD sólo sirve cuando la idea ya está avanzada. Si lo que estás haciendo es diseñar un componente desde cero, desde la idea abstracta, es absolutamente inútil.
TDD está bien para los desarrolladores puros, a los que se les dan las estructuras ya pensadas y lo "único" que tienen que hacer es programar (nótense las comillas en "único", no estoy despreciando esta tarea en absoluto). No han sido pocas las veces que he visto usar TDD para sistemas completamente nuevos y al final acabas programando dos veces: primero los tests, luego la implementación inicial, luego rehaces los tests porque te has dado cuenta de que necesitabas otras APIs diferentes y luego, finalmente, la implementación que encaje con los nuevos tests.
#29 El TDD sirve todo el rato,... TDD no significa que los tests no se puedan cambiar más adelante, borrar, o combinar... La idea del TDD es que no es sólo útil para que tu aplicación esté probada, sino para ayudarte a establecer un ciclo de trabajo y a pensar, antes de picar código, qué demonios es lo que quieres hacer.
Lo que es una tontería es ser super estricto y estar haciendo tests para cada pequeña porción de lógica que añades, pero pensar "outside-in" en lugar de "inside-out" es muy útil a la hora de hacer código que sea cómodo de usar.
Cuántas veces, antes de empezar a programar una clase, hemos hecho un pequeño boceto en código de cómo usaríamos esa clase... Pues bien, una vez esta uno acostumbrado a escribir tests, ese código que uno luego tiraría a la basura, lo hace en formato test, y esto ayuda muchísimo a ir hilando ideas...
Y como dice #30 no todo el mundo sabe hacer tests, y para mucha gente esto es poco productivo. Pero a mi me funciona para el 50-60% de código que hago... El truco es tener 10-15 estrategias distintas a la hora de afrontar algo, de plantearse cómo testearlo. No todo tiene que tener 20 mocks y 200 tests. Y no hay que ser talibán ni de TDD ni de lo contrario (no tener ni un santo test). A veces, con escribir 4 o 5 tests inicialmente para un código en el que trabajarás 4 horas es una aproximación muy válida. No siempre hay que tener esos mini-ciclos de un test, al menos es mi opinión, que eso no funciona para todo tipo de códigos.
Por ejemplo, el otro día programando el código de pathfinding de un juego, pues hacer TDD me ayudó a establecer qué formato iba a dar a los nodos y segmentos, y qué cosas iba a esperar... Fue entonces cuando me fui dando cuenta de cuándo quería ids de nodos, y cuándo píxeles... Si no hubiera hecho los tests primero, me habría dado cuenta a medias y tendría que haberlo cambiado todo 3 ó 4 veces.
#30 (y #32 y #34) Desde mi punto de vista, un desarrollador puro es alguien a quien le dan las interfaces/objetos/esquemas ya hechos y "sólo" tiene que modelarlo en la tecnología escogida.
No todo el mundo programa ni todo desarrollador hace sólo programación. De ahí lo de "puro". Alguien que sólo desarrolle, o sea, que sólo programe.
Te pongo un ejemplo que he tenido hace poco: estábamos tratando con crowdsourcing y necesitábamos un componente que pudiera verificar cómo de fiables eran los diferentes datos que se estaban subiendo. Todavía es una idea abstracta, no puedes definir ni tests ni interfaces ni nada. Ni siquiera tienes claro qué tipos de entradas y salidas vas a necesitar.
Durante las primeras horas (o días o incluso semanas), lo único que vas a hacer es leer fuentes, pensar, hacer algún esquema no muy concreto y hablar con gente que creas que puede aportarte ideas.
Ahí ni el TDD ni ninguna técnica de programación podrá ayudarte. Estás sólo tú con tus ideas felices.
TDD sólo sirve cuando la idea ya está avanzada, esquematizada y repensada. Que yo no sé vosotros, pero en mi trabajo eso suele ser menos de la mitad del tiempo.
#33 TDD sólo sirve cuando sabes lo que quieres hacer, como cualquier otra técnica de programación del mundo. De todos modos en ocasiones una aproximación con BDD y tratando de definir ejemplos de lo que quieres ayuda bastante, y si lo haces bien esos mismos ejemplos posteriormente se convierten en las pruebas de aceptación de tu sistema. Luego, la idea del "programador" como alguien que codifica en base a un diseño entregado por otro, vamos el waterfall de toda la vida, hace siglos que esta desterrada de cualquier equipo de programación medianamente competente, the design is the code decía jack reeves hace muchos, muchos años (dale al google y leete los artículos).
#32 En problemas puramente algoritmicos TDD no ayuda al diseño de algoritmos, para eso existen tecncias de algoritmia, en estos casos puede ser suficiente con tener algunos test iniciales y usarlos simplemente como método de comprobación para saber cuando hemos terminado, pero no como técnica de diseño del propio algoritmo, esto quedo bastante claro con el famoso asunto del sudoku y Ron Jeffries (uno de los integrantes del equipo original del proyecto C3 con Kent Beck donde se empezo a utilizar esto del TDD). Para el resto de problemas la aproximación en baby steps suele dar buenos resultados, tu código crece de manera mucho más sana, sobre todo si haces buen uso de la fase de refactor.
#29 Hombre, si te pones a picar código a lo loco, sin pensar un poco antes lo que quieres hacer y cómo estructurarlo, pues claro que no funciona. Pero es que tampoco te va a funcionar de otra manera, el código va a ser una locura hasta que se estabilice.
Llevamos 50 años de ingeniería del software por algo. Lo de ponerse a picar sobre la marcha puede servir para un script de tres al cuarto, pero para poco más.
#25 Tienes razón que en el sentido estricto no funciona del todo bien a la hora de diseñar algo. Pero por ejemplo, siempre se dice que diseñar un API es la mejor forma de diseñar un sistema, ya que ayuda a la hora de buscar qué tipo de uso se le va a dar al sistema.
Pues bien, si en lugar de usar papel y boli, se hace una base de datos y se programa un cliente del api en forma de unit tests (o tests de comportamiento), ese cliente (que se podrá ir cambiando, claro) es una documentación, una hoja de ruta perfecta. Y es cierto que en ese caso, lo ideal es ir en grupos de tests, no de uno en uno.
Lo raro es que a Antena3 no se le ocurriese antes...
Traducción: La diputada Milagrosa Martinez no deja su escaño porque no le sale del coño.
Joder como esta Mordor...
#3 Y sin mira telescopica...vaya tela el Simo Häyhä
Podía haberlo resumido en solo una...tener dinero
Para toda esta mierda podría haberse ido a EE.UU...
"Dicho de otra forma: los jóvenes confían más en McDonald's que en la Iglesia" Frase épica donde las haya...
Wiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii!!!!!!!!!!!!!!!
Al final los Simpsons tendrán razón
#2 Acuerdate que es de "Fucking master of the universe"
#6 Si, seria curioso que te pegaran un tiro para que no bebieras alcohol, que es malo para la salud...
RamsysangelitoMagno Na, era un poco coña, es como que ahora es de verdad y esta a la vuelta de la esquina y no en mayo, así de sopentón , no me hagais mucho caso
@Joaqui El PP ya tiene programa: http://www.pp.es/nuestras-ideas
5x06 de Lost pal que le interese...http://karchedon.blogspot.com/2009/02/lost-perdidos-s05e06-5x06-506.html
Más música, esta vez los amos --> http://www.tu.tv/videos/pearl-jam-porch-unplugged-
Perdido me hayo --> concretamente el en 5x04
http://karchedon.blogspot.com/2009/02/lost-perdidos-s05e04-5x04-504.html
#35 Cierto. Fallo mio.