Antipatronen bij software ontwikkeling
Veel ontwikkelaars hebben op een bepaald punt wel eens gekeken naar de verschillende software patronen die beschikbaar zijn. Deze patronen kunnen gebruikt worden om complexe stukken software efficiënter in te richten en makkelijker te onderhouden of uit te breiden.
Antipatronen zijn hier eigenlijk het tegenoverstelde. Een antipatroon wordt gebruikt als een verzamelnaam voor verschillende patronen die ontwikkelaars aanhouden die door een groot deel van de ontwikkelings community gezien wordt als een 'bad practice'.
Hieronder staan een paar voorbeelden en makkelijke oplosrichting om antipatronen te voorkomen.
Spaghetti code
Een vrij bekende term bij de meeste ontwikkelaars. Spaghetti code kan het resultaat zijn van een ontwikkelaar die zonder na te denken iets gaat realiseren in de code base of door een ondoordachte uitbreiding. Het eindproduct kan wel functioneren zoals bedoeld, maar de onderhoudbaarheid en uitbreidbaarheid worden daardoor niet beter.
Het is daarom dan ook altijd belangrijk om te kijken naar de architectuur waar je iets in gaat realiseren. Daarnaast moet er altijd gekeken worden of de code duidelijk is, makkelijk te onderhouden en duidelijke structuren bevat die zichzelf wijzen.
Copy and paste programeren
Een fenomeen dat veelal voorkomt bij onervaren ontwikkelaars. Programmatuur ontwikkelen d.m.v. het kopiëren en plakken van verschillende online gevonden oplossingen kan een snelle manier zijn om tot een resultaat te komen. Het risico hierbij is alleen dat er functionaliteit wordt gerealiseerd waarvan de ontwikkelaar zelf niet weet hoe het werkt.
Ook wel blackbox programming genoemd, zorgt ervoor dat de code base slecht onderhoudbaar wordt. In het geval dat er aanpassingen nodig zijn, kan dit zorgen voor een dure een tijdconsumerende taak. Dit kan voorkomen worden door meer tijd te steken in het willen begrijpen van de gekopieerde code, of door online gevonden stukken te gebruiken als referentie materiaal.
Online gevonden code is nog steeds heel effectief om te gebruiken, wees er alleen van op de hoogte wat je gebruikt en hoe het werkt.
God object
Een god object ontstaat wanneer een ontwikkelaar één hoofd object gebruikt voor het opzetten van een object en de bedrijfs/ database logica van dat object. Dit lijkt voor kleine applicaties soms een goede en snelle manier voor het realiseren van nieuwe functionaliteit.
Helaas is het tegendeel waar. Over tijd groeit en verschuift de code base van een stuk software, waardoor dit soort god objecten snel een grote cluster kunnen vormen van definities en verschillende soorten logica. Dit maakt de code base dan ook snel moeilijker om te begrijpen, te onderhouden en uit te breiden.
Een god object voorkomen is vrij makkelijk daarentegen. Scheidt de object definitie, bedrijfslogica en de database logica van elkaar!
Antipatronen voorkomen
Het voorkomen en oplossen van bestaande antipatronen kan gedaan worden d.m.v. een goede vorm van systeem management. Hierbij zouden er periodieke code reviews moeten plaatsvinden om antipatronen te identificeren. Samen met terugkerende refactor sessies kunnen deze antipatronen systematisch voorkomen en of verholpen worden.