Wat zijn de mogelijkheden om performance te optimaliseren?

Er zijn 4 manieren om performance te optimaliseren: automatisch door GEARS, door het toevoegen van geoptimaliseerde functies, door het aanroepen van externe functionaliteit of door het isoleren van handmatig te optimaliseren source code.

1. Automatisch door GEARS: GEARS creëert automatisch geoptimaliseerde source code. Dit kan ook omdat GEARS de pure functionele business requirements als invoer krijgt en GEARS dus volledige controle heeft over de gehele oplossing. Hierdoor kunnen zowel de bedrijfsprocessen tot en met de individuele regels in de source code geoptimaliseerd worden. XLRIT zal steeds meer optimalisaties toevoegen aan GEARS. Alle GEARS gecreëerde applicaties kunnen hierdoor met een druk op de knop ook voorzien worden van deze optimalisaties. 

2. Geoptimaliseerde functies: GEARS is al voorzien van een grote hoeveelheid functies die op een begrijpelijke en logische manier gebruikt kunnen worden vanuit de requirements. Denk hierbij als berekeningsfuncties die je ook in Excel zou verwachten zoals afgerond/rounded, maar ook systeem functies zoals huidige_gebruiker/current_user. Al deze functies zijn reeds handmatig geoptimaliseerd. Nieuwe (en dus handmatig geoptimaliseerde functies) kunnen eenvoudig toegevoegd worden. Nu worden die toegevoegd door XLRIT. In de toekomst kunnen die door een willekeurige software ontwikkelaar als "pluggable functions" toegevoegd worden. 

3. Aanroepen van externe functionaliteit: voor het aanroepen van externe functionaliteit bestaat er al een dergelijke pluggable architecture. Dit wordt over het algemeen gebruikt om interfaces aan te roepen naar externe systemen. Maar kan ook gebruikt worden om externe reeds goed werkende functionaliteit aan te roepen. Denk hierbij aan het versturen van een mail of een bericht. Een mooi voorbeeld hiervan is het aanroepen van geoptimaliseerde routeplanningsfunctionaliteit voor het rondbrengen van pakketjes, maaltijden of voor trucks. Er zijn partijen die deze dienst al aanbieden en via een plugin kan deze zeer eenvoudig aangeroepen worden vanuit de requirements. Bijv. met de volgende detail requirements:

GEOPTIMALISEERDE_ADRESSENLIJST = input from EXTERNE_DIENST based on {HUIDIGE_ADRESSENLIJST, "snelste route"}

De "EXTERNE_DIENST" zal vervolgens een optimale route vinden tussen alle adressen in de HUIDIGE_ADRESSENLIJST hetgeen een nieuwe GEOPTIMALISEERDE_ADRESSENLIJST zal opleveren waarbij de totale route bijv. het minst lang is of juist (in dit voorbeeld) de minste tijd kost. Zie hieronder een visueel voorbeeld van een geoptimaliseerde route tussen verschillende adressen.

4. Isoleren van handmatig te optimaliseren source code: de voorgaande 3 opties zijn reguliere en daardoor meest gebruikte manieren om het systeem te optimaliseren. Dit dekt in de praktijk nagenoeg 100% van alle gewenste optimalisaties. Echter, in uitzonderlijke gevallen zijn deze opties niet tijdig mogelijk. In dergelijke gevallen kun je ook gegenereerde source code isoleren zodat je deze handmatig kunt optimaliseren en je zo min mogelijk last hebt van een regeneratie van de source code. Omdat dit echter bij iedere release wel wat tijd kost (zeg ongeveer een half uur) heeft dit niet de voorkeur. De kans dat in dit handmatige werk fouten ontstaan is miniem. Dit omdat er na dit handmatig werk ook altijd een automatische regressietest wordt uitgevoerd.