In software is een interface een afgesproken grens die bepaalt hoe een deel van een systeem met een ander deel kan praten, terwijl het de rommelige binnenkant uit het zicht houdt. Hij beschrijft wat je kunt vragen, niet hoe het antwoord tot stand komt. Beide kanten spreken het contract af en houden zich eraan.

Zie het als het dashboard van een auto. Het stuur, de pedalen en de versnellingspook zijn de interface tussen jou en de motor. Je draait aan het stuur en de auto reageert, zonder dat je ooit de techniek onder de motorkap aanraakt. Vervang de benzinemotor door een elektrische en de interface blijft hetzelfde, dus je rijdt de auto zoals je altijd deed. In code is dit idee nauw verbonden met abstractie, dat complexiteit verbergt, en een API is in de kern een interface tussen hele systemen.

Het voordeel is flexibiliteit. Zolang een onderdeel dezelfde interface blijft eren, kan het team herbouwen of vervangen wat erachter zit zonder alles te breken dat ervan afhangt.

In de praktijk zie je dit in alledaags werk. Een betaalinterface kan één methode definiëren, “belast deze kaart met dit bedrag,” en je code roept die op dezelfde manier aan, of de provider erachter nu Stripe of Mollie is. Wissel van provider, schrijf een nieuwe invulling achter dezelfde interface, en de rest van de app merkt er niets van.

De kanttekening is dat een interface een belofte is. Verander wat hij verwacht of teruggeeft, en elk deel dat op de oude vorm leunde kan in één keer breken. Daarom houd je een goede interface klein en stabiel, en pas je hem alleen met echte zorg aan.

Bij TopDevs ontwerpen we heldere interfaces tussen de delen van je systeem, zodat een toekomstige verandering aan één stuk geen dure herschrijving van alles eromheen afdwingt.