SlideShare una empresa de Scribd logo
1 de 15
Los Secretos de Dataweave
Parte 2
Juan Cruz Basso, Software Engineer
@JuanCBasso | juancruzbasso@gmail.com
Buenos Aires - Meetup Leaders
Federico Castellari & Florencia Cattelani
● Licenciado en TI
● Salesforce Specialist en CloudGaia
● 10+ años en el mundo de integración
● MuleSoft Meetup Leader
/fpcastellari
● Ingeniera en Informática
● Magíster en Evaluación de Proyectos
● COO en CloudGaia
● 10+ años en el mundo de integración
● MuleSoft Meetup Leader / MuleSoft Mentor
● MuleSoft Go To Market Champion
/florenciacattelani
/florencia.cattelani
@florcattelani
Federico Castellari & Florencia Cattelani
Panelista:
● Juan Cruz Basso
○ Ing en Informática
○ MuleSoft Mentor
○ Bahía Blanca MuleSoft Meetup Leader
○ 14+ años en el mundo de Integraciones
○ Senior Software Engineer en AVIO
/jcbasso
AGENDA
● Repaso de conceptos principales de programación funcional vistos en parte 1
● Paradigma Imperativo vs Declarativo
● El impacto de la programación declarativa en Dataweave
● Cambiando de chip entre procedural y funcional
● Implementación de un caso de uso
Dataweave, un lenguaje de programación funcional
● Funciones puras
● Funciones de primera clase
● Funciones de orden superior
● Funciones Lamda
● Composición de funciones
Declarativo vs Imperativo
Se piensa el como -> el foco está
en el proceso
Se piensa el qué -> el foco está en
los resultados
Declarativo Imperativo
Las líneas de código no
necesariamente tienen que
producir resultados
Las variables pueden cambiar sus
valores, y la ejecución permite
almacenamiento de estados
Cada línea de código produce un
resultado
Las variables son inmutables, no
se pueden modificar y la ejecución
es stateless
Ambos son paradigmas de
programación
Según el caso de uso, ambos paradigmas
son válidos
Declarativo vs Imperativo
Ejemplos
Java:
Int y=0;
for (int x=1;x++;x<=10)
y=x+y
return y;
—————————————————————
Int[] y={1,2,3,4,5,6,7,8,9,10};
Int[] z=new int[10];
int added = 0;
for (int x=0;x++;x<10){
if(y[x]>5) {
z[added] = y[x];
added++;
}
}
return z;
Datawave:
sum(1 to 10)
———————————————————
[1 to 10] filter ($>5) -> [6,7,8,9]
El impacto de la programación declarativa en
Dataweave
● Dataweave no tiene una operación de “return”
● Todas las variables son inmutables, cada vez que se declara/actualiza/modifica/etc, es una
nueva variable que se genera con el nuevo valor
● Podemos decir que los scripts/funciones de Dataweave siempre producen un resultado
● “Naturalmente” el lenguaje nos lleva a componer funciones
Cambiando el chip entre procedural y funcional
● No hay persistencia de estado, hay que dejar de pensar en cómo hacer las cosas.
● Hay que analizar las responsabilidades del código, y dividir entre que necesita persistencia
de estado y que no, para determinar que puede ir en Dataweave y que en el Flow.
● Tener el resultado esperado debería ser el primer paso en una transformación
● Analizar los valores de entrada y como recorrerlos es clave
● ¿Por qué hay que cambiar el chip?
Repaso de la estructura de un Script de Dataweave
● Tiene un encabezado y un cuerpo separados por (---)
○ Encabezado: contiene directivas de lenguaje , como puede ser el formato de entrada o
salida, la versión de dw a ejecutar , propiedades de readers/writers y definiciones de
variables o funciones.
○ Cuerpo: contiene la expresión Dataweave que genera la salida del script
Caso de uso de ejemplo….
● Input: La información a procesar es de contratos sobre productos que son abastecidos a
distintas plantas.
Cada planta tiene su ubicación y puede ser provista por distintos proveedores. Cada
proveedor tiene su propia ubicación desde donde envía sus productos.
● Output: Necesitamos una vista de “árbol” de la información, siguiendo este orden:
Plants -> Proveedores -> Ubicaciones ( mostrando solo las ubicaciones que proveen a
esa planta )
Caso de uso de ejemplo….
Aplicando conceptos en una forma práctica
Input: Output:
Coding time
Networking time
Muchas gracias

Más contenido relacionado

Similar a Meetup_Secrets_of_DW_2_Esp.pptx

Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoFinizens
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...Miguel Ángel Sánchez Chordi
 
Java Day Santiago RD 2015
Java Day Santiago RD 2015Java Day Santiago RD 2015
Java Day Santiago RD 2015Eudris Cabrera
 
Infraestructura como código
Infraestructura como códigoInfraestructura como código
Infraestructura como códigoJuanje Ojeda
 
