por SolidEinyel - 11 Sep 2010, 19:59
-
Perfil básico de usuario
SolidEinyel
- Rango: Recién llegado
- Mensajes: 5
- Registrado: 11 Sep 2010, 19:51
- Estado: No conectado (últ. visita: 25 Oct 2010, 00:42)
- Puntos por aportaciones: 0
- 11 Sep 2010, 19:59
#238651
Pues no sé si os sorprenderá o no, o incluso alguno de vosotros estais titulados en ingeniería informática y también lo haceis.
Trabajo para una consultora multinacional en un proyecto en el que trabajamos esencialmente con Shell Scripts y PL/SQL. Trabajo en la parte de desarrollo, pero alguna vez me ha tocado mantener algún proceso o me he ojeado procesos que han hecho otros de mis compañeros, algunos de ellos ingenier@s informátic@s, según ellos. Pues resulta que multitud y multitud de veces me he encontrado que hasta es un mismo proceso(no digamos ya en procesos separados), en varias partes, había grupos de lineas que si no hacían lo mismo, que a veces si que lo hacían, sólo cambiaban en una o dos cosas, os pongo un ejemplo muy básico en pseudocódigo.
if X = 3
a = 1
b = 2
c = 3
d = 4
e = 5
f = 6
end if;
en otra parte del código pero así como os lo digo me vuelvo a encontrar:
if X = 3
a = 1
b = 2
c = 3
d = 4
e = 5
f = 6
end if;
en otra parte me encuentro algó así como:
if X = 5
a = 1
b = 2
c = 3
d = 8
e = 5
f = 4
end if;
etc ...
etc ...
osea que perfectamente esas líneas que tanto se repetían en todo el proceso, se podrian haber metido en un Procedure parametrizado ¿No es cierto?. Esto también lo aplico a las queries que muchas de ellas podrían ser perfectamente parametrizables, sin tener porque perjudicar en su rendimiento y así conseguir que en diferentes procesos no se vea una y otra y otra vez la misma select. También me he encontrado multitud de procesos que no disponen de ningún control para evitar hacer miles y miles (os aseguro que no os exagero) de selects iguales, algunas bastante pesadas contra la BD, durante la ejecución de un proceso, y os aseguro que esas selects tan repetitivas no se realizan por el hecho de que se piense en que los datos puedan cambiar inmediatemente y se quiera coger el dato más actualizado. En general, en la programación que se hace en mi proyecto, no se lleva una tendencia de que ni siquiera cuando se hacen desarrollos nuevos, se tengan en cuenta comandos nuevos (que sean compatibles con el entorno por supuesto), en absoluto, muchos lo hacen siempre por la vía tradicional, como os comentaba sin poner ningún esmero en repetir el menos código posible, es decir centralizar lo máximo posible, ni que el proceso tarde lo menos posible, no. Esto es algo que a mi personalmente me desquicia, porque no ha hecho ese proceso un cualquiera, no, lo ha hecho un ingeniero informático que debería de saber mucho en cuanto a optimización ¿No es así?
Cuando he hablado con algunos de esos ingenieros sobre esto, algunos me dicen, más o menos, que no se paran mucho a pensar en eso por falta de tiempos otros me dicen que hacer el código repetitivo es una manera de "atar" al cliente. Pero os aseguro que tener que cambiar en toda una base de datos algun detalle común a muchos procesos, y tener que tocar alomejor más de 30 procesos(packages, pls), alomejor en cada uno de ellos que salga más de 3 veces, es un auténtico suplicio.
Comentaros que simplemente soy Técnico Superior(Desarrollo de Aplicaciones Informaticas), pero si que siempre me esmero, en que el código sea claro, esté optimizado, los procesos tarden lo menos posible, y la verdad es que aunque algunos me digan que no centralizan el código por falta de tiempo, yo considero que lo hago rápido, pero ¿sabeis porque? Porque me he acostumbrado a eso.
¿Creeis que lo que se hace en mi proyecto es una mala práctica de la ingeniería?
¿Porque creeis que gente titulada universitaria hace eso, por dinero, porque no le gusta su trabajo..? ... Porque eso del tiempo y de sujetar al cliente para mi son simplemente excusas...
¿En la ingeniería informática en algún momento el catedrático dice que repetir código asi porque si es algo bueno?
Bueno espero que no os hayais aburrido con este ladrillo je je...
Saludos,
Trabajo para una consultora multinacional en un proyecto en el que trabajamos esencialmente con Shell Scripts y PL/SQL. Trabajo en la parte de desarrollo, pero alguna vez me ha tocado mantener algún proceso o me he ojeado procesos que han hecho otros de mis compañeros, algunos de ellos ingenier@s informátic@s, según ellos. Pues resulta que multitud y multitud de veces me he encontrado que hasta es un mismo proceso(no digamos ya en procesos separados), en varias partes, había grupos de lineas que si no hacían lo mismo, que a veces si que lo hacían, sólo cambiaban en una o dos cosas, os pongo un ejemplo muy básico en pseudocódigo.
if X = 3
a = 1
b = 2
c = 3
d = 4
e = 5
f = 6
end if;
en otra parte del código pero así como os lo digo me vuelvo a encontrar:
if X = 3
a = 1
b = 2
c = 3
d = 4
e = 5
f = 6
end if;
en otra parte me encuentro algó así como:
if X = 5
a = 1
b = 2
c = 3
d = 8
e = 5
f = 4
end if;
etc ...
etc ...
osea que perfectamente esas líneas que tanto se repetían en todo el proceso, se podrian haber metido en un Procedure parametrizado ¿No es cierto?. Esto también lo aplico a las queries que muchas de ellas podrían ser perfectamente parametrizables, sin tener porque perjudicar en su rendimiento y así conseguir que en diferentes procesos no se vea una y otra y otra vez la misma select. También me he encontrado multitud de procesos que no disponen de ningún control para evitar hacer miles y miles (os aseguro que no os exagero) de selects iguales, algunas bastante pesadas contra la BD, durante la ejecución de un proceso, y os aseguro que esas selects tan repetitivas no se realizan por el hecho de que se piense en que los datos puedan cambiar inmediatemente y se quiera coger el dato más actualizado. En general, en la programación que se hace en mi proyecto, no se lleva una tendencia de que ni siquiera cuando se hacen desarrollos nuevos, se tengan en cuenta comandos nuevos (que sean compatibles con el entorno por supuesto), en absoluto, muchos lo hacen siempre por la vía tradicional, como os comentaba sin poner ningún esmero en repetir el menos código posible, es decir centralizar lo máximo posible, ni que el proceso tarde lo menos posible, no. Esto es algo que a mi personalmente me desquicia, porque no ha hecho ese proceso un cualquiera, no, lo ha hecho un ingeniero informático que debería de saber mucho en cuanto a optimización ¿No es así?
Cuando he hablado con algunos de esos ingenieros sobre esto, algunos me dicen, más o menos, que no se paran mucho a pensar en eso por falta de tiempos otros me dicen que hacer el código repetitivo es una manera de "atar" al cliente. Pero os aseguro que tener que cambiar en toda una base de datos algun detalle común a muchos procesos, y tener que tocar alomejor más de 30 procesos(packages, pls), alomejor en cada uno de ellos que salga más de 3 veces, es un auténtico suplicio.
Comentaros que simplemente soy Técnico Superior(Desarrollo de Aplicaciones Informaticas), pero si que siempre me esmero, en que el código sea claro, esté optimizado, los procesos tarden lo menos posible, y la verdad es que aunque algunos me digan que no centralizan el código por falta de tiempo, yo considero que lo hago rápido, pero ¿sabeis porque? Porque me he acostumbrado a eso.
¿Creeis que lo que se hace en mi proyecto es una mala práctica de la ingeniería?
¿Porque creeis que gente titulada universitaria hace eso, por dinero, porque no le gusta su trabajo..? ... Porque eso del tiempo y de sujetar al cliente para mi son simplemente excusas...
¿En la ingeniería informática en algún momento el catedrático dice que repetir código asi porque si es algo bueno?
Bueno espero que no os hayais aburrido con este ladrillo je je...
Saludos,