Faglig Fredag den 4. marts 2022 – GraphQL vs. OData og Avanceret React

Vi glæder os til en spændende dag, hvor vi byder på oplæg af Jakob Bendsen og Milos Jaranovic, der præsenterer GraphQL vs. OData. Michael Kofoed tager et nærmere kig på nyere open source-værktøjer, og i dagens sidste oplæg står der Avanceret React på programmet af Sinisa Neskovic.

Vi sørger for god afstand, masser af håndsprit, godt humør og de gode diskussioner.

Lokation: Fysisk – IDA Conference – Kalvebod Brygge 31-33, 1560 København.

Lokation: Streaming – du modtager deltagerlink i mail.

Program

Kl. 08:30-09:00

Morgenmad og networking

Kl. 09:00-09:30

Velkomst

Kl. 09:30-10:45

SOAP -> REST -> OData/GraphQL -> er det nu godt?

I dette oplæg kigger Milos og Jakob på 2 alternativer til REST; nemlig OData og GraphQL, og vi slutter af med en fælles diskussion af de 2 teknologier.

Del 1: Milos fortæller om OData
OData er oprindelig introduceret af Microsoft i 2007 og standardiseret og overtaget af OASIS i 2014. OData er en protokol bygget på toppen af standard protokoller som HTTP, JSON og ATOM, og som stadigvæk udnytter REST-arkitekturstilen. OData advokerer for en generisk model for alle REST API’er, som samtidig løser nogle af de centrale udfordringer og problem ved REST-arkitekturstilen, såsom filtrering, predicates og at klienten ikke selv kan bestemme hvor mange associerede data den modtager fra serveren. I oplægget gennemgår Milos de forskellige dele af OData protokollen og viser konkrete eksempler på OData-api’er, klient- og server-kode.

Del 2: Jakob fortæller om GraphQL
GraphQL stammer fra Facebook, som har brugt det siden 2012 og gjorde det offentligt tilgængeligt i 2015 og siden da har GraphQL vundet betydelig udbredelse som en integrationsteknologi der kan supplere eller erstatte REST API’er. GraphQL løser det centrale problem ved REST (og Soap), at klienten ikke selv kan bestemme hvor mange associerede data den modtager fra serveren. Her tilbyder GraphQL en elegant løsning i form af en generel mekanisme hvor en server kan udstille en graf (en samling af associerede objekter), som klienter kan undersøge, læse, opdatere og abonnere på via HTTP og JSON. I oplægget gennemgår Jakob de forskellige dele af GraphQL-teknologien og viser konkrete eksempler på GraphQL-api’er, klient- og server-kode.

Del 3: Diskussion og problematisering
I denne del forsøger vi i plenum at problematisere og belyse GraphQL og ODatas tilgang til integration, som på mange måder minder om hinanden. Er det fx godt med et generisk interface? Er GraphQL/OData en erstatning for REST eller et supplement? Er der forskellige brugsscenarier hvor én af teknologierne er at foretrække? Og hvordan virker teknologierne i praksis?

Jakob Bendsen – Chefkonsulent | Partner

Jakob kodede sit første Java-program engang i midt-90’erne og har siden begået sig i IT-verdenen som udvikler, arkitekt, underviser, iværksætter og rådgiver. Han har arbejdet meget med backend Java og integrationer – RMI, Soap og REST. Jakob er partner i Lund&Bendsen og har senest hyggekodet en Go-app på AWS-lambda med en React-frontend.

Milos JaranovicSeniorkonsulent

En kodende arkitekt, der brænder for softwarearkitektur og designmønstre, tekniske metoder og kodning. I 24 år af sin karriere har han arbejdet med forskellige projekter inden for flyindustrien, telekommunikation og sundhedsindustrien samt inden for forsikrings-, pensions- og offentlig sektor. I løbet af de sidste 8 år af sin karriere har han stået i spidsen for introduktionen og anvendelsen af event-driven arkitektur i forskellige virksomheder og organisationer. Han finder det ydmygt fascinerende, at vi er her i dag og tror, at vi nu gør det rigtigt på trods af vores viden om i går.

Kl. 10:45-11:00

Pause og networking

Kl. 11:00-11:45

From ADR’s to Modular Monoliths

Architecture Decision Records er en metode til at fastholde arkitekturbeslutninger i udviklingsprojekter. Spørgsmålet er, om aktivt brug af ADR’er kan hjælpe med til at bygge “Modular Monoliths” i stedet for Microservices og traditionelle Monolitter? Det, der tit går galt med traditionelle monolitter, er, at de “sander til” over tid. Samtidig er der en masse dekoblings problemer, hvis ens Microservices bliver alt for små.

I mit oplæg viser jeg, hvordan man kan kombinere ADR’s med kildekoden til at automatisere kontrollen af at arkitekturbeslutninger overholdes, fx at lagdelingen i n-tier arkitektur respekteres via få annotationer i koden, eller at der ikke logges til System.out. Der findes mange meninger og værktøjer til, hvordan det kan gøres. I mit oplæg prøver jeg at bruge nogle “nye” open source værktøjer, jeg er stødt på fx. Moduliths, JMolecules, Archunit JQassistant, Structurizr, i stedet for de mere kendte som fx Checkstyle, SonarQube.

Michael W. Kofoed – Seniorkonsulent

Michael W. Kofoed har en lang karriere bag sig som udvikler og applikationsarkitekt, primært i finanssektoren.

Kl. 11:45-12:00

Pause og networking

Kl. 12:00-12:15

Avanceret React – vi tager et kort kig på de mere avancerede features (English)

Without understanding the underlying fundamental architectural principles of React, it can be very challenging to grasp details of many different React concepts and comprehend which of them to apply when. This short presentation will give a glimpse of some of the most fundamental principles upon which React relies, explain some advanced features of React components and clarify their usage and possible peculiar behavior.

Sinisa NeskovicInstruktør

Sinisa Neskovic has a background of an IT practitioner with over 30 years of experience as an enterprise and software architect, designer and developer of complex software systems, but also of a university professor with a comprehensive theoretical and practical knowledge in business information systems and software engineering. At the moment, Sinisa is a part-time lecturer at DTU and ITU, where he teaches courses in advanced programming, databases and software frameworks and architectures for the web.

Kl. 12:15-

Fortsat networking og frokost

Tak for i dag!