Modellering: Wat besteed je uit aan een framework?

 
21 mei 2009

Afgelopen week had ik met een aantal collega’s een discussie over modellering. De situatie was als volgt: in een bepaalde applicatie was een (N)Hibernate mapping gedaan van een collectie met een List mapping. Dit was gedaan om NHibernate deze lijst een volgorde te kunnen laten bijhouden – en daar bleken wat onverwachte problemen mee te zijn. Mijn vraag was meteen: waarom zou je een List gebruiken en geen Bag? Volgorde is toch niet interessant? Voor deze specifieke klantsituatie was de volgorde wel degelijk interessant was het antwoord: het was door de klant letterlijk gevraagd om in deze lijsten volgordes te kunnen aangeven.

Mijn stelling in dit soort situaties – vrij technisch interpreteerbare klantvragen die specifiek voor een klant interessant zijn – altijd in het klantspecifieke model (ook wel domeinmodel genoemd) moeten worden meegenomen. Ga er nooit vanuit dat een framework dit soort zaken beter kan oppakken: wie zegt dat het framework net zo lang in de context van deze applicatie bestaat als het  klantspecifieke model? In dit geval zou ik dus de volgorde van de objecten (index) opnemen in het model zelf. Het heeft een relatie met een specifieke klantvraag dus moet het model er zelfstandig een antwoord op kunnen geven.

Een ander mooi voorbeeld vind ik meertaligheid – dat een andere collega aandroeg. Als de klant specifiek vraagt om meertaligheid binnen een applicatie moet je dat eigenlijk niet door een (technisch) framework op laten lossen – en als je dat dan toch wilt doen, moet je dit framework eigenlijk in de klantspecifieke component embedden. Deze centrale component is immers verantwoordelijk voor de klantspecifieke automatisering?

Moraal van het verhaal: Blijf onbevangen modelleren en hang je niet teveel op aan frameworks om de kern van je applicatie heen. Maak duidelijke keuzes en beleg de verantwoordelijkheden daar waar ze thuishoren. Het wiel opnieuw uitvinden is in dit geval beter dan je wielen outsourcen.

Als je hier nieuw bent, wil je je misschien inschrijven voor onze RSS feed.
Bedankt voor je bezoek!

Gerelateerde bijdragen


Werken met André Boonzaaijer?
Kijk dan bij onze mogelijkheden voor starters en/of ervaren IT'ers.


Categorieën: Architectuur

Tags: , , ,


Plaats een reactie

Jouw emailadres wordt nooit gepubliceerd of gedeeld. Benodigde velden zijn met * gemarkeerd.