Funciones no utilizadas, cuales y como saber?

User avatar
Adolfo
Posts: 815
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile
Contact:

Funciones no utilizadas, cuales y como saber?

Post by Adolfo »

Hola fivewinners.

Estoy en plan de actualizar mis prg de utiles que me sirven en casi todos mis desarrollos, pero al hacerles mantencion y revisar su codigo me encuentro con la sorpresa que muchas veces tengo funciones que no utilizo en todo el sistema.

Existe una manera de saber cuales son las funciones que a pesar de estar incluidas en un PRG, no se utlicen.
Asi poder "limpiar" mi codigo.
A veces hacemos funciones pequeñas que las usamos solo en el desarrollo, pero que despues su codigo queda "dando vueltas por ahi".
Como saber cuales son ?

Eso.

Desde Chile
Adolfo
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Lenovo Legion Y520, 16GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1050
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: Funciones no utilizadas, cuales y como saber?

Post by joseluisysturiz »

A mi me paso algo parecido pero con el xEditor que uso busque el nombre de la funcion en todos mis prg...sino aparecia mas de una vez...quiere decir que ya no la usaba..y la eliminaba..obviamente antes de hacer todo eso...hice una copia previa de todos los prg...el detalle es que debes buscar funcion por funcion...yo tengo un prg que se llama general y alli meto todas las funciones que pueden llegar hacer usadas en algunos modulos...no se si abra alguna forma o algo al compilar o ejecutar que te determine que funciones fueron usadas...lo dudo un poco..pero uno nunca sabe...saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Re: Funciones no utilizadas, cuales y como saber?

Post by sysctrl2 »

ADOlfo.

Como dice Jose Luis,

en mi caso las funciones solo las tengo en FUNS.PRG

si quisiera saber que funciones se utilizan en todos los demas prgs del proyecto,
seria facil para mi,

oTxt := TTXTFILE():new( "funs.prg" )
oTxt:GoTop()
while ! oTxt:eof()
*** ......
oTxt:skip()
end

saludos..
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Funciones no utilizadas, cuales y como saber?

Post by FranciscoA »

Yo tambien tengo mis funciones de apoyo en un solo prg.
Si quiero saber que funciones no uso en un proyecto determinado, solo basta con renombrar una function a la vez y compilar.
Si no salta ningun error es que no se esta usando en ese proyecto. Continuar con el resto de funciones y compilar cada vez.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: Funciones no utilizadas, cuales y como saber?

Post by joseluisysturiz »

Parece que todos, un poco mas un poco menos, usamos la misma tecnica de un prg general..ahora por la pregunta de Adolfo y como ya dije...dependiendo de tu editor, en mi caso el que uso lo permite, tomo el nombre de la funcion, mando buscar ese nombre en todos los prg...si no hay mas de una coincidencia, quiere decir que solo esta en el prg GENERAL y no la uso en demas prg, asi que la elimino y si sobre la marcha llegase a necesitar alguna del archivo almacen de funciones generales..general.prg...entonces copiar y pegar y listo..asi solo uso las necesarias por cada aplicacion, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
Carlos Mora
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Re: Funciones no utilizadas, cuales y como saber?

Post by Carlos Mora »

El hecho de tener cada uno su propia biblioteca de funciones es común a todos los desarrolladores, pero tenerlas en un solo prg tiene ese problema, que esté o no referenciada va a ser incluída, porque en el enlazado siempre la unidad es el obj.
La mejor forma de manejar esto sería ponerlo como hace FiveWin en casi todas las funciones y clases, separandolas en prgs y compilandolas en una lib, y luego enlazar la lib en los proyectos. El enlazador va a incluir solo los objs que hagan falta, y no toda la lib, el enlazador haría el trabajo por nosotros.
Eso tiene como ventaja adicional que tenemos el código sin duplicarlo en todos los proyectos, que si mejoramos una función la mejora repercute inmediatamente en todos los lugares donde se usa, sino tenemos que ir copiando la mejora en cada uno de los proyectos.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
User avatar
acuellar
Posts: 1312
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Funciones no utilizadas, cuales y como saber?

Post by acuellar »

Al igual que muchos yo tengo en un PRG todas mis funciones que uso en varios sistemas, antes lo hacia con una LIB (tenia que compilarla después de un cambio)
También uso un .RES donde tengo todos mis recursos (botones, diálogos) comunes que uso en varios sistemas, y otro .RES donde solo tengo los diálogos, para cada sistema ya que varían.


Saludos,

Adhemar
Saludos,

Adhemar C.
User avatar
Adolfo
Posts: 815
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile
Contact:

Re: Funciones no utilizadas, cuales y como saber?

Post by Adolfo »

Gracias...

Las funciones reutilizables se van a una LIB.

Pero aun tengo funciones parasito, que quedaron de pruebas y tests que nunca borre en casi todos los prg especificos de un sistema.
Vere si mi editor me ayuda (MED)

