https://foro.gambas-es.org/viewtopic.php?f=1&t=1776
-----------------------------------
santijav
Martes, 02 Agosto 2011, 18:04

Cómo Armar Mi Programa/código Para Poder Compartirlo
-----------------------------------
He desarrollado ya por algún tiempo y tengo varias aplicaciones para cubrir necesidades puntuales mías funcionando.

Desearía ir agregándole funcionalidades y para eso voy a probar distintos componentes (por ejemplo hacer gráficos de series de precios y demás)...

A aquellos que ya tienen experiencia en la programación, desearía me dieran tips/consejos sobre cómo desarrollar (por ejemplo, tengo varios programas que por más que suba todo el código, nadie va a saber la estructura de las base de datos y por tanto no les sería de utilidad), como comentar, etc... para que lo que desarrolle pueda ser compartido y utilizado por la comunidad...

Muchas gracias!


-----------------------------------
jsbsan
Martes, 02 Agosto 2011, 21:46

Re: Cómo Armar Mi Programa/código Para Poder Compartirlo
-----------------------------------
Santijav:
[quote], nadie va a saber la estructura de las base de datos [/quote]

Eso es fácilmente solucionable, puedes hacer un diagrama Entidad/Relación ([url=https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxjdXJzb2ZwZWFuYWxpc3RhZnVuY2lvbmFsfGd4OjUwNGEyNTFmMWMzOGY0MDQ&pli=1]ver este enlace para saber que es y como se realiza). 

A lo largo del código, incluye comentarios: que hacen las variables, funciones, procedimiento, etc,

Así lo harás mas legible, tanto para la comunidad como para ti mismo, porque con el paso del tiempo, uno llega a olvidar como hizo las cosas, y con los comentarios te ayudaran a recordarlo...

También te puedes fijar como comentan otros sus programas, para guiarte. 

También te pueden servir los apuntes del curso de analista programador que hice. [url=https://sites.google.com/site/cursofpeanalistafuncional/home]Curso de Analista Programador

Saludos


-----------------------------------
fabianfv
Martes, 02 Agosto 2011, 22:27

Re: Cómo Armar Mi Programa/código Para Poder Compartirlo
-----------------------------------
Hola santijav.

[quote]
Desearía ir agregándole funcionalidades y para eso voy a probar distintos componentes (por ejemplo hacer gráficos de series de precios y demás)... 
[/quote]
Es importante refactorizar el código antes de introducir cambios. Manejar una metodología de trabajo para hacer refactorizaciones te llevaría un buen tiempo, pero ello no quita que puedas comenzar a hacerlo tomando como guía unas pocas pautas.

Refactorizar el código es introducir modificaciones que no alteren la funcionalidad del programa. En ese sentido el resultado de la refactorización debe ser un programa con exactamente las mismas funcionalidades, pero con un código más ordenado, mejor estructurado, más fácilmente comprensible y, en consecuencia, al que se le pueden añadir nuevas características con mucha mayor facilidad y con un riesgo mucho menor de introducir errores de forma inadvertida.

A un nivel profesional la refactorización debe realizarse tomando como un apoyo fundamental las pruebas unitarias y una herramienta de gestión de código como svn, mercurial, git, etc. Sin embargo, podrías comenzar a realizar pequeñas refactorizaciones que aumenten la calidad de tu código sin tener que seguir un método tan riguroso.

Sobre esto escribiré esta semana en el libro: [url=www.comoprogramarcongambas.blogspot.com]Cómo programar con Gambas, porque me llevaría demasiado tiempo hacerlo aquí ahora.

[quote]
por ejemplo, tengo varios programas que por más que suba todo el código, nadie va a saber la estructura de las base de datos y por tanto no les sería de utilidad
[/quote]
Muchos motores de bases de datos te permiten crear un diagrama E/R o un esquema conceptual a partir de la misma base de datos. Si el que usás no tiene esas características podrías simplemente generar, también automáticamente, un script que permita recrear la base de datos (al leerlo cualquiera que conozca SQL puede entonces entender la estructura de la BD). Algunos motores de bases de datos también permiten crear información de resumen sobre la estructura de una base de datos de forma automática.

[quote]
como comentar, etc... para que lo que desarrolle pueda ser compartido y utilizado por la comunidad... 
[/quote]
Lo más importante es que el código sea auto-explicativo, es decir, que sea fácilmente comprensible. Para ello es necesario que los nombres de las constantes, variables, rutinas, módulos, clases, etc, sean significativos, que expresen correctamente para qué se usa ese elemento o qué es lo que hace. También que no uses abreviaturas al elegir esos nombres, ya que en la mayoría de los casos impiden que la lectura del código pueda ser fluida. Además, es necesario que tu programa esté correctamente modularizado.

Los comentarios deberías utilizarlos únicamente para declarar explícitamente el propósito de cada rutina (así es posible saber, al leer el código, si lo que hace una rutina es lo que se supone que debía hacer al comparar dicho comentario con el nombre de la rutina y con su código) y para explicar alguna porción de código que implementa una parte difícil de entender de algún algoritmo.

Saludos.


-----------------------------------
santijav
Miercoles, 03 Agosto 2011, 20:03

Re: Cómo Armar Mi Programa/código Para Poder Compartirlo
-----------------------------------
Gracias por los aportes!

Voy a tener en cuenta lo de la refactorización. Algo he hecho sin saber que lo estaba haciendo, cuando hacía mi código más simple pero brindando las mismas funcionalidades... El concepto que mencionas sin embargo es mucho más poderoso, voy a tratar de incorporarlo!

Lo de sql lo acabo de chequear. Tengo instalado phpMyAdmin (cuánto tiempo de prueba en consola ahorré desde que lo instalé) y tiene la opción de exportar la estructura, e incluso la estructura con los datos... incluso a formato sql para importarlo desde la consola... simplemente genial!

En fin... gracias por los consejos!