Personalinformatico jaenes
Personalinformatico jaenesPersonalinformatico jaenes
Personalinformatico jaenesDavidJaenes
 
ALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasRodrigo Corral
 
Webinar novedades scrum guide 2020
Webinar novedades scrum guide 2020Webinar novedades scrum guide 2020
Webinar novedades scrum guide 2020Alex Ballarin
 
Entrega contínua en la práctica
Entrega contínua en la prácticaEntrega contínua en la práctica
Entrega contínua en la prácticaCarlos Fuentes
 
Redmine - Gestión de Portafolio de Proyectos
Redmine - Gestión de Portafolio de ProyectosRedmine - Gestión de Portafolio de Proyectos
Redmine - Gestión de Portafolio de ProyectosEQ SOFT EIRL
 
Ha2 nm50 eq4-teamfoundationserver
Ha2 nm50 eq4-teamfoundationserverHa2 nm50 eq4-teamfoundationserver
Ha2 nm50 eq4-teamfoundationserverLuis Pérez
 
1. ciclo de_vida_de_software
1. ciclo de_vida_de_software1. ciclo de_vida_de_software
1. ciclo de_vida_de_softwareMiguel Castro
 
Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010Rodrigo Corral
 
0051 programación declarativa_vs_programación_procedural_es_momento_de_la_tra...
0051 programación declarativa_vs_programación_procedural_es_momento_de_la_tra...0051 programación declarativa_vs_programación_procedural_es_momento_de_la_tra...
0051 programación declarativa_vs_programación_procedural_es_momento_de_la_tra...GeneXus
 
Buenas Prácticas ES - Capítulo #3 - Colaboración entre negocio y desarrollo c...
Buenas Prácticas ES - Capítulo #3 - Colaboración entre negocio y desarrollo c...Buenas Prácticas ES - Capítulo #3 - Colaboración entre negocio y desarrollo c...
Buenas Prácticas ES - Capítulo #3 - Colaboración entre negocio y desarrollo c...Bonitasoft
 
Ejecutando proyectos de innovación tecnológica de software en intel
Ejecutando proyectos de innovación tecnológica de software en intelEjecutando proyectos de innovación tecnológica de software en intel
Ejecutando proyectos de innovación tecnológica de software en intelHospital Español
 

Similar a Meetup_Secrets_of_DW_2_Esp.pptx (20)

Migacion forms apex
Migacion forms   apexMigacion forms   apex
Migacion forms apex
 
Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológico
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
 
Java Day Santiago RD 2015
Java Day Santiago RD 2015Java Day Santiago RD 2015
Java Day Santiago RD 2015
 
Agilidad y lean
Agilidad y leanAgilidad y lean
Agilidad y lean
 
Infraestructura como código
Infraestructura como códigoInfraestructura como código
Infraestructura como código
 
Personalinformatico jaenes
Personalinformatico jaenesPersonalinformatico jaenes
Personalinformatico jaenes
 
ALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas Prácticas
 
Webinar novedades scrum guide 2020
Webinar novedades scrum guide 2020Webinar novedades scrum guide 2020
Webinar novedades scrum guide 2020
 
Entrega contínua en la práctica
Entrega contínua en la prácticaEntrega contínua en la práctica
Entrega contínua en la práctica
 
diapositivas
diapositivasdiapositivas
diapositivas
 
Redmine - Gestión de Portafolio de Proyectos
Redmine - Gestión de Portafolio de ProyectosRedmine - Gestión de Portafolio de Proyectos
Redmine - Gestión de Portafolio de Proyectos
 
Ha2 nm50 eq4-teamfoundationserver
Ha2 nm50 eq4-teamfoundationserverHa2 nm50 eq4-teamfoundationserver
Ha2 nm50 eq4-teamfoundationserver
 
1. ciclo de_vida_de_software
1. ciclo de_vida_de_software1. ciclo de_vida_de_software
1. ciclo de_vida_de_software
 
Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010
 
0051 programación declarativa_vs_programación_procedural_es_momento_de_la_tra...
0051 programación declarativa_vs_programación_procedural_es_momento_de_la_tra...0051 programación declarativa_vs_programación_procedural_es_momento_de_la_tra...
0051 programación declarativa_vs_programación_procedural_es_momento_de_la_tra...
 
Buenas Prácticas ES - Capítulo #3 - Colaboración entre negocio y desarrollo c...
Buenas Prácticas ES - Capítulo #3 - Colaboración entre negocio y desarrollo c...Buenas Prácticas ES - Capítulo #3 - Colaboración entre negocio y desarrollo c...
Buenas Prácticas ES - Capítulo #3 - Colaboración entre negocio y desarrollo c...
 
Git Flow y GitOps
Git Flow y GitOpsGit Flow y GitOps
Git Flow y GitOps
 
