Iniciando un Proyecto
Estaba sentado frente a mi laptop pensando en el siguiente tutorial, y aunque no lo crean hay veces que no se me ocurre nada. Sin embargo por alguna extraña razón mi mente empezó a recordar todos aquellos proyectos que empece y como ha evolucionado la manera en que los hago, todo esto me dió la idea de hacer un tutorial donde les mostraría más o menos la técnica que uso para crear un proyecto.
Espero que a alguien le sirva este tutorial y que llegue a hacer proyectos mejores con él.
Introducción
Hay diversas razones por las cuales uno decide iniciar un proyecto, ya sea por un trabajo, una tarea, o simplemente porque uno esta aburrido y quieres investigar lo que eres capaz de hacer. Pero no importa cualquiera de estos casos siempre tenemos que seguir un linamiento, unas reglas o formato sea cual sea con el cual plantearemos lo que queremos hacer.
Después de años de trabajar he llegado a usar un sistema que me sirve muchisimo y con el cual se me es más fácil trabajar y para este tutorial lo he separado ya en varios pasos que hay que seguir.
PASO 1 : Ideando lo Ideal
Aunque parezca tonto o incluso ridiculo el primer paso es...tambores por favor...SABER LO QUE QUEREMOS HACER (por favor disculpen mi poco sentido del humor).
No se rían pero es cierto, dejen les explico un poco, al inicio de mi vida como programador me encontraba escribiendo código y a las 1000 lineas de código me decía, ¿qué es lo que hago? ¿por qué no mejor hago esto o tal cosa?, era una lamentable pérdida de tiempo, y todo eso porque no medite un poco y pense en lo que quería hacer.
Es por ello que les digo que el paso 1, es idear lo que queremos, yo hago eso respondiendo preguntas como ¿qué? ¿por qué? ¿cómo? ¿para qué?, etc.
Como soy un amante de los ejemplos para este tutorial vamos a suponer que una compañia de seguros nos contrata para hacer un CGI en linea que saque presupuestos del costo de los seguros siguiendo una serie de preguntas que se les haría a los clientes. Sabiendo esto ya tenemos las primeras respuestas de ¿qué? y ¿para qué?, estamos en un bueno comienzo y nos lleva al paso 2 que es decidir que es lo que vamos a usar.
PASO 2 : Herramientas
En el paso anterior ya vimos el planteamiento inicial del problema, ahora es necesario ver que herramientas necesitamos para solucionarlo y si somos capaces de hacerlo o si necesitaríamos aprender algo nuevo.
NOTA: Algo importante que he aprendido es siempre conocer bien tus límites, nunca te metas en proyectos que al final podrías acabar no haciendo o peor, haciendo mal
En este caso hagamos la lista de cosas que tendríamos que saber y que utilizaríamos.
- 1 HTML - Debido a que quieren hacer un CGI es necesario que sepamos HTML para el diseño.
- 2 Javascript - Quizá lo necesitemos para checar formas, etc.
- 3 MySQL,Oracle,Postgres - Vamos a necesitar un database para ordenar todo los datos. (Costos, tipos de seguros,etc).
- 4 Perl - Por supuesto que debemos de conocer nuestro lenguaje de programación.
- 5 DBI - Debemos de saber como comunicarnos a nuestro database, usando este gran módulo.
Pues listo, ya tenemos nuestra lista de conocimientos necesarios para encaminarnos a nuestro proyecto, y sabemos que cumplimos con todas las necesidades.
NOTA: Para proyectos más complejos es necesario hacer una lista de conocimientos del propio lenguaje de programación.
Bien ya tenemos nuestra siguiente pregunta respondida ¿cómo?, ahora pasaremos al siguiente paso.
PASO 3 : Estructura
Muy bien ya que tenemos todo lo anterior anotado ahora veamos lo que sería la estructura ya más formada de nuestro proyecto, es decir es hora de escribir todas las funciones que tendrá nuestro proyecto, por ejemplo para este caso sería algo así:
- 1. Capacidad de checar presupuesto de seguros
- 2. Mecanismo de búsqueda
- ...
Así vamos llenando la lista con todas las cosas que queremos que nuestro programa haga, yo recomiendo que en este paso piensen realmente en todas las opciones, para que al estar en medio del proyecto no salga algo que se les haya olvidado.
PASO 4 : Interface
Siempre después de tener ya muy en claro lo que quiero lograr con el proyecto, lo primero que hago es la interface, y esto lo hago debido a dos razones:
1. Te permite ya deifinir mucho más la estructura general del proyecto debido a que tienes que hacer los menús, cada una de las páginas, ya sean formas, mensajes de error, etc. Simplemente te hace pensar en todas las posibilidades.
2. Al tener la interface lista tienes mucho más definido el orden en que tienes que ir haciendo el programa.
A parte de todo esto, lo que hace la diferencia entre un buen CGI y uno malo es un 50% la interface, pues esto va a marcar si va a servir para el usuario y si es cómodo y sencillo usar tu CGI, recuerda en pensar siempre en tus usuarios al hacer tu CGI, especialmente cuando haces CGI's que usarían personas que no estan acostumbradas al internet o a las computadores en si.
PASO 5 : Estilo de programación
Antes de inciar a hacer el código tienes que hacer un especie de contrato contigo mismo para decidir de que manera vas a escribir tu código. Este paso es realmente importante pues va a marcar la diferencia entre un código fácil de mantener y entender a uno que no lo es.
1. Lo primero que debes de decidir es si tu aplicación las vas a hacer modular o en un gran archivo, para que me haga a entender mejor: el modular es cuando separas las funciones en pequeños modulos para así hacer una librería, por ejemplo en este caso podríamos hacer un módulo llamado "Matematicas.pm" que tendría todas las funciones relacionadas a operaciones matemáticas; en el otro caso pones todas las funciones un un archivo grande exceptuando, como es lógico, a módulos de perl ya existentes.
Mi recomendación en este caso depende del caso: si va a ser un código de muchas lineas, digamos más de 3 o 4 mil, lo más seguro es que quieras separarlo en módulos lo que lo haría más fácil de atender, aparte de que así recordarías mejor cada función.
2. Antes de iniciar es importante de que decidas de que manera vas a escribir tus variables, hay varias maneras de hacerlo y aquí pongo unos ejemplos:
my $costoTotal; #Todo junto con cada palabra separada por una mayúscula
my $CostoTotal; #Mismo que arriba pero iniciando con mayúscula
my $costo_total; #Palabras separadas por _
my $Costo_Total; #Igual que el de arriba pero con mayúsculas
Estos son apenas unos ejemplos, pero no importando el estilo es sumamente importante que te mantengas a él para tener un código mas limpio. También es sumamente importante que el nombre de las variables sea descriptivo del contenido que tienen.
3. Siempre que nombres tus funciones dales un nombre que al verlo te haga entender lo que hace esa funcion. Funciones llamadas suma, resta, despliegue, etc. evitalas, mejor decide por suma_intereses, resta_operaciones, despligue_encabezado_html.
4. Siempre usa el pragma strict al hacer tus programas.
5. Nunca olvides usar la función exit() para salir del programa.
6. Siempre pon comentarios en todas partes, estos te serviran como guias cuando 1 año después veas tu código nuevamente.
Sigue todos estos puntos y tu código quedará sumamente limpio.
PASO 6 : Las Pruebas
Al terminar tu código recuerda siempre hacer pruebas, lanza tu programa en versión BETA y pide a varias personas que lo exploren, que intenten que falle, has la lista de cosas que fallaron corrigelas y vuelve a hacer el proceso, has esto hasta que ya no encuentres un error.
Nunca va a quedar tu aplicación perfecta e inmune de errores, pero intenta que haya el mínimo de errores posibles.
PASO 7 : El Soporte
Quizá sea buena práctica que hagas módulos de ayuda para tus aplicaciones, explicando como funciona, que es lo que uno tiene que hacer, etc. Aunque esto no afecta la aplicación en si, podrías empezar acostumbrandote a ello, creéme mucha gente lo apreciará.
CONCLUSIÓN
Les aseguro que podría haber mejores maneras de diseñar tu proyecto, pero estos pasos me han ayudado en la creación de proyectos, pequeños, medianos y de gran escala, y espero poder ayudar a muchas personas que no tienen ni idea de como comenzar.