MUCHAS GRACIAS LEANDRO, QUEDO CLARO.
SALUDOS,
ARIEL.
De: Leandro Minatel [mailto:leandro@minatel.com.ar]
Enviado el: miércoles, 20 de marzo de 2013 09:51 p.m.
Para: gx-l@gxtech.com.uy
Asunto: Re: [gx-l] Subrutinas
Hola Ariel, ¿cuando? bueno, es una pregunta un tanto amplia pero en mi experiencia pondria 3 motivos:
1- Para hacer mas claro el codigo
2- Para reutilizar codigo
3- Para optimizar
Para el punto 1, a veces conviene sacar codigo del programa principal para facilitar su lectura. Podrias tener en un procedimiento una rutina que se encargue del calculo de retenciones de Ingresos Brutos y llamarla desde el programa principal en lugar de tener el calculo dentro del codigo principal. De esta manera, su lectura es mas comprensible.
Para el caso 2, si dentro del mismo programa necesitas ejecutar 2 o mas veces el mismo codigo entonces conviene ponerlo en una subrutina y luego la llamas desde esos 2 puntos diferentes. Esto no solo facilita la lectura del fuente sino que tambien es mas facil de corregir en caso que haya un BUG en la rutina, se corrige una sola vez y aplica para todos.
Para el caso 3 y esto es una humilde opinion mia: Si la rutina del punto anterior necesitas ademas, utilizarla en otros objetos entonces convendria ponerla en un objeto nuevo y llamar a este nuevo objeto con un CALL o UDP. Lo interesante de esto es que la logica esta encapsulada en un solo objeto, si hay un BUG o nueva funcionalidad, solo debo modificar este objeto y aplica a todo el sistema. Pero esto, eventualmente, podria traer problemas de performance si las llamadas a este nuevo objeto son "repetitivas". Por ejemplo, si tuvieses una tabla con muchisimos registros y haces una llamada a un objeto mediante CALL o UDP por cada registro, la diferencia en performance sera peor que si este codigo estuviese en una rutina dentro de ese programa. Entonces aqui deberas tomar la decision si apuestas por la encapsulacion o por la velocidad. Si duplicas codigo (subrutina y objeto) entonces deberas acordarte que cuando modifiques esa logica, deberas hacerla en 2 lugares.
En la wiki hay un ejemplo:
http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Sub+Command,
Slds
2013/3/20 Ariel Dorssi <ariel.dorssi@integrait.com.uy>
Buenas noches, alguien puede explicarme cuando se deben usar subrutinas y darme algún ejemplo sencillo y claro como para entender?
Muchas gracias.
Ariel.
0 Response to "RE: [gx-l] Subrutinas"
Publicar un comentario