SlideShare a Scribd company logo
1 of 19
Download to read offline
Modularización de KB
Lecciones aprendidas
Enrique Almeida
@ealmeida
CONCEPTO
Para que?
Dividir y
conquistar
Módulo
Objetos
Públicos
Objetos
Privados
Módulo
3
Módulo
2
Que es módulo en GeneXus?
Criterios de modularización
Todos los objetos en un módulo Un modulo por objeto
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
Características deseables
COHESIÓN ALTA
BAJO ACOPLAMIENTO
NO CICLOS
MÓDULOS DE CARDINALIDAD PARECIDA
POCOS OBJETOS PUBLICOS
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.
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
Referencias a tablas
Integridad Referencial
For each de lectura
New / Delete / Update
Dependencia más débil
Dependencia más fuerte
Automatizar la Modularización?
Dividir una KB
en módulos es
NP-Completo
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
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
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
Futuro
Mejorar herramientas
● Trabajar con módulo + Interfaz
● Especialización de módulos
Distribución de binarios
Incorporar seguridad?
Microservicios / Docker ...
Gracias!
@ealmeida
ealmeida@concepto.com.uy

More Related Content

Similar to Modularización de KB GeneXus - lecciones aprendidas

Metodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevMetodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevjtk1
 
Module_1-Networking Today
Module_1-Networking TodayModule_1-Networking Today
Module_1-Networking Todayclase2punto0
 
