Archief voor augustus, 2009

Anti-patterns: Cache Cows

31 augustus 2009

Omschrijving
Een stuk software is ontwikkeld met een heel duidelijk uitgangspunt: database interactie is langzaam, dus we cachen zoveel mogelijk. De optimalisatie gaat zelfs zo ver dat er diverse pointerstructuren en anderszins curieuze implementaties van collecties gemaakt zijn om maar zo snel mogelijk gegevens te kunnen oplepelen. Helaas is het wel zo dat de software nu toch wel eens gemigreerd moet worden naar die nieuwe versie van het ontwikkelplatform, of nog liever: laten we de decenniumswitch volgend jaar maar eens plannen.
Lees verder >>

Omschrijving
Een stuk software is ontwikkeld met een heel duidelijk uitgangspunt: database interactie is langzaam, dus we cachen zoveel mogelijk. De optimalisatie gaat zelfs zo ver dat er diverse pointerstructuren en anderszins curieuze implementaties van collecties gemaakt zijn om maar zo snel mogelijk gegevens te kunnen oplepelen. Helaas is het wel zo dat de software nu toch wel eens gemigreerd moet worden naar die nieuwe versie van het ontwikkelplatform, of nog liever: laten we de decenniumswitch volgend jaar maar eens plannen.
Lees verder >>

Antipatterns: Who built these pyramids?

30 augustus 2009

Omschrijving
Een (aantal) slimme geest(en) heeft/hebben in het verleden een fantastisch ontwikkelframework neergezet voor een applicatie. Er zijn diverse geavanceerde plug-in structuren zichtbaar, en veel is configureerbaar. Daarnaast zit er een vorm van caching in die veel werk uit handen neemt, alleen: er mist documentatie. Sterker nog, er is geen enkele documentatie. Daarnaast blijken veel van de structuren in meer of mindere mate overbodig of zijn al lang niet gebruikt doordat er diverse mensen aan hebben gewerkt die niet op de juiste wijze uitbreidingen hebben gemaakt.
Lees verder >>

Omschrijving
Een (aantal) slimme geest(en) heeft/hebben in het verleden een fantastisch ontwikkelframework neergezet voor een applicatie. Er zijn diverse geavanceerde plug-in structuren zichtbaar, en veel is configureerbaar. Daarnaast zit er een vorm van caching in die veel werk uit handen neemt, alleen: er mist documentatie. Sterker nog, er is geen enkele documentatie. Daarnaast blijken veel van de structuren in meer of mindere mate overbodig of zijn al lang niet gebruikt doordat er diverse mensen aan hebben gewerkt die niet op de juiste wijze uitbreidingen hebben gemaakt.
Lees verder >>

Antipatterns: Compulsive Shopping Disorder

29 augustus 2009

Bij Sogyo komen we veel bij de software ontwikkelaar thuis. Over de jaren hebben we al veel verschillende projecten gezien, waar dingen vaak goed gaan maar soms ook minder goed. Ook zijn we zelf niet onbekend met het fenomeen “minder handige keuze” :). Juist de fouten of minder handige keuzes van anderen zijn erg leerzaam: door ze goed vast te leggen hoef je ze misschien zelf niet te maken.
Lees verder >>

Bij Sogyo komen we veel bij de software ontwikkelaar thuis. Over de jaren hebben we al veel verschillende projecten gezien, waar dingen vaak goed gaan maar soms ook minder goed. Ook zijn we zelf niet onbekend met het fenomeen “minder handige keuze” :). Juist de fouten of minder handige keuzes van anderen zijn erg leerzaam: door ze goed vast te leggen hoef je ze misschien zelf niet te maken.
Lees verder >>

Type inference in F#

21 augustus 2009