Les cuento como me fue.

Saludos desde Chile
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Lenovo Legion Y520, 16GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1050
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Funciones no utilizadas, cuales y como saber?

Post by FranciscoA »

En mi caso, compilo con /ppo. De todos mis prgs obtengo un solo obj y ppo. Luego con cualquier editor de texto busco sobre el ppo y si la function aparece solamente una vez, es que no se usa en el proyecto.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Funciones no utilizadas, cuales y como saber?

Post by hmpaquito »

Se me ocurre que debe ser bastante facil hacer un programita que a partir del archivo .map obtenga las funciones _HB_FUN_xxxxxx y luego darse una vueltecita con memoread() y At() por todos los .ppo buscando la existencia de cada una de las _HB_FUN_xxxxxx. Se crearia una .dbf que contendria _ FUNCION y VECES. VECES indicaria el numero de "veces" que aparece la funcion en todos los fuentes (.ppo). ¡ qué buena es esta función para "refactorizar" (asi le llaman creo) los programas e imagínense... aquellas funciones top-50 son grandes candidatas a mejorar en velocidad y eficiencia, y las ultimas quiza a ser sustuidas por otras genericas y por supuesto las no usadas iran al baul del nunca jamas.
Carlos Mora
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Re: Funciones no utilizadas, cuales y como saber?

Post by Carlos Mora »

Hola paquito,

eso que dices se llama profiler y creo que existe. Hace bastante que no escucho de el, pero habría que echar una mirada al forum de Harbour.
Lo de ver la estadística de uso es complejo porque en general las aplicaciones tienen muchas opciones, y hay funciones que no se usan si no entras en una opcion determinada.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Funciones no utilizadas, cuales y como saber?

Post by hmpaquito »

Hola Carlos,

Tienes razón. En este foro se ha hablado alguna vez del profiler... http://forums.fivetechsupport.com/viewt ... t=profiler.
Hay un blog, que me recuerda un poco al tuyo, que lamentablemente ya no funciona, que tambien hablababa de internals http://cosadenegro.blogspot.com.es/2005 ... filer.html

En todo caso... el profiler requiere una version de (x)harbour con el profiler "enlazado". No sé si habrá alguna versión de (x)harbour por ahi montada que lo lleve activo. Me parece a mi que poca gente ha utilizado el profiler por la dificultad de tener que montar (x)Harbour profileado.

Mi propuesta, era que con un "poco mas" teniamos un extra...

Al final, hasta el profiler depende de como el usuario utilice el programa... de conocer qué hace el usuario con nuestro programa.

Saludos cordiales.
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: Funciones no utilizadas, cuales y como saber?

Post by joseluisysturiz »

Paquito, en parte tienes razon, pero la mejor forma de saber si la tienes para usar en algun modulo, como dije antes, es buscar el nombre de la funcion en todos tus prg del sistema en si, asi sabras si dicha funcion podria ser usada en algun momento, cosa que permite hacer el editor que uso e imagino que muchos por no decir todos lo permiten, mando buscar ejemplo... "borra_tabla(" en todos los prg, si aparece mas de una coincidencia, entonces si la uso en el sistema, de lo contrario la elimino, claro, esto lo hago en mi archivo GENERAL.PRG, donde tengo mis funciones que uso en todos mis sistemas pero que en algunos talves nunca los necesite..saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Funciones no utilizadas, cuales y como saber?

Post by hmpaquito »

Sí José Luis, pero creo que más allá de buscar una función concreta, podemos "aspirar" a obtener información de todas las funciones que NO se usan (esto NO lo da el profiler), y yendo un poco más allá, cuantas veces son usadas (invocadas) en los fuentes.

Como añadido se podría saber en qué fuente esta declarada una función. Eso facilitaría tener una lista automática de nuestras funciones y así tenerlas localizadas al momento, por no decir que si se genera la lista en html quizá podríamos invocar el fuente directamente para editarla.

Todo ello sería automático.
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: Funciones no utilizadas, cuales y como saber?

Post by joseluisysturiz »

Creo que haciendo una tabla o DBF lo primero seria agregar todos los prg relacionados al proyecto, luego por cada prg buscar la palabra FUNCTION o PROCEDURE, en mi caso uso mas procedure que funcion sino tengo nada que retornar, y luego hacer una busqueda de dicho nombre en todos los demas prg, si hay coincidencia, entonces agregarle que esta mas de una vez y en cual prg, asi sabemos si se usa en todo el proyecto y si se usa una sola vez, entonces iriamos a ese prg y eliminarla o lo que queramos hacer, creo que no es algo muy dificil, solo hay que dedicarse un poco, creo entre todos podemos, solo se debe iniciar...alguien que tome la batuta, pudiese hasta ser una clase para FW...digo...nose...saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
Post Reply