Funciones no utilizadas, cuales y como saber?

Funciones no utilizadas, cuales y como saber?

Postby Adolfo » Thu Feb 12, 2015 1:57 pm

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
----------
Asus TUF F15, 32GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1650
User avatar
Adolfo
 
Posts: 846
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile

Re: Funciones no utilizadas, cuales y como saber?

Postby joseluisysturiz » Fri Feb 13, 2015 12:08 am

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
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Funciones no utilizadas, cuales y como saber?

Postby sysctrl2 » Fri Feb 13, 2015 12:35 am

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
sysctrl2
 
Posts: 951
Joined: Mon Feb 05, 2007 7:15 pm

Re: Funciones no utilizadas, cuales y como saber?

Postby FranciscoA » Fri Feb 13, 2015 1:11 am

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.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Funciones no utilizadas, cuales y como saber?

Postby joseluisysturiz » Fri Feb 13, 2015 2:46 am

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!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Funciones no utilizadas, cuales y como saber?

Postby Carlos Mora » Fri Feb 13, 2015 9:22 am

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"
Carlos Mora
 
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Re: Funciones no utilizadas, cuales y como saber?

Postby acuellar » Fri Feb 13, 2015 12:36 pm

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
acuellar
 
Posts: 1593
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Funciones no utilizadas, cuales y como saber?

Postby Adolfo » Fri Feb 13, 2015 3:49 pm

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
----------
Asus TUF F15, 32GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1650
User avatar
Adolfo
 
Posts: 846
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile

Re: Funciones no utilizadas, cuales y como saber?

Postby FranciscoA » Fri Feb 13, 2015 7:35 pm

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.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Funciones no utilizadas, cuales y como saber?

Postby hmpaquito » Fri Feb 13, 2015 7:55 pm

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 los campos 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.
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Funciones no utilizadas, cuales y como saber?

Postby Carlos Mora » Mon Feb 16, 2015 8:18 am

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"
Carlos Mora
 
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Re: Funciones no utilizadas, cuales y como saber?

Postby hmpaquito » Mon Feb 16, 2015 8:34 am

Hola Carlos,

Tienes razón. En este foro se ha hablado alguna vez del profiler... viewtopic.php?f=6&t=27524&start=0&hilit=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.
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Funciones no utilizadas, cuales y como saber?

Postby joseluisysturiz » Mon Feb 16, 2015 7:16 pm

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!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Funciones no utilizadas, cuales y como saber?

Postby hmpaquito » Mon Feb 16, 2015 7:46 pm

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.
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Funciones no utilizadas, cuales y como saber?

Postby joseluisysturiz » Mon Feb 16, 2015 10:18 pm

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!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 91 guests