Waarom Diagram as Code (DaC) de toekomst is 

Joost van Dam

Leestijd 6 minuten

Blog
10 april 2025

Iedere developer weet hoe waardevol visuele hulpmiddelen kunnen zijn. Er gaat immers het gezegde “een afbeelding zegt meer dan 1000 woorden”. Tegelijkertijd herkent bijna iedereen de frustratie van traditionele tekentools: voor een kleine aanpassing moet je al gauw meerdere elementen selecteren, herorganiseren, aanpassen van kleur en meer. Deze handmatige processen zijn niet alleen tijdrovend, maar maken het ook lastig om wijzigingen terug te vinden. Daarom zijn we bij Shared een stap verder gegaan door gebruik te maken van tools die diagrammen genereren op basis van tekst, genaamd Diagram as code (DaC). Op deze manier leggen we niet alleen onze logische modellen en high-level architectuur vast, maar creëren we ook direct krachtige plaatjes. 

De nadelen van traditionele tekentools 

Zoals gezegd: wanneer je een plaatje moet aanpassen, moet je vaak meerdere elementen selecteren, herorganiseren, aanpassen van kleur en meer. Deze handmatige processen zijn niet alleen tijdrovend, maar maken het ook lastig om wijzigingen terug te vinden. Bij tekst zien we in git direct welke regels verwijderd, toegevoegd of aangepast zijn, inclusief de redenen achter die veranderingen via commit messages. Bij een statisch diagram ontbreekt deze transparantie, wat soms resulteert in een ‘zoek de 10 verschillen’-puzzel. 

VERSUS

De kracht van visuele communicatie 

Een goed diagram kan complexe informatie in één oogopslag duidelijk maken. Door onze ontwerpen vanuit tekst te genereren, garanderen we consistentie en kwaliteit, zonder dat we handmatig in een tekentool hoeven te sleutelen. 

De voordelen van Diagram as Code 

Het iteratieve karakter van softwareontwikkeling geldt ook voor het maken van diagrammen. Sommigen verwachten wellicht dat hiervoor generatieve AI nodig is, zeker in dit tijdperk waarin AI vaak centraal staat. Echter, bij ons gebeurt de omzetting van tekst naar afbeelding via een deterministisch algoritme. Dit betekent dat als je dezelfde invoer geeft, je altijd exact dezelfde output krijgt. Dit is een methode die betrouwbaarheid en consistentie garandeert. 

Zo werkt het proces in grote lijnen: 

  1. Tekstbeschrijving: We definiëren in een tekstbestand alle elementen, relaties en specificaties van het diagram. 
  2. Automatische omzetting: Onze tools (zoals dbdiagram en Ilograph) verwerken deze tekst volgens vaste conversieregels en zetten deze direct om in een visuele representatie. 
  3. Consistent resultaat: Dankzij het deterministische karakter van het algoritme leveren we keer op keer uniforme en betrouwbare diagrammen op. 

De voordelen hiervan zijn: 

  • Eenvoudige aanpassingen: Een kleine wijziging in de tekst resulteert direct in een aangepast diagram, zonder de rompslomp van handmatig elementen verplaatsen of aanpassen. 
  • Duidelijke geschiedenis: Net als bij code kunnen wij in onze versiebeheer-systemen eenvoudig teruglezen welke wijzigingen er zijn doorgevoerd en waarom. We kunnen zelfs de diagrammen opnemen in ons versiebeheer voor de code en zorgen dat code en diagram altijd een gelijke versie hebben. 
  • Consistentie: Het vaststaande proces zorgt voor uniformiteit in elk diagram, wat de samenwerking en documentatie sterk verbetert. 

Nadelen van Diagram as Code 

Hoewel DaC tal van voordelen biedt, zijn er ook enkele nadelen waar je rekening mee moet houden: 

  • Beperkte flexibiliteit: Doordat het systeem deterministisch is – wat betekent dat dezelfde tekstinvoer altijd exact hetzelfde diagram oplevert – zit je vast in een standaardpatroon. Hierdoor is het niet mogelijk om zomaar een ‘random’ of verrassend diagram te genereren. 
  • Vast stramien: Diagram as Code dwingt je tot een vast patroon, waardoor je minder vrijheid hebt om af te wijken van de standaardweergave. Dit kan een voordeel zijn voor consistentie, maar als je een diagram wilt aanpassen aan een specifieke situatie of een afwijkende visuele stijl nodig hebt, loop je tegen beperkingen aan. 
  • Minder spontane inzichten: In situaties waarin een minder gestructureerde of experimentele aanpak waardevol kan zijn om onverwachte verbanden te ontdekken, kan het deterministische karakter juist beperkend werken. 

Deze punten illustreren dat DaC minder handig is in de eerste fase van een project waarin er nog veel geschetst wordt. Eigenlijk pas wanneer we gaan ontwerpen en ons naar de strakke stramienen gaan bewegen komt het in zijn kracht. 

