Tag SOLID

Overerving, compositie en dependency injection

Mijn collega had overerving toegepast om de nieuwe functionaliteit een plek te kunnen geven. De afgelopen maanden had ik gemerkt dat dit voor hem, en veel van mijn andere teamgenoten, een go to-oplossing vormt om code te kunnen hergebruiken. Maar ik was niet helemaal tevreden met het resultaat van die strategie. Ik voelde meer voor een oplossing die gebruik maakt van compositie. Het leek me een mooie gelegenheid om wat ideeën over deze concepten op papier te zetten.

Wat is de O in SOLID nog waard?

Een ontwikkelaar die eens code schrijft en deze nooit meer aan denkt te hoeven passen, is een ontwikkelaar die rot in zijn applicatie verwelkomt. Een al te strikte naleving van het Open-closed principe (OCP) getuigt van een ronduit onverantwoorde houding - in elk geval binnen de context van Agile ontwikkeling. Waar komt de aantrekkingskracht van het OCP dan vandaan?

Enums, switch statements en SOLID - deel 7

Een eeuwigheid geleden - april vorig jaar - schreef ik een reeks blogs over wat logica die rondom een Enum gebouwd was. Bijna een jaar na dato stel ik de vraag: wat probeerde ik nu eigenlijk te bereiken? - Eigenlijk was mijn use case betrekkelijk eenvoudig. Ik wilde wat logica kunnen koppelen aan een Enum-waarde, dat is alles. Sterker nog, die wens is niet alleen eenvoudig, hij is ook ontzettend generiek. Dat is een significante observatie. Gezien de generieke aard van het codeerprobleem, is er eigenlijk geen enkele reden waarom ik code zou moeten schrijven het probleem op te lossen.

Enums, switch statemens en SOLID - deel 6

De conclusie van onze refactorslag rondom een op een enum gebaseerd switch statement! Ik hoop de afgelopen weken aan te hebben getoond hoe het gebruik van SOLID-principes je code beter onderhoudbaar kan maken. Vandaag concluderen we met de vraag: moet je morgen meteen dit patroon uit je code base refactoren?

Enums, switch statements en SOLID - deel 5

De afgelopen weken heb ik een stuk switch statement rondom een enum gerefactord om meer in lijn te zijn met de SOLID-principes. Deze week kijken we naar de performance-impact van die wijzigingen op de code, en onderzoeken we of we die zo klein mogelijk kunnen houden. Spoiler: SOLID en performance hoeven elkaar niet te bijten!

Enums, switch statements en SOLID - deel 4

Vorige week refactorde ik een switch statement rondom een enum aan de hand van het Dependency inversion principe. Deze week zetten we onze refactorslag voort aan de hand van het de O in SOLID: het Open-closed principe. Zo voorkomen we dat we onze code hoeven te herschrijven, elke keer als we onze enum aanpassen.

Enums, switch statements en SOLID - deel 3

Vorige week refactorde ik een switch statement rondom een enum aan de hand van het Single-Responsibility principe. Deze week zetten we onze refactorslag voort aan de hand van de D in SOLID: het Dependency inversion principe. Tijd om de interfaces van stal te halen!

Enums, switch statements en SOLID - deel 2

Vorige week liet ik een stuk code zien dat op verschillende manieren de SOLID-principes schond. Deze week gaan we aan de hand van het Single-Responsibility principe een eerste stap zetten deze code te refactoren om hem wat makkelijker onderhoudbaar te maken.

Enums, switch statements en SOLID - deel 1

Onlangs stuitte ik op een stuk code dat ik de dagen erop maar niet uit mijn hoofd kreeg. (Ik ben er nog niet helemaal over uit of dat tekenend is voor mijn passie voor en/of professionaliteit als softwareontwikkelaar, of voor mijn langzame aftakeling gedurende de coronacrisis.) Het ging om een switch statement rond een enum. De komende weken zal ik deze code refactoren om aan SOLID principes te voldoen.