Object-oriented programming (OOP) is een manier om software op te bouwen rond objecten: zelfstandige eenheden die zowel data bevatten als de acties die op die data werken. In plaats van één lange lijst met instructies wordt het programma een verzameling objecten die elk hun eigen informatie kennen en weten wat ze kunnen. Een Klant-object kent zijn naam en bestellingen; een Factuur-object weet hoe het zijn eigen totaal berekent.

Een handige vergelijking is een doos LEGO-blokjes. Elk blokje is een afgewerkte, betrouwbare eenheid met zijn eigen vorm en noppen. Je bouwt iets groots door blokjes aan elkaar te klikken, en je kunt één blokje vervangen zonder het hele model opnieuw te bouwen. OOP steunt op een paar ideeën die dit mogelijk maken, waaronder encapsulation, dat de rommelige binnenkant van een object verbergt, en polymorfisme, waarmee verschillende objecten op hun eigen manier op dezelfde instructie reageren.

Objecten komen meestal uit een blauwdruk die een class heet. Je schrijft de Klant-class één keer en maakt er daarna duizenden klantobjecten van, elk met een eigen naam en bestelgeschiedenis maar hetzelfde gedeelde gedrag. Dat hergebruik is een groot deel van de aantrekkingskracht in een grote codebase.

De meeste populaire bedrijfstalen, zoals Java, C# en Python, ondersteunen deze stijl. Het werd de standaard voor grote applicaties omdat het netjes aansluit op hoe mensen al denken: in termen van dingen en wat die dingen doen. Maar het kent ook nadelen. Te veel overerving of logica verspreid over te veel piepkleine objecten kan een systeem juist moeilijker te volgen maken, dus goede OOP draait net zozeer om terughoudendheid als om structuur.

Bij TopDevs leunen we op objectgeoriënteerd ontwerp als een klantsysteem veel bewegende delen heeft, omdat heldere grenzen tussen objecten de code veiliger maken om jaren na de eerste versie nog uit te breiden.