Deze opinie is van een externe deskundige. De inhoud vertegenwoordigt dus niet noodzakelijk het gedachtegoed van de redactie.

Design patterns zijn onmisbaar voor efficiëntie

Computable Expert

Marianne Faro
Overige directie functies, Itility. Expert van Computable voor de topics Digital Transformation, Cloud Computing en Big data.

Het is een grondbeginsel van elke softwareopleiding: design patterns. Toch blijft het verleidelijk om eenmaal uit de schoolbanken het wiel zelf uit te vinden. Zonde, want correct gebruik van ‘ontwerppatronen’ leiden tot efficiëntie.

Als software-engineer pronken de 23 design patterns van de Gang of Four (naar de vier bedenkers) natuurlijk boven je bureau. Kort door de bocht is een design pattern, of ontwerppatroon, een bewezen recept om een veelvoorkomend probleem op te lossen. En jij bent de chef. Want werk je volgens het recept, dan geeft het een sterke basis voor een goed werkend, smakelijk resultaat. Wil je aan het patroon wat peper en zout toevoegen? Dan kan dat, zij het met mate. Het is dus geen kant-en-klaar sjabloon in code, maar een manier om structuur aan te brengen in de architectuur van je software, het bouwen van een functie, of manier van werken. 

Drie typen patronen

"Als je de design patterns eenmaal kent, dan zie je ze overal"

Als je de design patterns eenmaal kent, dan zie je ze overal. De originele design patterns zijn te verdelen in drie hoofdsmaken: creatie-, structurele- en gedragspatronen.

Bij creatiepatronen draait het om het creëren van objecten. Een structuurpatroon legt expliciet vast hoe meerdere objecten samen een grotere structuur vormen, en een gedragspatroon stroomlijnt processen als er een bepaald soort gedrag plaatsvindt. Nadien zijn nieuwe types design patterns toegevoegd, bijvoorbeeld om de complexiteit te omvatten van parallelle processen of applicaties op enterpriseniveau. Van elke originele hoofdsmaak heb ik één patroon uitgewerkt in een herkenbare situatie.

  • Leaseauto kiezen met een creatiepatroon

Als je een nieuwe leaseauto mag kiezen, merk je dat je te maken krijgt met een bouwpatroon. In dit geval bestaat het patroon uit vier variabelen: jij als klant, de leasemaatschappij, de autobouwer en de bloemist. Bij de leasemaatschappij bestel je een Audi met diverse opties: cruisecontrol, lichtmetalen velgen en rijbaan-assist. En de kleur van de auto moet rood zijn, uiteraard. De leasemaatschappij geeft het door aan Audi die de auto bouwt en volgens specificaties aflevert. Als verrassing bestelt de leasemaatschappij ook een bloemetje met gouden strik bij de bloemist.   

Drie weken later pronkt een kersverse Audi met een bloemetje op de oprit. Als het bouwpatroon wordt gebruikt bij de leasemaatschappij, dan zou het net zo eenvoudig moeten zijn om dezelfde specificaties bij een andere autofabriek te bestellen. Mercedes biedt dezelfde manier om de opties te kiezen, hoewel het een compleet ander bedrijf is. Dankzij het bouwpatroon zijn de leasemaatschappij, autobouwer en bloemist uitwisselbaar. Het patroon blijft zijn werk doen, dus ook als je stiekem over een donkergrijze Mercedes fantaseert.

  • Telefoon opladen met een structuurpatroon

We kennen allemaal het moment dat je telefoon leeg is en je net niet je oplader bij de hand hebt. Zodra je die oplader van je collega in je telefoon steekt, heb je te maken met een adapterpatroon. De adapter vormt de Europese 220 volt-uitgang die de elektriciteit levert naar een usb-verbinding met vijf volt. 

Thuis gebruik je je draadloze oplader. Dat is een compleet andere aansluiting, maar net als bij de oplader zet deze het vermogen op precies de juiste manier om. Zo kun je na een uurtje de lader weer met een gerust hart teruggeven aan je collega.

  • Hotels boeken met een gedragspatroon

Je hebt vast weleens een hotel bekeken via het bekende blauwe boekingsplatform. Onder je favoriete hotel lonkt een rode balk: al vier keer geboekt dit uur. Hier is een uitgekookt design pattern-actief: het waarnemerpatroon.

Website-elementen (waarnemer) zijn gelinkt aan de backend (onderwerp) van de boekingswebsite en tonen informatie afhankelijk van het onderwerp. Zodra er iets wijzigt in de status van een kamer of boeking, krijgen deze elementen een notificatie van het onderwerp en kunnen ervoor kiezen om hun informatie bij te werken. De backend weet continue of en wie er ergens een kamer heeft geboekt. Niet alleen voor jouw kamer, maar voor álle kamers, appartementen en villa’s. Zodra iemand anders boekt en het is dezelfde kamer als die jij hebt geboekt, dan geeft de backend aan jouw teller door dat de vijfde boeking binnen is. En dan kan jij natuurlijk niet achterblijven…

