Visión para programar

0
6

windowslivewritervisinparaprogramar-c787programacion-2

CÓMO NO HAY QUE ACTUAR:

– Me siento delante del ordenador, cargo los programas que necesito, defino tablas según se me ocurra (nombre, apellidos, dirección, teléfono) [10 minutos], me pongo a picar código, diseño las pantallas de la aplicación para que maneje altas, bajas, modificaciones y consultas [30′], engancho con la BBDD, hago las consultas, pruebo, corrijo, vuelvo a probar, veo que todo va bien [1h] y me tomo una cervecita y me digo que soy un monstruo…

TIEMPO = 2h
Aún me falta meter los datos de la gente para que me sea útil.

– Pero luego se me ocurre que, además del teléfono quisiera tener el móvil, así que me meto en la BBDD, toco la tabla para incluir un nuevo campo “movil” [5′], toco el código para que tenga en cuenta ese campo, lo que requiere redefinir las estructuras internas [10′], controles de diseño para albergar ese nuevo dato en altas, bajas, modificaciones y consultas [20′], meterle mano a las consultas a la BBDD [20′], probar, corregir, volver a probar [20′], ponerle comentarios al código [20′] y tomarme otra cervecita y decir… ahhh, ahora está como yo quiero.

TIEMPO: 2h, aproximadas.

– Voy a empezar a meter los datos de la gente que tengo, porque para probar sólo he metido algunos… y resulta que mi amigo Fulanito tiene dos teléfonos fijos y tres móviles. Joder, esto no lo soporta mi aplicación, me cago en la leche. Bueno, tampoco es tan difícil… Retoco la BBDD para tener en cuenta este cambio, por lo que ya no será una tabla, sino más… una para nombres, apellidos, dirección, código postal, provincia y lo que se me ocurra; otra para tener teléfonos (fijo, móvil) y una tercera que relaciones a estas dos (supongamos que es Access)… [30 minutos], retoco el diseño de la app. [40′], retoco las consultas y el código para que muestre lo que yo quiero [1h], pongo más comentarios [30′], pruebo, corrijo y vuelvo a probar [30′]… y me voy dando cuenta que el código ya no es tan “perfecto” como la “primera versión”, pero me digo que ya lo haré mejor, lo modularizaré y eso… Bueno, me tomo una cocacola, me fumo un pitillo y suspiro de orgullo pq ya tengo lo que quiero. Ya meteré al día siguiente todos los datos.

TIEMPO: 3h30′, más o menos

– Hablando con Mengano por el MSN me dice que sería mejor si incluyera el correo electrónico de cada uno para tener la agenda más completa. Joder, el puto email, pero mira que no ocurrírseme antes… mierda… Me pongo… [20′] para meter una tabla de emails y adaptar la BBDD, ya sabéis, relaciones y demás, [40′] para ajustar el diseño de las altas, bajas, modificaciones y consultas, [50′] para tocar el código y que haga bien las cosas, [40′] para reajustar, de nuevo, los accesos por código a la BBDD, [50′] para pruebas, puesto que ahora, casualmente, hay más “errorcillos” que tengo que corregir, [30′] para los comentarios al código… [50′] para meter los datos de la gente que tengo, para dejarlo todo fetén.

Nuevas pruebas para corregir los errores tras introducir nuevos datos [30′]. Entonces me digo que el código está un tanto desordenado, que los comentarios no son todo lo buenos que quiero, que el diseño podría mejorarlo mucho, pero que ya lo haré, que lo principal funciona. Jeje, soy el puto amo…

TIEMPO: 5h, aproximadamente.

– Ahora quiero meter a Sutanito, que es un colega del MSN, pero que no tengo su teléfono. Cuando voy a meterlo con mi superchachiprograma, resulta que la BBDD me obliga a introducir un teléfono, al menos, puesto que si no se descojona la integridad referencial.

Joder… eso no lo había tenido en cuenta. No es mucho… Retoco la BBDD, me saltan advertencias de relaciones, pruebo el código, veo que algo no anda bien, hago pruebas, sigo probando… Tras 2 horas, lo dejo todo, más o menos.
Al meter a Beatriz, que está como un queso, resulta que su teléfono es el mismo que Julia, puesto que son primas, pero la jodida base de datos no me deja meter un mismo teléfono para dos personas… vaya… una metedura de pata… Bueno… Arreglarlo me va a costar un tiempo, así que paso de hacerlo porque estoy hasta los huevos y decido poner en el nombre “Beatriz y Julia”.

Ya lo cambiaré. Además, me sale que Paco tiene un número de 8 cifras, en lugar de 9… joderrr… tenía que haber comprobado por código que tenían que ser 9 números, ni más ni menos, además de darme cuenta de que si meto una letra en el campo del teléfono, se me descojona la aplicación con un error fatal.

Vaya, otra comprobación que no hago. Y si Juan tiene 5 correos electrónicos, sólo he tenido en cuenta que pueda tener uno… Además, James Bond, un colega de USA, tiene un código postal distinto al de España y mi programa no lo acepta… vaya… otro fiasco… Y encima, Pepe que cumple 30 tacos, me dice que tiene una página web cojonuda y pienso que sería bueno tener una tabla o un campo más para albergar las páginas webs de mis colegas… bueno…mmm… un campo más en la tabla email… no es mucho… Joder… 30 tacos ya… ¿Y si pusiera la fecha de nacimiento de la gente? son sólo 3 nuevos campos… claro, y tocar el diseño de altas, bajas, modificaciones y suputamadre… digooo, consultas, consultas… y ya la repera sería que además, me avisara de los cumpleaños de la peña con la fecha del sistema.