Ejecutando proyectos de innovación tecnológica de software en intel
Ejecutando proyectos de innovación tecnológica de software en intelEjecutando proyectos de innovación tecnológica de software en intel
Ejecutando proyectos de innovación tecnológica de software en intel
 
Capitulo 11 parte1 (2)
Capitulo 11 parte1 (2)Capitulo 11 parte1 (2)
Capitulo 11 parte1 (2)
 

Último

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 

Último (15)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

Meetup_Secrets_of_DW_2_Esp.pptx

  • 1. Los Secretos de Dataweave Parte 2 Juan Cruz Basso, Software Engineer @JuanCBasso | juancruzbasso@gmail.com
  • 2. Buenos Aires - Meetup Leaders Federico Castellari & Florencia Cattelani ● Licenciado en TI ● Salesforce Specialist en CloudGaia ● 10+ años en el mundo de integración ● MuleSoft Meetup Leader /fpcastellari ● Ingeniera en Informática ● Magíster en Evaluación de Proyectos ● COO en CloudGaia ● 10+ años en el mundo de integración ● MuleSoft Meetup Leader / MuleSoft Mentor ● MuleSoft Go To Market Champion /florenciacattelani /florencia.cattelani @florcattelani Federico Castellari & Florencia Cattelani
  • 3. Panelista: ● Juan Cruz Basso ○ Ing en Informática ○ MuleSoft Mentor ○ Bahía Blanca MuleSoft Meetup Leader ○ 14+ años en el mundo de Integraciones ○ Senior Software Engineer en AVIO /jcbasso
  • 4. AGENDA ● Repaso de conceptos principales de programación funcional vistos en parte 1 ● Paradigma Imperativo vs Declarativo ● El impacto de la programación declarativa en Dataweave ● Cambiando de chip entre procedural y funcional ● Implementación de un caso de uso
  • 5. Dataweave, un lenguaje de programación funcional ● Funciones puras ● Funciones de primera clase ● Funciones de orden superior ● Funciones Lamda ● Composición de funciones
  • 6. Declarativo vs Imperativo Se piensa el como -> el foco está en el proceso Se piensa el qué -> el foco está en los resultados Declarativo Imperativo Las líneas de código no necesariamente tienen que producir resultados Las variables pueden cambiar sus valores, y la ejecución permite almacenamiento de estados Cada línea de código produce un resultado Las variables son inmutables, no se pueden modificar y la ejecución es stateless Ambos son paradigmas de programación Según el caso de uso, ambos paradigmas son válidos
  • 7. Declarativo vs Imperativo Ejemplos Java: Int y=0; for (int x=1;x++;x<=10) y=x+y return y; ————————————————————— Int[] y={1,2,3,4,5,6,7,8,9,10}; Int[] z=new int[10]; int added = 0; for (int x=0;x++;x<10){ if(y[x]>5) { z[added] = y[x]; added++; } } return z; Datawave: sum(1 to 10) ——————————————————— [1 to 10] filter ($>5) -> [6,7,8,9]
  • 8. El impacto de la programación declarativa en Dataweave ● Dataweave no tiene una operación de “return” ● Todas las variables son inmutables, cada vez que se declara/actualiza/modifica/etc, es una nueva variable que se genera con el nuevo valor ● Podemos decir que los scripts/funciones de Dataweave siempre producen un resultado ● “Naturalmente” el lenguaje nos lleva a componer funciones
  • 9. Cambiando el chip entre procedural y funcional ● No hay persistencia de estado, hay que dejar de pensar en cómo hacer las cosas. ● Hay que analizar las responsabilidades del código, y dividir entre que necesita persistencia de estado y que no, para determinar que puede ir en Dataweave y que en el Flow. ● Tener el resultado esperado debería ser el primer paso en una transformación ● Analizar los valores de entrada y como recorrerlos es clave ● ¿Por qué hay que cambiar el chip?
  • 10. Repaso de la estructura de un Script de Dataweave ● Tiene un encabezado y un cuerpo separados por (---) ○ Encabezado: contiene directivas de lenguaje , como puede ser el formato de entrada o salida, la versión de dw a ejecutar , propiedades de readers/writers y definiciones de variables o funciones. ○ Cuerpo: contiene la expresión Dataweave que genera la salida del script
  • 11. Caso de uso de ejemplo…. ● Input: La información a procesar es de contratos sobre productos que son abastecidos a distintas plantas. Cada planta tiene su ubicación y puede ser provista por distintos proveedores. Cada proveedor tiene su propia ubicación desde donde envía sus productos. ● Output: Necesitamos una vista de “árbol” de la información, siguiendo este orden: Plants -> Proveedores -> Ubicaciones ( mostrando solo las ubicaciones que proveen a esa planta )
  • 12. Caso de uso de ejemplo…. Aplicando conceptos en una forma práctica Input: Output: