Consultorio Tecnologico: Por qué conviene eliminar los objetos no alcanzables de una KB?

Un colega que no tengo el gusto de conocer personalmente me preguntó porque recomendaba eliminar objetos no alcanzables de una KB, como había recomendado en un post de KBDoctor.

La pregunta al principio me sorprendió porque me parecía de respuesta obvia, pero él argumentaba la pregunta, diciendo que si en algún momento desarrollé un objeto, era conocimiento que convenía mantener y la mejor forma de mantenerlo era tenerlo a mano dentro de la KB.

Para mi, la KB que genera el sistema que se pone en producción, tiene que tener lo estrictamente necesario para que los usuarios ejecuten la aplicación y absolutamente nada mas. Cualquier cosa que sobre (ya sea imágenes, temas, sdt y cualquier cosa) debe ser eliminado.

Porque borrar todo lo no usado?

  • Minimizar tiempos de especificación, generación y compilación
  • No perder tiempo modificando objetos que no se usan 
  • Hace mas chica la KB y por lo tanto mas fácil de entender
  • Elimina dependencias innecesarias.
En este sentido, creo que sirve la analogía entre una KB y una ciudad.
Si vemos una ciudad que tiene las calles sin basura, ordenada y limpia, es mucho mas facil para las personas que llegan a dicha ciudad mantener la limpieza y colaborar con el orden. Antes de tirar un papel a la calle, lo voy a pensar dos veces. Ahora si encuentro todo sucio y lleno de basura, poco me va a importar tirar algo fuera de las papeleras.
En la KB es lo mismo. Si hay objetos con avisos (warnings) innecesarios, objetos que no se han dejado de usar, objetos con errores, es mucho mas fácil que las personas que trabajan con dichas KB se acostumbren a dejar "basura" en la KB.

Si lo que se quiere es almacenar desarrollo ya realizado, para tener como referencia o para reutilizarlo en el futuro, es conveniente utilizar otro mecanismo, que puede ser crear versiones congeladas que guarden dichos objetos, o hacer un repositorio de archivos de exports, donde se pueda recurrir para buscarlos.




Comentarios

  1. Enrique el KBDoctor para versiones "viejas" (7,7.5,8,9)de dónde se puede bajar?

    ResponderBorrar
  2. Renzo:
    No esta liberado la version vieja del KBDoctor.
    Es una herramienta de uso interno, que no tenia el testing suficiente como para liberarlo. Despues me iban a llamar para plantearme dudas y problemas de funcionamiento por lo que preferi no liberarlo.

    Esta disponible para GeneXus X Ev1 y Ev2.

    ResponderBorrar
  3. Toma mucha importacia el eliminar las imagenes no usadas para aplicaciones GeneXus Smart Devices ya que estas se transfieren al instaldor de la app.

    Nos pasaba que un instalador de IPhone nos quedaba de 25MB y era porque habia WWSD de prueba que cargaban imagenes grandes y eso se transfería al instalador.

    En una app web el problema no es grave porque el usuario no instala un paquete y por ende esas imágenes nunca le viajan.

    ResponderBorrar
    Respuestas
    1. Guilleguy, tenes razon.
      En el WEB, tambien es importante. Se genera un archivo images.txt que se debe instalar.

      En una aplicacion, habia metido una biblioteca de iconos (muchisimos) y hacia mas pesada la instalacion, agrandaba el archivo images.txt, etc.

      Borrar

Publicar un comentario

1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.

Entradas más populares de este blog

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Aplicación monolítica o distribuida?

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.