UTNianos

Versión completa: [Diseño] LLEGO LA HORA DE HACERNOS VALER
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
(29-03-2012 23:44)Aivan escribió: [ -> ]
(29-03-2012 15:56)el pibe escribió: [ -> ]Pero si en vez de diseñar, programas; que comparacion vas a hacer ?


A ver si nos entendemos

Primero diseñas, despues programas basado en ese diseño.

Si programas directamente.... donde esta el diseño ?

Mmmmmmm nono..... A ver.... Esa concepción no tiene mucho sentido de aplicación... Vos primero ante todo esbozas un buen diseño y a partir del mismo haces un startup y comenzas el desarrollo. Los vas modificando "on the fly" para adaptarse a tus necesidades y refinandolo de a poco. Hay gran dinamismo en el mercado hoy en día, los requerimientos no suelen ser muy estables (de ahí la necesidad de metodologías tipo Scrum y XP) y constantemente tenes que ir cambiando, por lo que no conviene diseñar primero y programar después, conviene crear una base estable y construir y modificar de ahí para adelante. Hoy en día te encontras con herramientas onda TDD (ya más adelante vas a verlo) que desde la programación (los tests específicamente) vas encontrando el diseño de tu sistema y puliendolo cada vez más. Sugiero que se lo preguntes al profe y fijate que te dice... Vas a ver que es necesario...

Saludos


es fija que los requerimientos cambian facilmente.

pero la posta es tener un diseño solido que sea adaptable.

Si programas directamente, cuando tengas que modificar algo, lo mas probable es que tengas que "hacer borron y cuenta nueva".

En cuanto al TDD, todos aprendemos a programar asi, solo que lo llamamos "a prueba y error"
Año 2012:

Martes mañana: Iriarte / Passerini.
Martes tarde: Passerini.
Miércoles noche: Dodino / xxxx.


Subir más data no está de más, para los que se quieran cambiar.
Jueves a la mañana me comentaron que esta Zaffaroni thumbup3
(30-03-2012 01:52)el pibe escribió: [ -> ]es fija que los requerimientos cambian facilmente.

pero la posta es tener un diseño solido que sea adaptable.

Si programas directamente, cuando tengas que modificar algo, lo mas probable es que tengas que "hacer borron y cuenta nueva".

Depende del dominio... Si se cae de maduro lo que tenes que hacer y los requerimientos son sumamente estables, planteas cascada y listo.

Cita:En cuanto al TDD, todos aprendemos a programar asi, solo que lo llamamos "a prueba y error"

Es necesario programar algo en Diseño, ya que es lo que te vas a encontrar en el mercado laboral hoy en día. En cuanto a TDD, es una demostración de lo que te digo ;).
(30-03-2012 12:38)Aivan escribió: [ -> ]Es necesario programar algo en Diseño, ya que es lo que te vas a encontrar en el mercado laboral hoy en día. En cuanto a TDD, es una demostración de lo que te digo ;).

No, ni ahi. Tenes que tener una base, llamala "diseño"


Si te mandas a programar a prueba y error, y ni siquiera tenes una base de que tenes que hacer, podes estar dias intentado tirar 4 lineas de codigo
Cita:En cuanto al TDD, todos aprendemos a programar asi, solo que lo llamamos "a prueba y error"

Emmm, no. No es lo mismo.

Prueba y error, es programar las cosas de un tiron, compilar, y ver (a mano) si funciona. Podes estar haciendo cosas de más, requerimientos que no te pidieron, etc...

TDD involucra programar primero los tests, orientandote a lo que queres hacer (requerimientos). A partir de ahi, vas diseñando tu aplicación. Envez de probarlo a prueba y error, tenes una forma automatizada.

La idea de "diseñar programando", viene de la mano de que empezar a dejar de lado practicas antiguas como el ciclo de vida en cascada. El hecho de diseñar programando, o de hacer tests automáticos, te da la posibilidad de tener un diseño completamente flexible, ya que ante cualquier cambio, tenes los tests que validan que los nuevos cambios no rompieron los requerimientos previamente aceptados por el cliente.

Muy de la mano de esto tenes el Behavior Driven Development, el cual traduce User Stories (requerimentos) a código. Es una manera de "formalizar" los requerimientos definidos en lenguaje natural.


El tema es que a medida que pasa el tiempo, muchas de las tareas se están uniendo para asi hacer un diseño más flexible, sistemas más cercanos a lo que el cliente necesita, e involucrando al cliente en sí.

Cita:Si te mandas a programar a prueba y error, y ni siquiera tenes una base de que tenes que hacer, podes estar dias intentado tirar 4 lineas de codigo

