Metaprogramming

Productiever software ontwikkelen door metaprogramming

Tony Koeleman
19 June 2019

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.
Abonneer
Laat het weten als er
guest
0 Comments
Inline feedbacks
Bekijk alle reacties

Ook interessant

0
Zou graag jouw mening willen weten. Laat een reactie achter.x