Todo programador debería ser un oráculo

Buenas noches queridos lectores, hoy quiero hablar un poco sobre las funciones que un programador debería contemplar a la hora de sentarse a planificar una aplicación web.

Voy a hablar desde mi propia experiencia en el campo, como programador seniors en PHP y MySQL, considero que

 

Un buen programador debe ver más allá de lo que el cliente le pide.

 

¿Que quiero decir con esto?

 

Considero que es deber del programador saber interpretar las necesidades del cliente y aprender a especular sobre el crecimiento o mejora que los módulos de la aplicación puedan llegar a tener.

Para que capten mejor la idea les voy a contar un caso que me ocurrió hace poco, en el que mi cliente me solicita que que en su sitio web de clasificados, cualquier persona pueda a través de un formulario publicar un producto para su venta.

Pues bien, la via fácil seria hacer exactamente lo que nos piden, entonces diseñamos un formulario con los campos que precisamos se carguen del producto y los datos de contacto del vendedor y guardo los mismos en una tabla dentro de una base de datos, o bien, puedo ir más allá y es aquí cuando digo porqué un programador deber ser un oráculo y pensar:

 

¿Que tal si una persona publica más de un producto o si publica nuevamente transcurrido un periodo de tiempo?

 

Bueno podríamos suponer esto y guardar los datos en dos tablas diferentes una para los productos y otra para los clientes de esta manera organizaríamos la información relacionando los productos con un determinado cliente evitando carga inecesaria en la bdd y hasta podríamos pensar en disminuir el tiempo a la hora de rellenar el formulario, consultando si el usuario ya se encuentra en la tabla cliente y en caso de existir, traer sus datos y autocompletar los campos.

 

¿Pero?

 

Entiendo perfectamente que mientras más complejo hagamos las cosas es más tiempo de programación que esto demandaría y por ende el producto final seria más caro. Sin embargo, prever estas posibilidades nos abre la mente para saber como desarrollar mejor las cosas y evitarnos dolores de cabeza en un futuro.

 

¿Entonces?

 

Sabiendo en lo que se puede convertir cada módulo hay que tratar de elaborar una base lo más flexible, limpia y dinámica posible para así, poder corregir, adaptar o incrementar nuevas funciones con mínimos cambios.

Buscar un punto intermedio entre lo que se espera que la aplicación haga y conseguir una estructura con dichas características es lo que suelo hacer.

Volviendo a nuestro ejemplo, lo que hice fue separar los datos en tablas PRODUCTO y CLIENTE, dejar el formulario con la información básica de carga, pero pese a que cada usuario deba ingresar nuevamente sus datos en cada nueva publicación tengo todo listo para lograr con pocos cambios mi idea de autocompletado o llegar al punto más complejo de tener que incorporar por Ej: registros de usuarios.

Deje un comentario