Zo bouw ik complete features met AI als developer
Als onafhankelijke developer en digital problem solver ben ik altijd op zoek naar manieren om slimmer, efficiënter en strakker te werken. Wie de ontwikkelingen op het gebied van Artificial Intelligence volgt, weet dat AI inmiddels bakken met code kan genereren. Maar wie denkt dat je er bent met een snelle vraag en even lekker 'vibe coden' op basis van één enkele prompt, komt bedrogen uit. Vaak resulteert dat in losse brokken code die niet passen binnen een bestaande architectuur, of zit je al snel vast aan een dichtgetimmerd ecosysteem.
De sleutel tot succes zit hem wat mij betreft niet in een willekeurige losse prompt, maar in de voorbereiding, de juiste omringende tools én onafhankelijkheid. Door AI te integreren in een strakke, gecontroleerde workflow, laat ik tegenwoordig complete features en modules bouwen in een maatwerk architectuur – zónder concessies aan de kwaliteit of vendor lock-in.
Hoe die setup eronder de motorkap uitziet? Dit is mijn aanpak.
LLM-onafhankelijk ontwikkelen met PhpStorm en Junie
Om volledige controle te behouden over de tools en AI-modellen die ik inzet, vermijd ik liever gesloten platforms die je aan een specifieke vendor binden. Ik werk daarom graag vanuit mijn vertrouwde omgeving in PhpStorm, gecombineerd met Junie. Hiermee kan ik flexibel wisselen tussen verschillende Language Models (LLM's) en ben ik niet afhankelijk van één ecosysteem. Zo blijft de regie over de codebase en de gekozen AI-technologie volledig in eigen hand.
Context is koning: Skills en de Gitnexus MCP-server
Een AI-model kent jouw codebase uiteraard niet van nature. Om dat op te lossen, werk ik met slimme vangnetten binnen die ontwikkelomgeving:
- Specifieke Skills: Ik gebruik vooraf gedefinieerde skills die exact vertellen hoe mijn project technisch in elkaar zit, welke standaarden ik hanteer en welke architectuur er wordt gevolgd.
- Gitnexus MCP-server: Door gebruik te maken van de Model Context Protocol (MCP) server van Gitnexus, weet de LLM precies wat de code-afhankelijkheden en de directe impact van een wijziging zijn. Geen gokwerk, maar diepgaand inzicht in de structuur.
Gestructureerde instructies via het OpenSpec-framework
Wanneer de context helder is, volgt de instructie voor de taak zelf. Om te voorkomen dat een AI alle kanten op vliegt, laat ik de instructies schrijven (of schrijf ik ze zelf) volgens het OpenSpec-framework. Dit zorgt voor kristalheldere, afgekaderde specificaties waarin precies staat wat er gebouwd moet worden en aan welke randvoorwaarden het moet voldoen.
Kwaliteitsbewaking: Geautomatiseerde checks en menselijke validatie
Code die gegenereerd wordt, moet wel ijzersterk zijn. Om de codekwaliteit te bewaken, laat ik de AI-agent direct de gebruikelijke tools inzetten, zoals het automatisch draaien van unit-tests en code-quality checks.
Daarnaast is de belangrijkste schakel in het proces nog steeds de mens. In alle gevallen voer ik zelf een grondige check en validatie uit voordat een agent of tool door mag naar de volgende stap. De AI is de krachtige motor, maar ik blijf aan het stuur.
Het resultaat is maatwerk op snelheid zonder lock-in
Echte softwareontwikkeling met AI gaat vér voorbij een simpele prompt. Door deze gerichte inzet van AI in een flexibele, doordachte ontwikkelstraat kan ik complete features en modules opleveren in een maatwerk architectuur die direct steengoed in elkaar zitten. Geen gedoe met eindeloze vendor lock-ins of haperende code, maar pure controle, schaalbaarheid en snelheid.