[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockito[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockitoJose Barba Martinez
 
Actualización Moodle 1.9 a Moodle 2.4: Planificación, consejos y problemas
Actualización Moodle 1.9 a Moodle 2.4:  Planificación, consejos y problemasActualización Moodle 1.9 a Moodle 2.4:  Planificación, consejos y problemas
Actualización Moodle 1.9 a Moodle 2.4: Planificación, consejos y problemasElurnet Informatika Zerbituzak
 
Programación orientada al objeto
Programación orientada al objetoProgramación orientada al objeto
Programación orientada al objetoboncastell
 
Programación orientada-a-objetos
Programación orientada-a-objetosProgramación orientada-a-objetos
Programación orientada-a-objetosTAPIA SILVA EVELINA
 
Germán Peraferrer: Cormo Framework
Germán Peraferrer: Cormo FrameworkGermán Peraferrer: Cormo Framework
Germán Peraferrer: Cormo FrameworkGrupo PHP Argentina
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructuradoclean88
 
02 -introduccion_a_la_tecnologia_orientada_a_objetos
02  -introduccion_a_la_tecnologia_orientada_a_objetos02  -introduccion_a_la_tecnologia_orientada_a_objetos
02 -introduccion_a_la_tecnologia_orientada_a_objetoskarlalopezbello
 
Yupa cesar 6_s_ti_1
Yupa cesar 6_s_ti_1Yupa cesar 6_s_ti_1
Yupa cesar 6_s_ti_1Cesar Yupa
 
Principios orientacion-objetos
Principios orientacion-objetosPrincipios orientacion-objetos
Principios orientacion-objetoskarlalopezbello
 

Similar to Modularización de KB GeneXus - lecciones aprendidas (20)

Cap7 modularidad
Cap7 modularidadCap7 modularidad
Cap7 modularidad
 
Metodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevMetodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prev
 
Module_1-Networking Today
Module_1-Networking TodayModule_1-Networking Today
Module_1-Networking Today
 
chuy
chuy chuy
chuy
 
[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockito[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockito
 
4.1, 4.2
4.1, 4.24.1, 4.2
4.1, 4.2
 
Actualización Moodle 1.9 a Moodle 2.4: Planificación, consejos y problemas
Actualización Moodle 1.9 a Moodle 2.4:  Planificación, consejos y problemasActualización Moodle 1.9 a Moodle 2.4:  Planificación, consejos y problemas
Actualización Moodle 1.9 a Moodle 2.4: Planificación, consejos y problemas
 
Programación orientada al objeto
Programación orientada al objetoProgramación orientada al objeto
Programación orientada al objeto
 
Moodle
MoodleMoodle
Moodle
 
Programación orientada-a-objetos
Programación orientada-a-objetosProgramación orientada-a-objetos
Programación orientada-a-objetos
 
Germán Peraferrer: Cormo Framework
Germán Peraferrer: Cormo FrameworkGermán Peraferrer: Cormo Framework
Germán Peraferrer: Cormo Framework
 
Cormo Framework
Cormo FrameworkCormo Framework
Cormo Framework
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
Taller de bases de datos
Taller de bases de datosTaller de bases de datos
Taller de bases de datos
 
02 -introduccion_a_la_tecnologia_orientada_a_objetos
02  -introduccion_a_la_tecnologia_orientada_a_objetos02  -introduccion_a_la_tecnologia_orientada_a_objetos
02 -introduccion_a_la_tecnologia_orientada_a_objetos
 
¡This is drupal!
¡This is drupal!¡This is drupal!
¡This is drupal!
 
Yupa cesar 6_s_ti_1
Yupa cesar 6_s_ti_1Yupa cesar 6_s_ti_1
Yupa cesar 6_s_ti_1
 
Deber analisis
Deber analisisDeber analisis
Deber analisis
 
Principios orientacion-objetos
Principios orientacion-objetosPrincipios orientacion-objetos
Principios orientacion-objetos
 
Doo
DooDoo
Doo
 

More from Enrique Almeida

Como mejorar una kb limpieza
Como mejorar una kb  limpiezaComo mejorar una kb  limpieza
Como mejorar una kb limpiezaEnrique Almeida
 
Porque estudiar computacion? Experiencias personales
Porque estudiar computacion? Experiencias personalesPorque estudiar computacion? Experiencias personales
Porque estudiar computacion? Experiencias personalesEnrique Almeida
 
Innovando en el proceso de build y deploy de aplicaciones GeneXus #GX24
Innovando en el proceso de build y deploy de aplicaciones GeneXus #GX24Innovando en el proceso de build y deploy de aplicaciones GeneXus #GX24
Innovando en el proceso de build y deploy de aplicaciones GeneXus #GX24Enrique Almeida
 
Repositorio de modelos de datos GeneXus
Repositorio de modelos de datos GeneXusRepositorio de modelos de datos GeneXus
Repositorio de modelos de datos GeneXusEnrique Almeida
 
Encuentro Genexus 2005 Beta Testing
Encuentro Genexus 2005 Beta TestingEncuentro Genexus 2005 Beta Testing
Encuentro Genexus 2005 Beta TestingEnrique Almeida
 
Encuentro GeneXus 2003 Migracion Win Web
Encuentro GeneXus 2003 Migracion Win WebEncuentro GeneXus 2003 Migracion Win Web
Encuentro GeneXus 2003 Migracion Win WebEnrique Almeida
 
Encuentro GeneXus 2006 Collaborative Projects
Encuentro GeneXus 2006 Collaborative ProjectsEncuentro GeneXus 2006 Collaborative Projects
Encuentro GeneXus 2006 Collaborative ProjectsEnrique Almeida
 
Nuestra Experiencia Con El Proyecto Gxunit Vf
Nuestra Experiencia Con El Proyecto Gxunit VfNuestra Experiencia Con El Proyecto Gxunit Vf
Nuestra Experiencia Con El Proyecto Gxunit VfEnrique Almeida
 
Desarrollando Con Genexus En Grupos Numerosos
Desarrollando Con Genexus En Grupos NumerososDesarrollando Con Genexus En Grupos Numerosos
Desarrollando Con Genexus En Grupos NumerososEnrique Almeida
 

More from Enrique Almeida (15)

Como mejorar una kb limpieza
Como mejorar una kb  limpiezaComo mejorar una kb  limpieza
Como mejorar una kb limpieza
 
Cafe con deployment
Cafe con deploymentCafe con deployment
Cafe con deployment
 
Porque estudiar computacion? Experiencias personales
Porque estudiar computacion? Experiencias personalesPorque estudiar computacion? Experiencias personales
Porque estudiar computacion? Experiencias personales
 
Innovando en el proceso de build y deploy de aplicaciones GeneXus #GX24
Innovando en el proceso de build y deploy de aplicaciones GeneXus #GX24Innovando en el proceso de build y deploy de aplicaciones GeneXus #GX24
Innovando en el proceso de build y deploy de aplicaciones GeneXus #GX24
 
Build and deploy
Build and deploy Build and deploy
Build and deploy
 
Repositorio de modelos de datos GeneXus
Repositorio de modelos de datos GeneXusRepositorio de modelos de datos GeneXus
Repositorio de modelos de datos GeneXus
 
Datos abiertos
Datos abiertosDatos abiertos
Datos abiertos
 
Migrando grandes KB
Migrando grandes KBMigrando grandes KB
Migrando grandes KB
 
Encuentro Genexus 2005 Beta Testing
Encuentro Genexus 2005 Beta TestingEncuentro Genexus 2005 Beta Testing
Encuentro Genexus 2005 Beta Testing
 
Encuentro GeneXus 2003 Migracion Win Web
Encuentro GeneXus 2003 Migracion Win WebEncuentro GeneXus 2003 Migracion Win Web
Encuentro GeneXus 2003 Migracion Win Web
 
Encuentro GeneXus 2006 Collaborative Projects
Encuentro GeneXus 2006 Collaborative ProjectsEncuentro GeneXus 2006 Collaborative Projects
Encuentro GeneXus 2006 Collaborative Projects
 
Nuestra Experiencia Con El Proyecto Gxunit Vf
Nuestra Experiencia Con El Proyecto Gxunit VfNuestra Experiencia Con El Proyecto Gxunit Vf
Nuestra Experiencia Con El Proyecto Gxunit Vf
 
GeneXus Kb Grandes
GeneXus Kb GrandesGeneXus Kb Grandes
GeneXus Kb Grandes
 
Desarrollando Con Genexus En Grupos Numerosos
Desarrollando Con Genexus En Grupos NumerososDesarrollando Con Genexus En Grupos Numerosos
Desarrollando Con Genexus En Grupos Numerosos
 
KBTools V2008
KBTools V2008KBTools V2008
KBTools V2008
 

Modularización de KB GeneXus - lecciones aprendidas