Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Modularización de KB GeneXus - lecciones aprendidas

207 views

Published on

Algunas reflexiones sobre el uso de modulos en Genexus y la metodologia de modularizacion.
Lecciones aprendidas en el proceso y recomendaciones para la modularizacion de bases de conocimiento genexus de gran tamaño.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Modularización de KB GeneXus - lecciones aprendidas

  1. 1. Modularización de KB Lecciones aprendidas Enrique Almeida @ealmeida CONCEPTO
  2. 2. Para que?
  3. 3. Dividir y conquistar
  4. 4. Módulo Objetos Públicos Objetos Privados Módulo 3 Módulo 2
  5. 5. Que es módulo en GeneXus?
  6. 6. Criterios de modularización Todos los objetos en un módulo Un modulo por objeto
  7. 7. UN arco intra-módulo DOS arcos intra-módulo Buena técnica de modularización es maximizar los arcos dentro de los módulos y minimizar los arcos entre los diferentes módulos. 1 2 3 4 6 5 7 1 2 3 4 6 5 7
  8. 8. Características deseables COHESIÓN ALTA BAJO ACOPLAMIENTO NO CICLOS MÓDULOS DE CARDINALIDAD PARECIDA POCOS OBJETOS PUBLICOS
  9. 9. Metodología de Modularización de una KB. Mientras hay tablas en módulo ROOT MODULE 1. Creo módulo nuevo y pongo Visibility = Private 2. Elijo tablas del nuevo módulo 3. Muevo las transacciones que generan las tablas elegidas 4. Divido objetos que usa tablas en módulos diferentes 5. Muevo al módulo los objetos que usan las tablas elegidas 6. Marco como públicos los llamados desde otro módulo 7. Rebuild all y corregir errores Las tablas sólo pueden ser actualizadas en su módulo, aunque sea pública.
  10. 10. No todas las referencias son iguales Solo se ve afectado si si cambia la estructura de la transacción Se ve afectado si cambia la estructura + parámetros Estructura + parámetros + Theme + webform parámetros Estructura + parámetros + rules + eventos + variables
  11. 11. Referencias a tablas Integridad Referencial For each de lectura New / Delete / Update Dependencia más débil Dependencia más fuerte
  12. 12. Automatizar la Modularización?
  13. 13. Dividir una KB en módulos es NP-Completo
  14. 14. Lecciones aprendidas - Modularización Problema muy difícil No escala Faltan herramientas mas avanzadas ● Detección de errores más rápido ● Conocer las dependencias de un módulo ● Recomendación de ubicación de un objeto
  15. 15. Lecciones aprendidas - Código y objetos mas fácil de testear mas fácil de entender mas fácil de mantener Objetos mas chicos Objetos parecidos quedan más cerca
  16. 16. Lecciones aprendidas - Forma de trabajo Reutilizar conocimiento Mejor manejo de la complejidad Dividir el trabajo en grupos Mas fácil de instalar Mejor preparados para futuro
  17. 17. Futuro Mejorar herramientas ● Trabajar con módulo + Interfaz ● Especialización de módulos Distribución de binarios Incorporar seguridad? Microservicios / Docker ...
  18. 18. Gracias! @ealmeida ealmeida@concepto.com.uy

×