Soms kom je een tooltje tegen waar je echt helemaal blij van wordt. In mijn geval heet dat tooltje Cucumber. Cucumber is een nieuwe manier om tests mee te schrijven – en wel op een uiterst leesbare, begrijpelijke manier. Er bestaan verschillende smaken van, zoals Cuke4Duke voor de JVM, SpecFlow of Cuke4Nuke voor .Net, en [...]
Lees verder >>
Development
Tool van de maand: Leesbare unit tests met SpecFlow/Cuke4Duke
11 oktober 2011Het Disposable-pattern
27 september 2011
Iedereen weet dat als jouw object belangrijke resources gebruikt, dat je dan het Disposable-pattern moet implementeren, zodat gebruikers van jouw object zelf kunnen aangeven dat ze NU klaar zijn met het gebruik, en die resources dus weer vrijgegeven kunnen worden. Maar in de praktijk blijft het bij de abstracte kennis dat je dan IDisposable moet [...]
Maak kennis met: de spaarlijst
15 september 2011
Klantwensen, prioriteiten, en budget: altijd een lastige combinatie. Want de klant wil natuurlijk wel alle functionaliteiten geimplementeerd zien die vantevoren zijn afgesproken, en alles wat hij tijdens het traject erbij verzint, voor hetzelfde geld als afgesproken. En alles heeft natuurlijk prioriteit één. Bij het afgelopen project waar ik aan meewerkte gebeurde er tijdens de eerste [...]
‘Mijn object is immutable, want alles is final en ik heb geen Setters!’
12 september 2011
In deze blog ga ik in op de bovenstaande stelling. Is het namelijk wel zo dat een object immutable is wanneer alles final is en er geen Setters zijn gedefinieerd? Het klinkt in ieder geval erg logisch. Tot je er mee gaat werken en je situaties tegen komt waarbij dat absoluut niet zo is! Erg [...]
Lees verder >>
Lees verder >>
Doe mij maar een statisch getypeerde taal
26 augustus 2011
…en ik zal je vertellen waarom. Ik ben gisteren drieëneenhalf uur tijd kwijtgeraakt doordat de schrijver van de Python-API waar ik tegenaanpraat (een relatief onbekend bedrijfje met de naam Google) een kleine inconsequentie bleek te hebben ingebouwd, iets dat met een statisch getypeerde taal binnen een minuut duidelijk was geworden.
Er bestaan verschillende meningen over wat [...]
Lees verder >>
Lees verder >>
When Rome is lost in her ways
25 juli 2011
“Er zijn meer wegen die naar Rome leiden”
zegt het bekende spreekwoord, met de implicatie: “Verschillende paden kunnen worden bewandeld om bij hetzelfde doel uit te komen.”
Vertaalt naar softwareontwikkeling zou dit kunnen inhouden dat er verschillende manieren mogelijk zijn om een bepaalde oplossing te implementeren. Of, een probleem die op verschillende manieren op te lossen is. [...]
Lees verder >>
Lees verder >>
Modelleerpatronen (4): Eventprocessing op objectniveau
18 juli 2011
Titel: eventprocessing op objectniveau
Doel: Als een model grote hoeveelheden events moet kunnen verwerken die voor verschillende berekeningen relevant zijn kan het handig zijn het uitgangspunt te hanteren dat alle objecten in de boom alle events ontvangen. Zo kan elk object zelf een stukje processing verzorgen en hoef je als ontwikkelaar niet na te denken over [...]
Lees verder >>
Lees verder >>
Gebruik geen GUIDs in NHibernate
12 juli 2011
Iedere tabel heeft een primaire sleutel. De vraag is wat bepaalt deze waarde? Er wordt vaak gebruik gemaakt van een GUID, maar er is een beter alternatief beschikbaar.
NHibernate is een Object-Relational-Mapper. Het enige doel van een ORM is om alles dat specifiek is voor een relationeel model, niet in je code hoeft te staan. De [...]
Lees verder >>
Lees verder >>
De pub-sub fruitmand op z’n Twitters
11 juni 2011
In mijn voorgaande blog was ik nog van mening dat Twitter het pub-sub (Publisher Subscriber) pattern nieuw leven had ingeblazen met nieuwe features. Ik stelde, in mijn naïviteit, het observer pattern en het pub-sub pattern gelijk aan elkaar, als waren het twee appeltjes in ene fruitmand. Maar niets is minder waar. Het is zelfs [...]
Lees verder >>
Lees verder >>
Modelleerpatronen (3): Niet-groeiende objectbomen
29 mei 2011
Titel: Niet-groeiende objectbomen
Doel: Door je objectengraaf die je model representeert in het geheugen uit een vast – niet te groot – aantal objecten te laten bestaan kan een model volledig in het werkgeheugen geladen worden zodat er geen continue prestatieverliezen zijn door laden- en wegschrijven uit een database. Meer real-time achtige verwerking (voor o.a. monitoringapplicaties) [...]
Lees verder >>
Lees verder >>

