Jump to content

Diseñar antes de programar


Recommended Posts

Eso de programar está guay, bueno, todo lo guay que se puede esperar de estar delante de un pantalla durante unas cuantas horas... Aún así, hay cosas peores. Bueno al tema, que ponerse a escribir líneas y líneas y líneas, pues sinceramente, la experiencia me dice que no está bien.

 

Yo era de llegar y poner a tirar líneas, pero después de unos días, suprimir y a empezar de nuevo.

 

Después de unos 13 años dándole a la tecla, tengo claro algo muy importante y me gustaría compartirlo con aquellos que os estáis iniciando en la programación: pensad bien las cosas antes de tirar líneas. No hace falta que os hagáis un documento de diseño, pero si tengáis claro: que queréis, arquitectura del sistema, interacción con el usuario, fuentes de errores, etc etc... Lo apuntéis en unas hojas y después, a teclear. No os hacéis una idea del tiempo que os ahorraréis en el futuro.

 

Así que futuros programadores de Objective-C, C#, java y demás mierdas, pensad antes de tirar una línea ;)

Link to comment
Share on other sites

Guest Darkness

Se refiere a cómo harás tus pantallas para que la interacción con el usuario sea fácil y sencilla. Por ejemplo en el simulador AWACS la carga de aviones y asignación de waypoints no es intuitiva. Habría que mejorarla. El tema errores se refiere a que los errores que aparecen cuando se ejecuta un programa deben ser convenientemente tratados con rigor y un sistema sólido. Muchos programas petan por no gestionar bien los errores y simplemente te tiran al escritorio.

Link to comment
Share on other sites

El tema de esquemas, ¿lo usáis?, ¿es útil?, diagramas de uso, de secuencia, de clases, etc etc?

 

Si y es un tema muy importante. El tener claro el concepto de lo que hace el programa, como se va a usar, entradas/salidas, etc. y tenerlo apuntado en algún papel, ayuda a programar y mantener el código de una manera impresionante.

Link to comment
Share on other sites

Clase 1 de Introduccion a la programacion.

 

El profesor nos dijo que escribieramos en un papel los pasos a seguir para freir un huevo.

Lo facil poner:

  1. Coger el huevo
  2. Freirlo

En este problema tan sencillo si te pregunto que utensilio usas para freirlo, me dices sarten, y si te pregunto que con que lo fries, puedes decirme otra vez que con una sarten, pero ya estas comentiendo un error por no pensar detenidamente todos los pasos necesarios para freir un huevo, porque el huevo se frien en realidad con aceite y se frien EN una sarten.

¿Y de donde sale el huevo? Del frigo. ¿Sale solo por ciencia infusa? ¿Y por que no se ha indicado en el proceso? ¿La sarten es de generacion espontanea o ya estaba en el fuego? etc, etc.

 

Una tarea tan sencilla y cotidiana como freir un huevo, para que quede realmente bien explicada y que alguien que no supiera absolutamente nada sobre huevos, sartenes, aceites, frigos...supiera freir un huevo sin la menor dificultad, vemos que en realidad deberia tener un monton de pasos que en principio habiamos obviado justamente por ser obvios, pero un ordenador solo sabe lo que nosotros le programamos y en la forma en la que se la programamos.

 

Aqui vemos que la planificacion y los esquemas previos a la codificacion del codigo propiamente dicho son muy importantes, por que en ellos reflejamos, o lo intentamos, todos los pasos que luego deberemos codificar para la resolucion de nuestro problema.

 

Si en el caso del huevo frito, tenemos en cuenta los casos en los que se nos caiga el huevo antes de freirlo, que no tengamos huevos o aceite, y en general todos los casos posibles que se nos ocurran que puedan interferir en la correcta sucesion de acciones que antes definimos para freir el huevo y esos casos los colocamos en su lugar correcto en la sucesion de acciones, seguidos de las acciones a llevar a cabo para solucionar los contratiempos y seguir con el proceso natural, estaremos realizando el tratameinto de errores solido y estructurado para que nuestra aplicacion sea capaz de manejar cualquier contratiempo sin errores inesperados.

 

 

 

RRRRIIIIIIIIIIIIIIIIIIIIIIIINNNNNNNNNNNNNNNNNNNNNNGGGGG!!!!!!!!!!!!!!!!!!!!

 

hora del recreo niños, ale al bocata y mañana mas :xd: :xd:

Link to comment
Share on other sites

Peroooooo, ¿simplemente tirando de papel y boli (o lápiz) se puede documentar con esquemas el funcionamiento?, o digo por todas las herramientas UML que hay por ahí y que al final no se si enredan más que ayudan o si por el contrario son una herramienta tan imprescindible como una sartén para freir un huevo (a mí tb me ha gustado la explicación cocinillas xD)

Link to comment
Share on other sites

A ver, debes diferenciar en programar para una empresa donde tienes que entregar esquemas, documentación, arquitectura, etc etc etc a programar para ti. Si programas para ti, debes de seguir el camino parecido al que haces para programar para una empresa, pero bajo mi punto de vista, sin ser tan exigente con tener un megadocumento contandote a ti mismo de todo.

 