Sí, todo es muy sencillo, pero meterme otra vez con este código, joer, la verdad es que no apetece nada… buf… lidiar otra vez con el procedimiento de altas… que se las trae… me da pereza solo pensarlo… bueno, voy a echar una partidita al counter y mañana me pondré…

Me voy apuntando las cosas en una libreta y me digo, ya lo haré, no es mucho, un par de horas a lo sumo… Otro día… En verano, que tendré tiempo. Mientras tiraré de la agenda de papel, que es super útil, joder, mejor que este follón.

Y en verano, cuando le echas un vistazo al código, te das cuenta que los comentarios no son buenos, que apenas te acuerdas de lo que hacía cada función o procedimiento, que la BBDD es una mierda y retocarla es peor que hacerla de nuevo… y que deberías haber estructurado mejor el código, porque un procedimiento con 280 líneas es demasiado grande y podrías subdividirlo… así no hay quien se entere. Te vas a la librería a comprarte una agenda de piel de puta madre, super nueva, cojonuda…

CÓMO HAY QUE ACTUAR:

– Me pongo un CD de música MP3, al gusto.
– Me hago con un montón de folios, lápiz, papel, goma de borrar, goma de la otra por si viene la parienta, sacapuntas, una latita de refresco…
– Pienso en cómo debería ser la base de datos, qué datos te serán útiles.
– Una tabla de datos personales, relacionada con una tabla de teléfonos, una de emails, una tabla de provincias para seleccionarlas desde la aplicación (eso le da caché), otra de países,
pues tengo colegas de otros países…
– Dibujo en un folio cómo sería la pantalla de introducción de datos, etiquetas por aquí, textboxes por allá, botoncitos por doquier, un gráfico chulo de fondo, combos o listbox para seleccionar países y provincias, y oye, como me queda sitio, un campo comentario para poner algo sobre cada colega, no sé, un nick o algo. Nicks, vaya, Juan tiene un nick en el foro muy chulo, sería bueno tenerlo en cuenta, así como las aficciones que tiene cada uno (y toco la BBDD sobre el papel) y ajusto el diseño, y pongo las PK y FK de las tablas, su cardinalidad, comento todos y cada uno de los campos, me hago un modelo conceptual de la BBDD y uno lógico (al físico le dan mucho por ahí).
– Ahora tengo ya más o menos todo, pero noto que puede faltarle algo, pero no sé el qué, así que cargo una agenda que tengo en el ordenador hecha por otro tío y me fijo en lo que tiene para ver si me da ideas… y voy añadiendo cosas, como poner relaciones entre la gente; Juan es hermano de Pepe, ese que cumple 30 años, tener en cuenta fechas de nacimiento, calcular la edad actual según la fecha de nacimiento y la fecha actual, aviso de cumpleaños… Joder, sería genial que la fecha se pudiera introducir mediante un objeto Calendario o algo parecido, le daría más vistosidad.
– Todo esto lo voy apuntando en la libreta. Cada cosa importante le asigno un identificador, puesto que es un requisito que tiene que cumplir la aplicación. Todos los requisitos debidamente numerados, detallados, explicados para IDIOTAS y agrupados por grupos: funcionales, operativos, de interfaz…
– Le comento a mis colegas lo que voy a hacer y si tienen alguna sugerencia. Paco me dice que sería estupendo tener una tabla de las novias o novios de la gente. Lo pienso, lo valoro y al final decido que no lo veo útil, pues tras consultar con un par de amigos más, me dicen que eso s una tontería, opinión qe comparto. Hablo con mi novia y le pregunto cómo le gustaría ver a ella la agenda en el ordenador. Mi novia, que no tiene ni warra de informática me dice que no sabe, que no tiene ni idea (típica respuesta). Entonces le enseñas tu proyecto, por encima, hasta que a ella se le ocurra algo como USUARIA de la aplicación, algo que a ti no se te ha pasado por la cabeza…Y te dice… Cariño, sería estupendo que pusieras los teléfonos de aeropuertos, bomberos, hospitales y cosas así, y te mira como preguntándose si ha sido una gilipollez lo que ha dicho. Le das un beso y te alegras… y lo metes… y la metes…
TIEMPO: NO IMPORTA… MIENTRAS MAS MEJOR…

– Ya lo tienes claro. Tus requisitos, cómo va a ser la BBDD, el diseño de las pantallas… todo… entonces es cuando decides ponerte a programar, porque antes no has tocado el ordenador para nada (bueno, quizá para jugar). ¿En qué lenguaje? ¿Con qué motor de base de datos?…

TIEMPO: UNA SEMANITA… pero al final tendrás una aplicación robusta, comentada (comentarios = 2 * número de líneas de código, como MÍNIMO), modular, estructurada, ordenada, funcional, probada, útil e impecable… Entonces, SI te tomas una cervecita y te fumas un cigarrillo y puedes decir que ERES EL PUTO AMO mientras guardas la documentación en una carpeta…
Y si dentro de 8 meses tienes que modificar algo por la razón que sea, será muy fácil hacerlo.

Comments

comments

Leave a Reply