Code Smells

O también conocidos como bad smells, se refiere a cualquier sintoma en el código fuente de un programa que posiblemente indica un problema mas profundo. No son bugs y en realidad no impiden que tu programa funcione correctamente, sin embargo, sugieren deficiencias que pueden generar tiempos de desarrollo mas extensos o riesgo de Read more…

Cifrar cadena en Base64 en Javascript

Gracias a mi amigo Gonzalo hace poco conocí las funciones atob y btoa de Javascript que sirven para cifrar una cadena de caracteres de manera que podamos enviarla a través de cualquier mecanismo (post, get, ajax, restful, etc) evitando perdida de información por el tipo codificación de caracteres y/o hacer visible la información que Read more…

Qué es Laravel?

Es un framework escrito en php que busca escribir código de manera elegante, evitando el llamado código espagueti.  Fue creado por Taylor Otwell en el año 2011 basandose en conceptos de Ruby On Rails y Asp .Net MVC. La influencia de Laravel ha crecido rápidamente desde su lanzamiento. En la comunidad Read more…

Obtener nombre de archivo de una ruta en ORACLE

A continuation les explicaré como crear una función que retorne el nombre de un archivo pasandole como parámetro la ruta del mismo. Para esto crearan la siguiente función en base de datos View the code on Gist. Y la ejecutan de la siguiente manera: View the code on Gist.

Visión para programar

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…

(more…)