De afgelopen dagen had ik een interessante discussie op de DDD mailinglist over value objects.
Value objects: “These are the objects that describe things” [Uit: DDD, Evans]
De discussie ging over de niet-wijzigbaarheid (immutability) van value objects. Het vreemde is dat veel ontwikkelaars (in de rol van modelleur) deze niet-wijzigbaarheid benadrukken. Hij komt ook altijd op. Terwijl [...]
Lees verder >>
Auteur archief
Value objects spelen ook maar een rol
12 augustus 2010No exceptions made
20 juli 2010
Naar aanleiding van een bevinding tijdens een interne project code review en een artikel in het laatste Java Magazine hadden we een interessante discussie over de redenen om exceptions toe te passen. Uiteindelijk kon ik zelf achter twee vuistregels staan, één die ik zelf bedacht had, de ander van een collega.
Ik [...]
Lees verder >>
Lees verder >>
CQRS & de bijkomende architectuur
09 maart 2010
In mijn vorige blogpost deed ik in de voetnoten een voorstel om de architectuur die vaak meekomt met het patroon CQRS anders te noemen. Ik dacht aan een “Circular Architecture” om hem duidelijk te contrasteren met een “Layered Architecture”. Na een korte discussie met Greg Young en Alistair Cockburn hierover besloot ik om het idee [...]
Lees verder >>
Lees verder >>
CQRS && Validatie && Business Rules
04 maart 2010
Validatie en business rules binnen een CQRS architectuur [1][2] blijven onderwerpen die vragen oproepen voor degenen die er voor het eerst van horen. Drie specifieke vragen worden daarover vaak gesteld: hoe werkt de validatie van commands, hoe kun je business rules afdwingen over grote collections (state) en hoe werkt het afdwingen van business rules over aggregates [...]
Lees verder >>
Lees verder >>
Vakmanschap
18 februari 2010
De laatste tijd duikt de term vakmanschap (craftsmanship) regelmatig op. Achter deze term gaat veel schuil denk ik. Ik vermoed dat het voor iedereen wat anders betekent. Waarschijnlijk één van de redenen van haar populariteit. In een poging om er enige helderheid in te brengen, schrijf ik deze post. We hebben besloten dat we hier [...]
Lees verder >>
Lees verder >>
Domain model Reporting, Sir!
04 februari 2010
In deze post beschrijf ik een praktijk case van het ontwerp van rapportage functionaliteit op een model gedreven applicatie. De applicatie is in een zonnebloemmodel opgebouwd rond een object-georiënteerd domeinmodel, wat tot nu toe een voornamelijk actief model is wat gedreven en niet de alomtegenwoordige CRUD functionaliteit biedt. De bedoeling is dat dat ook zo [...]
Lees verder >>
Lees verder >>
Open Space
18 juni 2009
Twee weken geleden was ik op de open space code dag en dat is me erg bevallen. Mede-bezoekers met veel eigen inzicht en ervaring, allemaal ontwikkelaars van huis uit en stevige discussies over allerhande onderwerpen (zelf veel over DDD). Met de mogelijkheid om een proof-of-concept in elkaar te draaien, samen, met de beamer erbij. Of [...]
Lees verder >>
Lees verder >>
TDD + DDD = BDD
09 juni 2009
In vervolg op mijn vorige post over TDD vs DbC wilde ik verder uitleggen waarom ik vind dat TDD iets anders is dan alleen unit tests. Sterker nog: TDD heeft in het begin helemaal niets met unit tests te maken, volgens mij. In den beginne heb je namelijk nog helemaal geen units.
Bij het modelleren van een [...]
Lees verder >>
Lees verder >>
Test Driven Design by Contract
19 mei 2009
Laatst hoorde ik iemand beweren dat in statisch getypeerde talen Design by Contract (DbC) een superieur alternatief is voor Test Driven Design (TDD). Mijn standpunt was andersom: TDD is veel meer dan alleen unit testen en zelfs unit tests zijn niet volledig vervangbaar door DbC. Ik heb de belangrijkste argumenten in de discussie nog eens bij [...]
Lees verder >>
Lees verder >>
David vs. Goliath
03 maart 2009
In deze post geef ik mijn antwoord op de vraag waar de innovatie plaatsvindt: in grote of juist in kleine (ict-) bedrijven? Een alles-of-niets antwoord lijkt me niet haalbaar, want we kennen allemaal wel voorbeelden van zowel grote als kleine innovatieve bedrijven. Maar het is volgens mij toch wel interessant, want er is wel onderscheid [...]
Lees verder >>
Lees verder >>