Onze huidige tools en toekomstplannen 

We hebben onze plannen helder uitgesplitst in drie categorieën: 

  • Wat we al gebruiken: 
  • dbdiagram: Inzet voor het opzetten van onze datamodellen (logische modellen) 
  • Ilograph: Toepassing voor het ontwerpen van onze high-level architectuurdiagrammen 
  • Wat we momenteel ontwikkelen: 
  • Automatiseringsscript voor Dataverse: Dit script zet een dbdiagram-definitie automatisch om in een serie Dataverse tabellen of SharePoint-lijsten inclusief relaties. Hierdoor integreren we CI/CD binnen het Microsoft Power Platform en stroomlijnen we onze workflow. 
  • Wat we nog zoeken: 
  • Tool voor (kantoor)processen: We zijn op zoek naar een DaC-oplossing om werkprocessen visueel in kaart te brengen en te optimaliseren. Als je hier een interessante tool voor kent, horen we dat graag! 

Conclusie

We zijn enorm enthousiast over het concept van Diagram as Code en zien geen weg terug. Heb jij ook coole DaC-tools ontdekt of ideeën voor verbetering? Laat het ons weten – wij staan altijd open voor nieuwe inzichten en tools om onze workflow verder te optimaliseren. 

Dbdiagram: 

Ilograph:

Meld je aan voor onze nieuwsbrief

Better business dankzij inspiratie, tips, best practices, klantverhalen en meer.


Joost van Dam

10 april 2025

Meer inspiratie

Contact

Je naam
Dit veld is bedoeld voor validatiedoeleinden en moet niet worden gewijzigd.
Shared BV

Vasteland 12G
3011 BL Rotterdam

+085 833 0011 info@shared.nl
Sluiten
Privacyverklaring

Privacyverklaring Shared

Shared, gevestigd aan Vasteland 12G, 3011 BL Rotterdam, is verantwoordelijk voor de verwerking van persoonsgegevens zoals weergegeven in deze privacyverklaring.

Contactgegevens: Website: https://www.shared.nl
Adres: Vasteland 12G, 3011 BL Rotterdam
Telefoon: +31 85 8330011

Persoonsgegevens die wij verwerken Shared verwerkt je persoonsgegevens doordat je gebruik maakt van onze diensten en/of omdat je deze gegevens zelf aan ons verstrekt. Hieronder vind je een overzicht van de persoonsgegevens die wij verwerken:

  • Voor- en achternaam
  • Telefoonnummer
  • E-mailadres
  • IP-adres
  • Gegevens over jouw activiteiten op onze website
  • Internetbrowser en apparaat type

Bijzondere en/of gevoelige persoonsgegevens die wij verwerken Onze website en/of dienst heeft niet de intentie gegevens te verzamelen over websitebezoekers die jonger zijn dan 16 jaar, tenzij ze toestemming hebben van ouders of voogd. We kunnen echter niet controleren of een bezoeker ouder dan 16 is. Wij raden ouders dan ook aan betrokken te zijn bij de online activiteiten van hun kinderen, om zo te voorkomen dat er gegevens over kinderen verzameld worden zonder ouderlijke toestemming. Als je ervan overtuigd bent dat wij zonder die toestemming persoonlijke gegevens hebben verzameld over een minderjarige, neem dan contact met ons op via gerritjan@shared.nl, dan verwijderen wij deze informatie.

Met welk doel en op basis van welke grondslag wij persoonsgegevens verwerken Shared verwerkt jouw persoonsgegevens voor de volgende doelen:

  • Je te kunnen bellen of e-mailen indien dit nodig is om onze dienstverlening uit te kunnen voeren.
  • Shared analyseert jouw gedrag op de website om daarmee de website te verbeteren en het aanbod van producten en diensten af te stemmen op jouw voorkeuren.
  • Shared volgt jouw surfgedrag over verschillende websites waarmee wij onze producten en diensten afstemmen op jouw behoefte.

Geautomatiseerde besluitvorming Shared neemt geen besluiten op basis van geautomatiseerde verwerkingen die aanzienlijke gevolgen kunnen hebben voor personen.

Hoe lang we persoonsgegevens bewaren Shared bewaart je persoonsgegevens niet langer dan strikt nodig is om de doelen te realiseren waarvoor je gegevens worden verzameld. Wij hanteren de volgende bewaartermijnen voor de volgende (categorieën) van persoonsgegevens:

  • Persoonsgegevens: 26 maanden