Si no sabes programar, menos vas a saber diseñar, mas allá de que te sepas toda la teoría. Son cosas que van de la mano.

Cita:Si programas directamente, cuando tengas que modificar algo, lo mas probable es que tengas que "hacer borron y cuenta nueva".

Eso si estás haciendo un sistemita para tu hermana en qbasic, en el cual encima no te importa la escalabilidad del mismo.

El dia de hoy, en varios lenguajes tenes herramientas para hacer refactoring. Si uno programa directamente, pero respetando ciertas "buenas practicas" (TDD, documentar, utilizar ciertos patrones GoF o GRASP, etc), entonces mutar tu diseño no es algo imposible. El tema es que hay que entrenar el ojo para poder decir "este diseño no va mas", y hay que tener huevos para que, cuando veas que algo está mal diseñado, no caigas en la tentación de emparchar, y sí, comiences a modificar tu diseño original.

TDD, por ejemplo, tiene 5 etapas: Hacer el test. Ver que falle. Programarlo. Ver que pase los tests. Refactorizar.


Es como tu cuerpo: Vos podes ponerte a comer como un lechon un día. Pero si no fumas, te cuidas, te mantenes, etc... entonces vas a estar en forma. Ahora, si comiste lechon todos los dias durante tres años, fumas y tomas a cagarte y terminas pesando mas de 150 kilos, entonces volver a estar en forma va a ser jodido, e incluso imposible para unos. En un sistema es igual.

Off-topic:
TDD se basa en la idea de dar pequeños pasos. Vos tenes tu diseño en la cabeza, pero no codeaste los metodos de cada objeto. Armas un test para un caso de uso con un input puntual, falla, codeas el metodo para que cumpla con eso, funciona. Entonces refactoreas para que cumpla con el siguiente input y asi vas de lo particular a lo general. Y asi vas haciendo con todos los casos de uso. Vas de casos hipersencillos a casos mucho mas complejos.

Y cuando digo hacer tests, el limite lo podes vos como programador. No hablo de clickear a mano botones. Hablo de unit tests, de tests de servicios, tests de controllers, tests de integracion, y hasta si queres algo de BDD (con cucumber o specflow). Lo bueno que trae todo esto es que a la hora de poner a prueba tu diseño y hacerle alguna modificacion, tenes un monton de tests automatizados que te permiten validar si rompiste otra cosa o no.

Esto es muy distinto a prueba y error
(30-03-2012 12:59)el pibe escribió: [ -> ]
(30-03-2012 12:38)Aivan escribió: [ -> ]Es necesario programar algo en Diseño, ya que es lo que te vas a encontrar en el mercado laboral hoy en día. En cuanto a TDD, es una demostración de lo que te digo ;).

No, ni ahi. Tenes que tener una base, llamala "diseño"

Si te mandas a programar a prueba y error, y ni siquiera tenes una base de que tenes que hacer, podes estar dias intentado tirar 4 lineas de codigo

No entiendo, una cosa es "diseño de software usando el paradigma X", otra es "diseño del 'sistema de información'". ¿A qué "diseño" te referís? ¿por qué vas a estar "dias intentando tirar 4 lineas de código"?
Creo que mejor explicación que la de Adriano y Pablo no voy a encontrar....thumbup3.
(30-03-2012 10:34)NykolaZ escribió: [ -> ]Año 2012:

Martes mañana: Iriarte / Passerini.
Martes tarde: Passerini.
Miércoles noche: Dodino / xxxx.


Subir más data no está de más, para los que se quieran cambiar.

Viernes Noche: Leone
(31-03-2012 22:39)nanuiit escribió: [ -> ]
(30-03-2012 10:34)NykolaZ escribió: [ -> ]Año 2012:

Martes mañana: Iriarte / Passerini.
Martes tarde: Passerini.
Miércoles noche: Dodino / xxxx.


Subir más data no está de más, para los que se quieran cambiar.

Viernes Noche: Leone

Miércoles noche: Dodino / Leone
Buena onda, completo con uno más.

Martes mañana: Iriarte / Passerini.
Martes tarde: Passerini.
Miércoles noche: Dodino / Leone.
Viernes noche: Leone.
Sábado tarde: Donadello.
Jueves mañana Zaffaroni

Donadello no era el jefe de catedra? No era que lo habian volado?
No sé, pero está. Y se mostró bastante conforme con las modificaciones que le dieron los nuevos profesores al programa de la materia.
Me llego la data que a Quiroga la volaron. Alguno sabe algo ?
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
URLs de referencia