Home / Blog / Achtergronden / Een andere manier van software ontwikkelen
Traditionele manieren van softwareontwikkeling leiden in de praktijk vaak tot complexe software-applicaties die moeilijk te begrijpen en te beheren zijn. Hierdoor zijn softwareontwikkelaars veel tijd kwijt aan onderhoud en veranderingen in de software. Ook is er een groter risico op fouten en problemen. Er zijn alternatieve manieren van softwareontwikkeling en vooral de laatste jaren begint de bekendheid en populariteit hiervan toe te nemen.
Om kennis te maken met deze nieuwe methoden volgden Senet softwareontwikkelaars recent de training CQRS and Event Sourcing primer. De training werd gegeven op het kantoor van Senet in Eindhoven door Marijn Huizendveld, een expert op het gebied van Event Sourcing, CQRS en Domain Driven Design. Tijdens deze training kwamen deze drie onderwerpen uitvoerig aan bod. Gedurende drie dagen werd afwisselend de theorie achter de concepten behandeld en werden praktische oefeningen uitgevoerd aan de hand van een business case.
Domain Driven Design (DDD) is een benadering van softwareontwikkeling die zich richt op het begrijpen en modelleren van het domein van een probleemgebied om effectievere software-oplossingen te creëren. Domeinexperts en softwareontwikkelaars werken samen om een gedeeld begrip van het domein te krijgen. Ze creëren hiervoor een gemeenschappelijke taal om effectievere communicatie te bevorderen. Samen modelleren zij het domein op een manier die de natuurlijke evolutie van het bedrijf weerspiegelt, zodat ontwikkelaars gemakkelijker kunnen reageren op veranderende eisen en inzichten.
Command Query Responsibility Segregation (CQRS) is een programmeertechniek waarbij lees- en schrijfmodellen binnen een applicatie worden gescheiden. Met andere woorden, het maakt een onderscheid tussen het verwerken van gegevens (wijzigingsverzoeken) door middel van commando’s en het opvragen van gegevens (leesverzoeken) door middel van queries. Het toepassen van CQRS kent enkele voordelen. Softwaresystemen zijn eenvoudiger te optimaliseren en de schaalbaarheid verbetert. De techniek sluit goed aan bij het bedrijfsdomein en vergemakkelijkt het creëren van meerdere weergaven van gegevens, aangepast aan specifieke gebruikersinterfaces of gebruiksscenario’s.
Bij Event Sourcing wordt de toestand van een softwaresysteem vastgelegd als een reeks gebeurtenissen in plaats van alleen de huidige toestand zoals bij traditionele softwaresystemen. Hierdoor is altijd een volledige log beschikbaar van alle wijzigingen in een softwaresysteem. Dit zorgt voor een beter begrip van de evolutie van gegevens in de tijd. Bovendien kan elke toestand op een bepaald moment worden gereconstrueerd. Dit kan handig zijn bij het herstellen van gegevens na fouten of bij het analyseren van historische gegevens. Event sourcing biedt verder nog voordelen op het gebied van schaalbaarheid en performance (door het asynchroon verwerken van gegevens). Een nadeel van event sourcing is dat het extra complexiteit met zich meebrengt, dus het is belangrijk de techniek gericht toe te passen.
Het gecombineerd toepassen van bovenstaande concepten leidt tot een alternatieve manier van softwareontwikkeling die erg nuttig kan zijn wanneer het tijdsaspect een belangrijke rol speelt binnen bedrijfsprocessen. Hierdoor kan software beter aansluiten bij de behoeften van het bedrijf en gemakkelijker evolueren bij veranderingen in het domein.
Domain Driven Design, CQRS en Event Sourcing stellen Senet in staat nog beter te voldoen aan de behoeften van het domein, complexiteit te verminderen, en prestaties en consistentie te verbeteren. Softwareontwikkeling blijft zich evolueren en de kennis die is opgedaan tijdens de training biedt ons veel mogelijkheden voor het (door)ontwikkelen van onze maatwerk en SaaS oplossingen.
Senet heeft jarenlange expertise met het ontwikkelen en beheren van maatwerk en SaaS software en wij kunnen u van een gedegen advies voorzien. Een vrijblijvende afspraak is altijd mogelijk!
We nemen contact met u op!
Senet Eindhoven Gestelsestraat 258 5654 AM Eindhoven Bekijk op kaart
+31(0)40-2930395
KvK nummer: 17115078 Btw nummer: NL807989083B01