Delen van persoonsgegevens met derden Shared deelt jouw persoonsgegevens met verschillende derden als dit noodzakelijk is voor het uitvoeren van de overeenkomst en om te voldoen aan een eventuele wettelijke verplichting. Met bedrijven die je gegevens verwerken in onze opdracht, sluiten wij een verwerkersovereenkomst om te zorgen voor eenzelfde niveau van beveiliging en vertrouwelijkheid van jouw gegevens. Shared blijft verantwoordelijk voor deze verwerkingen. Daarnaast verstrekt Shared jouw persoonsgegevens aan andere derden alleen met jouw nadrukkelijke toestemming.

Cookies, of vergelijkbare technieken, die wij gebruiken Shared gebruikt functionele, analytische en tracking cookies. Een cookie is een klein tekstbestand dat bij het eerste bezoek aan deze website wordt opgeslagen in de browser van je computer, tablet of smartphone. Shared gebruikt cookies met een puur technische functionaliteit. Deze zorgen ervoor dat de website naar behoren werkt en dat bijvoorbeeld jouw voorkeursinstellingen onthouden worden. Deze cookies worden ook gebruikt om de website goed te laten werken en deze te kunnen optimaliseren. Daarnaast plaatsen we cookies die jouw surfgedrag bijhouden zodat we op maat gemaakte content en advertenties kunnen aanbieden.

Bij jouw eerste bezoek aan onze website hebben wij je al geïnformeerd over deze cookies en hebben we je toestemming gevraagd voor het plaatsen ervan.

Je kunt je afmelden voor cookies door je internetbrowser zo in te stellen dat deze geen cookies meer opslaat. Daarnaast kun je ook alle informatie die eerder is opgeslagen via de instellingen van je browser verwijderen. Zie voor een toelichting: https://veiliginternetten.nl/themes/situatie/cookies-wat-zijn-het-en-wat-doe-ik-ermee/

Op deze website worden ook cookies geplaatst door derden. Dit zijn bijvoorbeeld adverteerders en/of sociale media-bedrijven. Hieronder een overzicht:

  • Google Analytics & Ads
    • Naam: _ga & _utma
    • Functie: Analytische cookie die websitebezoek meet
    • Bewaartermijn: 24 maanden
  • LinkedIn
    • Naam: _ligc
    • Functie: Analytische cookie die websitebezoek meet
    • Bewaartermijn: 24 maanden
  • Hotjar
    • Naam: _hjSessionUser_14
    • Functie: Analytische cookie die websitebezoek meet
    • Bewaartermijn: 24 maanden

Gegevens inzien, aanpassen of verwijderen Je hebt het recht om je persoonsgegevens in te zien, te corrigeren of te verwijderen. Dit kun je zelf doen via de persoonlijke instellingen van jouw account. Daarnaast heb je het recht om je eventuele toestemming voor de gegevensverwerking in te trekken of bezwaar te maken tegen de verwerking van jouw persoonsgegevens door ons bedrijf en heb je het recht op gegevensoverdraagbaarheid. Dat betekent dat je bij ons een verzoek kan indienen om de persoonsgegevens die wij van jou beschikken in een computerbestand naar jou of een ander, door jou genoemde organisatie, te sturen.

Wil je gebruik maken van je recht op bezwaar en/of recht op gegevensoverdraagbaarheid of heb je andere vragen/opmerkingen over de gegevensverwerking, stuur dan een gespecificeerd verzoek naar gerritjan@shared.nl.

Om er zeker van te zijn dat het verzoek tot inzage door jou is gedaan, vragen wij jou een kopie van je identiteitsbewijs bij het verzoek mee te sturen. Maak in deze kopie je pasfoto, MRZ (machine readable zone, de strook met nummers onderaan het paspoort), paspoortnummer en Burgerservicenummer (BSN) zwart. Dit ter bescherming van je privacy. Shared zal zo snel mogelijk, maar in ieder geval binnen vier weken, op jouw verzoek reageren.

Shared wil je er tevens op wijzen dat je de mogelijkheid hebt om een klacht in te dienen bij de nationale toezichthouder, de Autoriteit Persoonsgegevens. Dat kan via de volgende link: https://autoriteitpersoonsgegevens.nl/nl/contact-met-de-autoriteit-persoonsgegevens/tip-ons

Hoe wij persoonsgegevens beveiligen Shared neemt de bescherming van jouw gegevens serieus en neemt passende maatregelen om misbruik, verlies, onbevoegde toegang, ongewenste openbaarmaking en ongeoorloofde wijziging tegen te gaan. Als jij het idee hebt dat jouw gegevens toch niet goed beveiligd zijn of er aanwijzingen zijn van misbruik, neem dan contact op met onze klantenservice of via gerritjan@shared.nl. Shared heeft de volgende maatregelen genomen om jouw persoonsgegevens te beveiligen:

  • Gebruik van beveiligde verbindingen (SSL/TLS)
  • Regelmatige beveiligingscontroles en updates
  • Strikte toegangscontroles voor medewerkers en systemen

Deze privacyverklaring is voor het laatst aangepast op 11-06-2024.