modularización de kb genexus - lecciones aprendidas
TRANSCRIPT
![Page 1: Modularización de KB GeneXus - lecciones aprendidas](https://reader031.vdocuments.mx/reader031/viewer/2022022415/5a6d90297f8b9ab8418b768f/html5/thumbnails/1.jpg)
Modularización de KBLecciones aprendidas
Enrique Almeida@ealmeida
CONCEPTO
![Page 2: Modularización de KB GeneXus - lecciones aprendidas](https://reader031.vdocuments.mx/reader031/viewer/2022022415/5a6d90297f8b9ab8418b768f/html5/thumbnails/2.jpg)
Para que?
![Page 3: Modularización de KB GeneXus - lecciones aprendidas](https://reader031.vdocuments.mx/reader031/viewer/2022022415/5a6d90297f8b9ab8418b768f/html5/thumbnails/3.jpg)
![Page 4: Modularización de KB GeneXus - lecciones aprendidas](https://reader031.vdocuments.mx/reader031/viewer/2022022415/5a6d90297f8b9ab8418b768f/html5/thumbnails/4.jpg)
Dividir yconquistar
![Page 5: Modularización de KB GeneXus - lecciones aprendidas](https://reader031.vdocuments.mx/reader031/viewer/2022022415/5a6d90297f8b9ab8418b768f/html5/thumbnails/5.jpg)
Módulo
Objetos Públicos
ObjetosPrivados
Módulo3
Módulo 2
![Page 6: Modularización de KB GeneXus - lecciones aprendidas](https://reader031.vdocuments.mx/reader031/viewer/2022022415/5a6d90297f8b9ab8418b768f/html5/thumbnails/6.jpg)
Que es módulo en GeneXus?
![Page 7: Modularización de KB GeneXus - lecciones aprendidas](https://reader031.vdocuments.mx/reader031/viewer/2022022415/5a6d90297f8b9ab8418b768f/html5/thumbnails/7.jpg)
Criterios de modularización
Todos los objetos en un módulo Un modulo por objeto
![Page 8: Modularización de KB GeneXus - lecciones aprendidas](https://reader031.vdocuments.mx/reader031/viewer/2022022415/5a6d90297f8b9ab8418b768f/html5/thumbnails/8.jpg)
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
![Page 9: Modularización de KB GeneXus - lecciones aprendidas](https://reader031.vdocuments.mx/reader031/viewer/2022022415/5a6d90297f8b9ab8418b768f/html5/thumbnails/9.jpg)
Características deseables
COHESIÓN ALTA
BAJO ACOPLAMIENTO
NO CICLOS
MÓDULOS DE CARDINALIDAD PARECIDA
POCOS OBJETOS PUBLICOS
![Page 10: Modularización de KB GeneXus - lecciones aprendidas](https://reader031.vdocuments.mx/reader031/viewer/2022022415/5a6d90297f8b9ab8418b768f/html5/thumbnails/10.jpg)
Metodología de Modularización de una KB. Mientras hay tablas en módulo ROOT MODULE
1. Creo módulo nuevo y pongo Visibility = Private2. Elijo tablas del nuevo módulo3. Muevo las transacciones que generan las tablas elegidas4. Divido objetos que usa tablas en módulos diferentes 5. Muevo al módulo los objetos que usan las tablas elegidas6. Marco como públicos los llamados desde otro módulo7. Rebuild all y corregir errores
Las tablas sólo pueden ser actualizadas en su módulo, aunque sea pública.
![Page 11: Modularización de KB GeneXus - lecciones aprendidas](https://reader031.vdocuments.mx/reader031/viewer/2022022415/5a6d90297f8b9ab8418b768f/html5/thumbnails/11.jpg)
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
![Page 12: Modularización de KB GeneXus - lecciones aprendidas](https://reader031.vdocuments.mx/reader031/viewer/2022022415/5a6d90297f8b9ab8418b768f/html5/thumbnails/12.jpg)
Referencias a tablas
Integridad Referencial
For each de lectura
New / Delete / Update
Dependencia más débil
Dependencia más fuerte
![Page 13: Modularización de KB GeneXus - lecciones aprendidas](https://reader031.vdocuments.mx/reader031/viewer/2022022415/5a6d90297f8b9ab8418b768f/html5/thumbnails/13.jpg)
Automatizar la Modularización?
![Page 14: Modularización de KB GeneXus - lecciones aprendidas](https://reader031.vdocuments.mx/reader031/viewer/2022022415/5a6d90297f8b9ab8418b768f/html5/thumbnails/14.jpg)
Dividir una KB en módulos es NP-Completo
![Page 15: Modularización de KB GeneXus - lecciones aprendidas](https://reader031.vdocuments.mx/reader031/viewer/2022022415/5a6d90297f8b9ab8418b768f/html5/thumbnails/15.jpg)
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
![Page 16: Modularización de KB GeneXus - lecciones aprendidas](https://reader031.vdocuments.mx/reader031/viewer/2022022415/5a6d90297f8b9ab8418b768f/html5/thumbnails/16.jpg)
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
![Page 17: Modularización de KB GeneXus - lecciones aprendidas](https://reader031.vdocuments.mx/reader031/viewer/2022022415/5a6d90297f8b9ab8418b768f/html5/thumbnails/17.jpg)
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
![Page 18: Modularización de KB GeneXus - lecciones aprendidas](https://reader031.vdocuments.mx/reader031/viewer/2022022415/5a6d90297f8b9ab8418b768f/html5/thumbnails/18.jpg)
Futuro
Mejorar herramientas
● Trabajar con módulo + Interfaz● Especialización de módulos
Distribución de binarios
Incorporar seguridad?
Microservicios / Docker ...