No exceptions made

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 ga bij de […]

Lees meer >>

Implementeren is modelleren

Net als het schrijven van de code vind modelleren plaats over de gehele duur van het project. In een eerder artikel werden twee regels beschreven die een model erg eenvoudig hielden. Dit gaf een hoop ruimte die tijdens de implementatie ingevuld moet worden. Dat is echter niet erg want goed implementeren is een vorm van […]

Lees meer >>

Is maximale flexibiliteit in software wel de “holy grail”?

Iedere programmeur is zich ervan bewust dat elk probleem op (ontelbaar) veel manieren is op te lossen. 2 belangrijke variabelen waar je als programmeur bewust of onbewust mee speelt zijn complexiteit en flexibiliteit. Complexe code is code die moeilijk te lezen/begrijpen is, vooral door anderen. Een flexibele applicatie kan gemakkelijk veranderingen ondergaan zonder dat er […]

Lees meer >>

Domein modelleren is niet moeilijk

Er wordt vaak erg ingewikkeld gedaan over domein modelleren. Het is echter minder moeilijk dan het lijkt. De belangrijkste fouten die ik vaak tegen kom zijn modelleren op basis van informatie en modelleren op basis van diep nadenken. Goed domein modelleren gebeurt echter op basis van gedrag en op basis van relevante observaties. Domein modelleren […]

Lees meer >>

Niet mocken!

Het heeft voor mijn gevoel tamelijk lang geduurd, maar unit-testing begint nu langzaam maar zeker normaal te worden in een software-ontwikkeltraject. Zelf kan ik niet meer zonder. Binnen een statisch getypeerde taal is het namelijk één van de weinige mogelijkheden om direct feedback van jouw software te krijgen. Toch lijkt in het huidige gebruik een […]

Lees meer >>

Object transport

Inmiddels ben ik in heel wat applicaties een vorm van object transport tegengekomen. Bepaalde objecten uit een business-logica laag of component dienen getransporteerd te worden vanaf of richting een user interface, email component of database. Wat heel vaak gedaan wordt is transport via (web)services richting een user interface waarbij de services niet de ‘echte’ business objecten […]

Lees meer >>

Het supermarkt effect

Het belangrijkste aspect van software ontwikkeling is volgens mij eenvoud. Eenvoud in het proces en de methodiek. Eenvoud in code en architectuur. Eenvoud zorgt ervoor dat mensen snel kunnen begrijpen waar het over gaat. Dat een enkele oogopslag voldoende is om de essentie van de software te doorgronden. Maar eenvoud heeft een slechte reputatie. Eenvoud […]

Lees meer >>