Skip to main content

Het inzetten van metaprogramming om het softwareontwikkelproces te automatiseren, daar waar het kan en nuttig is. Waarom is dat fijn voor een ontwikkelaar?

Een software engineer is trots op zijn eigen code en de applicaties die hij ontwikkelt: je applicaties doen wat ze moeten doen en de code is een lust voor het oog. Het is geen wonder dat ontwikkelaars terughoudend zijn met codegeneratoren of Model Driven Architecture tools. Er zijn toepassingsgebieden waarbij generatoren of MDA-tools bruikbaar zijn, maar ze voldoen zelden aan de norm en standaarden die een excellerende ontwikkelaar aan software code stelt. Ontdek hoe wij door middel van metaprogramming de brug slaan.

Metaprogramming: slim automatiseren

Met het toepassen van metaprogramming blijft de ontwikkelaar de baas over zijn eigen code en architectuur. Tegelijkertijd wordt de ontwikkelaar verlost van het ambachtelijk inkloppen van de code. In applicaties zitten patronen. Patronen maken de onderdelen van een applicatie vergelijkbaar en herkenbaar.

Functionele patronen zijn goed voor de eindgebruiker, die een harmonieus werkende applicatie te zien krijgt. Technische patronen zijn goed voor de kwaliteit van de software, de kennisoverdracht tussen ontwikkelaars en de aanpasbaarheid van de applicatie.

De ontwikkelaar onderkent de patronen en legt deze vast in code instructies. Door de code instructies te hergebruiken wordt het repeterende werk van de ontwikkelaar geëlimineerd.

Metaprogramming met de Code Composer

MetaFactory heeft jarenlang gewerkt aan de ontwikkeling van de Code Composer waarmee zich herhalende of generieke functionaliteiten kunnen worden geautomatiseerd. De Code Composer is een tool voor Java. Eerst wordt het datamodel verrijkt met metadata. Deze metadata voorziet de code instructies van de juiste input om de Code Composer Java code te laten genereren. Java code zoals de ontwikkelaar die met de hand geschreven zou hebben.

Vijf voordelen van metaprogramming voor de Java-ontwikkelaar

  1. De ontwikkelaar blijft 100% in controle over de te produceren software.
  2. Het vervelende repeterende werk wordt geëlimineerd.
  3. Het beschrijven van patronen en definiëren van metadata is uitdagender dan het kloppen van code. Het is een abstractie-niveau hoger.
  4. Je productiviteit en kwaliteit neemt nog verder toe.
  5. Briljante ingevingen en voortschrijdende inzichten blijven niet beperkt tot nieuwe code. Ook bestaande code pas je hier eenvoudig op aan.