Elke Javaan en Dotnetter is 8% (gokje hoor) van zijn tijd bezig om de compiler te vertellen dat de i variabele van het type int is, net zoals die andere tig i variabelen in de rest van de code. En als we een lap tekst tussen haakjes zetten, we een string bedoelen. Wat een [ouderwets] gedoe hé. En dat in deze moderne eeuw. Terwijl er intelligente programma’s bestaan die Kasparov van het bord afschaken is het even te veel gevraagd om te (tijdens compiletime) detecteren wat voor type we nu zouden bedoelen. Terwijl, als de compiler een beetje doordenkt het vaak wel erg voor de handliggend is wat het nu zou moeten zijn. Het gevolg is dat iedere nieuwe typed taal sceptisch wordt ontvangen. Wat de voordelen van static boven dynamic typed ook moge zijn, dit gedoe willen we gewoon niet meer. What about F#?
Lees verder >>

Elke Javaan en Dotnetter is 8% (gokje hoor) van zijn tijd bezig om de compiler te vertellen dat de i variabele van het type int is, net zoals die andere tig i variabelen in de rest van de code. En als we een lap tekst tussen haakjes zetten, we een string bedoelen. Wat een [ouderwets] gedoe hé. En dat in deze moderne eeuw. Terwijl er intelligente programma’s bestaan die Kasparov van het bord afschaken is het even te veel gevraagd om te (tijdens compiletime) detecteren wat voor type we nu zouden bedoelen. Terwijl, als de compiler een beetje doordenkt het vaak wel erg voor de handliggend is wat het nu zou moeten zijn. Het gevolg is dat iedere nieuwe typed taal sceptisch wordt ontvangen. Wat de voordelen van static boven dynamic typed ook moge zijn, dit gedoe willen we gewoon niet meer. What about F#?
Lees verder >>

The Ultimate Power of Currying with Closures

07 augustus 2009

In mijn tweede post over het onder de aandacht brengen van functioneel programmeren gaan we een functionele techniek nader bekijken, de combinatie van currying en closures. Nooit van gehoord? Check it out now! Je kunt er leuke dingen mee doen plus zijn het aardige woorden om uw vocabulaire mee te verrijken. Ik hoop de technieken tussen de regels uit te leggen. Veel leesplezier!
Lees verder >>

Stoeien met functionele technieken.

DCI: een andere blik

04 augustus 2009

Een tijdje geleden heeft André Boonzaaijer een blogpost over DCI geschreven. Zijn conclusie was: “Of DCI (…) de ideale manier is weet ik niet”. Ik was ook niet overtuigd toen ik het artikel van Trygve Reenskaug en James O. Coplien las waar André naar verwees. Trygve Reenskaug, de bedenker van DCI, heeft echter meer hierover geschreven en naar mijn mening zijn zijn ideeën duidelijker gemaakt in het lange artikel “The Common Sense of Object Oriented Programming”. Overtuigd ben ik (nog) niet, maar ik denk wel dat het de moeite waard is om uit te proberen.
Lees verder >>

Een tijdje geleden heeft André Boonzaaijer een blogpost over DCI geschreven. Zijn conclusie was: “Of DCI (…) de ideale manier is weet ik niet”. Ik was ook niet overtuigd toen ik het artikel van Trygve Reenskaug en James O. Coplien las waar André naar verwees. Trygve Reenskaug, de bedenker van DCI, heeft echter meer hierover geschreven en naar mijn mening zijn zijn ideeën duidelijker gemaakt in het lange artikel “The Common Sense of Object Oriented Programming”. Overtuigd ben ik (nog) niet, maar ik denk wel dat het de moeite waard is om uit te proberen.
Lees verder >>

IoC versus Observable revisited

02 augustus 2009

Deze week kwam er weer een oude vertrouwde discussie langs: IoC versus Observable. Mijn collega Ralf Wolter heeft hier een tijd terug al eens een inspirerende blogpost over geschreven: Liever geen Inversion of Control.
Lees verder >>

Deze week kwam er weer een oude vertrouwde discussie langs: IoC versus Observable. Mijn collega Ralf Wolter heeft hier een tijd terug al eens een inspirerende blogpost over geschreven: Liever geen Inversion of Control.
Lees verder >>