Wat design patterns opleveren

Design patterns brengen dus een uitwisselbare structuur. Welke voordelen levert dat nou op? Een greep wat het voor ons doet.

  • Betrouwbare code

Iedereen heeft zijn eigen manier van werken. Maar het doel is wel dat zodra iemand op ‘opslaan’ drukt, iemand anders weer verder kan. Design patterns zorgen door de 'bewezen' opzet voor betrouwbaarheid. En dat geldt niet alleen voor de code, maar ook over de manier hoe je documentatie en aantekeningen maakt in je project. 

  • Nieuwe mensen snel productief

Als een project hard groeit in omvang, of iemand wisselt van functie, dan wil je productieve nieuwelingen. Zonder design patterns zou je iemand eerst de hele samenhang van de code, of manier van werken moeten uitleggen. Zie je de maanden en frustraties al voorbijvliegen? Gebruik je design patterns, dan kan je zeggen: de updates van dit dashboard verzamelt een waarnemerspatroon. De nieuweling weet nu meteen hoe met die functie om te gaan, of kan opzoeken hoe zo’n patroon werkt.

  • Eenvoudig objecten delen met andere frameworks en talen

Python, C#, Vue, React, R, we gebruiken steeds meer talen en frameworks door elkaar. Objecten bouwen en verwerken doen deze systemen allemaal op hun eigen manier. Een adapterpatroon helpt je om op een neutrale manier informatie uit een object in Python naar bijvoorbeeld een Vue-object om te vormen. Dat kan door de objecten in Python naar JSON te vertalen en de JSON in Vue om te zetten naar een Vue-object. Over JSON gesproken, een adapter maakt het ook makkelijk om legacy XML-code compatible te houden. Je schrijft hiervoor ‘simpelweg’ een adapter.

  • Nieuwe projecten sneller opgebouwd

Werken mensen met dezelfde skillls aan veel projecten, dan ga je sneller leveren. Bij Itility werken de software-engineers verspreid over diverse klanten. Zij houden elkaar goed op de hoogte van wat ze maken. Door in hun projecten design patterns te gebruiken, wisselen ze efficiënt nieuwe functies en workflows uit als deze ook bruikbaar blijken voor een eigen project. Daarnaast hoef je het wiel niet opnieuw uit te vinden voor structuren die al bestaan in design patterns.

  • Beter samenwerken met andere specialisten

Oke, design patterns zorgen voor betrouwbare code, maakt nieuwelingen en nieuwe projecten productiever. Maar werkt het ook buiten de silo van software-engineers? En of. Zo werken onze DevOps-engineers nauw samen met de datawetenschappers. 

Een voorbeeld van onze notificaties: de software-engineer maakt voor de datawetenschapper een klasse beschikbaar dat het bouwpatroon implementeert. Zo hoeft de datawetenschapper zich niet druk te maken over hoe een notificatie precies wordt opgebouwd. Ze hoeven zich alleen maar te richten op de definities binnen het bouwpatroon en de informatie toevoegen die nodig is voor de notificatie. Op de achtergrond wordt automatisch de juiste informatie toegevoegd zoals de applicatienaam, links naar documentatie en netwerkdetails

Dankzij design patterns is er dus heel veel winst te halen. Een pattern kan zelfs nuttig zijn als je niks met code doet, maar bijvoorbeeld projecten uniform wil opleveren. 

x

Om te kunnen beoordelen moet u ingelogd zijn:

Dit artikel delen:

Uw reactie

LET OP: U bent niet ingelogd. U kunt als gast reageren maar dan wordt uw reactie pas zichtbaar na goedkeuring door de redactie. Om uw reactie direct geplaatst te krijgen moet u eerst rechtsboven inloggen of u registreren

Vul uw naam in
Vult u een geldig e-mailadres in
Vult u een reactie in
Jaarbeurs b.v. gaat zorgvuldig en veilig om met je persoonsgegevens. Meer informatie over hoe we omgaan met je data lees je in het privacybeleid
Als u een reactie wilt plaatsen moet u akkoord gaan met de voorwaarden

Stuur dit artikel door

Uw naam ontbreekt
Uw e-mailadres ontbreekt
De naam van de ontvanger ontbreekt
Het e-mailadres van de ontvanger ontbreekt

×
×
article 2019-04-16T13:47:00.000Z Marianne Faro
Wilt u dagelijks op de hoogte worden gehouden van het laatste ict-nieuws, achtergronden en opinie?
Abonneer uzelf op onze gratis nieuwsbrief.