Aug 17

Impedido para programar

Siempre que me pongo a programar, aunque sea una tontería, me pasa lo mismo. Me quedo bloqueado.

Como comenté en un post anterior, estoy haciendo un pequeño programa PHP para que la gente pueda apuntar en qué proyectos trabaja durante el mes y cuánto tiempo dedica a ello. Cosas del trabajo.

Me puse a ello. Lo primero, una tabla de base de datos para apuntar a los programadores y una serie de páginas php para que se puedan registrar, hacer login y, por supuesto, para que el administrador pueda administrar esa tabla: añadir, borrar y modificar usuarios.

Todo estupendo hasta este momento.

Iba a ponerme ahora con otra tabla de base de datos en la que se apunten los proyectos en marcha. Por supuesto hay que hacer otra serie de páginas php para administrar esa tabla: crear, borrar o modificar proyectos.

Ahí me he quedado bloqueado.

Es otra vez lo mismo. Otra tabla a la que  hay que hacerle nuevamente tres páginas php para lo mismo de antes, altas, bajas y modificaciones. Lo más cómodo, copy/paste de las de usuarios e ir modificando. Pero copy/paste desde mi punto de vista ¡¡es pecado!!. El código no debería repetirse. Hay que hacer lo posible por extraer lo común a una función o grupo de funciones y reutilizarlas.

Rápidamente, me puse a darle vueltas a la cabeza. Tendría que hacer unos ficheros de configuración que digan cómo son las tablas -o bien mirar directamente los metadatos de la base de datos- y luego hacer tres funciones que me den la página de alta, baja y modificación simplemente pasándoles el nombre de la tabla y qué campos son el identificador principal de la tabla. Seguramente sea necesario algún parámetro más.

Esto, por supuesto, lleva más tiempo que un copy/paste y hacerlo todo a piñón fijo, repitiendo el código cada vez que se presente una tabla. También es más versátil. Si se hace bien, te ahorrará un montón de trabajo cada vez que tengas que hacer una tabla con añadir, borrar y modificar. En contra, también, que el código resultante será mucho menos claro.

Y en eso estoy.

Una aplicación que me podía llevar una o dos semanas a ratos libres -estoy de vacaciones-, me va a llevar:

  • unos días para hacer la primera tabla
  • otro día para empezar la segunda tabla y ver que el copy/paste me vendría bien pero no quiero usarlo.
  • una semana entera para darle vueltas a si hago o no hago la cosa esa común/reutilizable para no utilizar el copy/paste.
  • otras dos semanas para ponerme a hacerla y meterme en complicaciones.
  • un minuto para mandarlo todo a la mierda. No acabaré el común/reutilizable porque es más complejo de lo que parece y no hago el copy/paste porque es pecado. La aplicación y yo nos quedamos bloqueados.
  • Varios meses para estar pensando: "debería acabar eso que tengo a medias…."

Pues eso, ahora mismo estoy en el punto 3, empezando la semana de darle vueltas a ver si hago o no la cosa común/reutilizable. Para este proyectito no merecería seguramente la pena, pero seguro que este proyectito no es el último.

¿No estais hasta las narices de hacer siempre lo mismo, una y otra vez tabla en base de datos, ventana de alta, de modificación y de baja?. ¿Haríais la cosa común/reutilizable?.

Entradas relacionadas:

  • No hay entradas relacionadas.

5 Responses to “Impedido para programar”

  1. Linea de Codigo Says:

    Esos pensamientos significa que estas evolucionando de programador a arquitecto software.

    Yo te recomiendo que hagas la pieza reutilizable….

    Espero que dentro de 3 meses no te acuerdes de mi familia… 😉

  2. Miguel Says:

    O utilizaria php on rails. Si es que existe 🙂

  3. Mike Says:

    jejeje… muy bueno.

    Algunas veces por querer hacerlo todo “perfecto” nos aburrimos y lo dejamos. Yo no le daría mucha importancia, no es una aplicación critica, ni la vas a vender, ni va a afectar de forma seria al rendimiento. Lo que importa es que gastes el menor tiempo posible en hacerlo. Busca a ver si hay alguna clase que pueda facilitarte el trabajo. En el fondo todo el mundo hace las mismas cosas.
    www(punto)phpclasses(punto)org
    Saludos y suerte

  4. Chuidiang Says:

    Bueno, veo que hay disparidad de opiniones.

    Casi me había decidido por la opción de Mike, lo mio no es la programación en php y supongo que lo importante es acabar pronto esta aplicacioncita.

    Sin embargo, línea de código, desde mi punto de vista tiene razón. Es mejor hacer las cosas bien.

    Quizás lo mejor sea tirar por la línea de en medio. Me quito esta aplicación rápidamente de encima y me planteo como siguiente proyecto PHP, ya con más tiempo, el componente reutilizable. Es posiblemente más trabajo, pero consigo mis dos objetivos: acabar rápido el “engendro” y quedarme satisfecho con el componente reutilizable.

    Sed buenos.

  5. Marcos Says:

    xD el “dejabu” de los programadores.

Leave a Reply