Yo tiro de boli y pápel para empezar, hago mis esbozos, lo comento con la gente, luego veo como puedo estructurarlo, lo que espera un usuario, etc. Pero sin llegar a hacer un documento.

Link to comment
Share on other sites

Peroooooo, ¿simplemente tirando de papel y boli (o lápiz) se puede documentar con esquemas el funcionamiento?, o digo por todas las herramientas UML que hay por ahí y que al final no se si enredan más que ayudan o si por el contrario son una herramienta tan imprescindible como una sartén para freir un huevo (a mí tb me ha gustado la explicación cocinillas xD)

 

el uml es muy pro y vas a tener que aprender a usar dos cosas, primero el uml y luego el lenguaje de programacion.

Primero boli y papel y si eso ya al cabo del mucho tiempo te metes con el uml, pero para proyecto pequeños personales se queda grnade si o si.

El Awac simulator ya tiene un tamaño suficiente y debe tener un rigurosidad estricta, ya que esta orientado a la comercializacion, y puede ser util usarlo, pero no se si lo habran usado.

 

 

Esto de ser riguroso, concienzudo y ordenado a la hora de programar tambien te lo inculcan en ingenieria del software, que la frase que resumen la asignatura es:

 

"Si haces tonillos de forma industrial, fabricas 1000 al dia y sacas tu muestreo y te salen 100 mal, tienes un 10% de error en tu produccion.

Si haces un programa y vendes 1000 y te sale un error que hace que tu programa no funcione, tienes una tasa del error del 100% en tu produccion. Hay que producir software como si de cualquier elemento industrial mecanico se tratase y aplicando muchas de las tecnicas de seguimento y depuradion del proceso que se usan en entornos de produccion fisicos, pero aplicados y adaptados a la produccion de algo intangible como es un programa de ordenador."

Link to comment
Share on other sites

 

Clase 1 de Introduccion a la programacion.

 

El profesor nos dijo que escribieramos en un papel los pasos a seguir para freir un huevo.

Lo facil poner:

  1. Coger el huevo
  2. Freirlo

 

No se no se, para mi que el profesor que comentas lo conozco yo !!

 

Que, por cierto, buena moraleja y buena la explicación la que has dado, si señor :aplauso-6:

 

Salu2!!

Link to comment
Share on other sites

 

 

Clase 1 de Introduccion a la programacion.

 

El profesor nos dijo que escribieramos en un papel los pasos a seguir para freir un huevo.

Lo facil poner:

  1. Coger el huevo
  2. Freirlo

 

No se no se, para mi que el profesor que comentas lo conozco yo !!

 

Que, por cierto, buena moraleja y buena la explicación la que has dado, si señor :aplauso-6:

 

Salu2!!

 

¿Bienvenido o el Lazaro?

Link to comment
Share on other sites

¿Gestión de errores? eso es para los que no saben programar, mis programas no tienen errores :icon_mrgreen:

 

Fuera coñas lleváis toda la razón, pero el problema de no programar como se debe para mi se resume en dos casos:

 

1.- Que el señor que está delante del ordenador no es programador sino que sólo es escritor, escritor de aplicaciones y al que le faltan el resto de habilidades para poderse llamar programador y que hoy en día se dan por sentadas a cualquiera que sabe escribir programas.

 

2.- Que el programador tiene las capacidades para programar como se debe, pero no lo hace por dos posibles motivos:

 

2.1.Que por necesidades o imposiciones no hay tiempo material para hacerlo en condiciones a corto plazo, lo que es un error puesto que a medio/largo plazo queda demostrado, "vísteme despacio que tengo prisa"

 

2.2. Que no le sale de los cojones. Este creo que es el peor de todos los casos y que ha propiciado la causa que comento en el punto 1

 

Perdonar el tocho, pero cada día que paso me quema más el tema y me ha servido para desahogarme un poco :icon_mrgreen:

Link to comment
Share on other sites

El mio de programacion siempre me decia que programar se programa en cualquier parte: mientras vas al trabajo, esperando el autobus o por la tarde dando un paseo en bici, despues en el trabajo es donde tecleas codigo, teclear puede teclearlo cualquiera que sepa leer lo que dejemos escrito, escribirlo es otra historia.

Link to comment
Share on other sites

El mio de programacion siempre me decia que programar se programa en cualquier parte: mientras vas al trabajo, esperando el autobus o por la tarde dando un paseo en bici, despues en el trabajo es donde tecleas codigo, teclear puede teclearlo cualquiera que sepa leer lo que dejemos escrito, escribirlo es otra historia.

 

cagando es el sitio donde mejor se programa, ¿que nooo? :xd: :XD:

Link to comment
Share on other sites

Guest Darkness

La ducha, en la ducha (no en el baño, en la ducha) he resuelto muchos problemas. Luego también cuando un día algo se me encalla, si puedo lo dejo de lado y lo retomo al día siguiente. Muchas veces lo que el día anterior era cuesta arriba al siguiente es cuesta abajo.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

Some pretty cookies are used in this website