Clean Architecture en ontwerppatronen in de praktijk · Les

Cohesie, koppeling en scheiding van verantwoordelijkheden

Beheers drie fundamentele eigenschappen van softwareontwerp die bepalen of code onderhoudbaar blijft: hoge cohesie, lage koppeling en een duidelijke scheiding van verantwoordelijkheden.

Les 4 van 413 stappen

Cohesie, koppeling en scheiding van verantwoordelijkheden is een gratis Clean Architecture en ontwerppatronen in de praktijk-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Clean Architecture en ontwerppatronen in de praktijk. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Clean Architecture en ontwerppatronen in de praktijk bevat in totaal 4 lessen.

Waarom deze eigenschappen belangrijk zijn

Onder clean code en SOLID liggen drie diepere ontwerpeigenschappen: cohesie, koppeling en scheiding van verantwoordelijkheden. Ze verklaren waarom de regels werken.

Wat is cohesie

Cohesie meet hoe goed de verantwoordelijkheden van een module bij elkaar horen. Hoge cohesie betekent één duidelijk omschreven taak; lage cohesie betekent een verzameling ongerelateerde methoden.

Lage versus hoge cohesie

Vergelijk de twee: de klasse Util combineert ongerelateerde aandachtspunten, terwijl UserRepository sterk gericht is. Die focus is hoge cohesie.

// Low cohesion
class Util {
  saveUser() {}
  sendEmail() {}
  formatDate() {}
}
// High cohesion
class UserRepository {
  save() {}
  findById() {}
}

Wat is koppeling

Koppeling meet in hoeverre de ene module afhankelijk is van de interne werking van een andere. Sterke koppeling verspreidt wijzigingen overal; losse koppeling houdt interacties minimaal.

Voorbeeld van sterke koppeling

Hier maakt OrderService zelf een SmtpMailer aan, waardoor de service aan precies die klasse wordt gebonden. Als je de mailer vervangt, moet je de service aanpassen — sterke koppeling.

class OrderService {
  constructor() {
    this.mailer = new SmtpMailer();
  }
}

De koppeling losser maken

Injecteer de mailer in plaats daarvan. Nu is OrderService afhankelijk van een abstractie en accepteert de service elke implementatie. Dat is losse koppeling.

class OrderService {
  constructor(mailer) {
    this.mailer = mailer;
  }
}

De ideale combinatie

De ideale combinatie is hoge cohesie en losse koppeling: gerichte modules die onafhankelijk blijven, zodat systemen eenvoudig te wijzigen, testen en begrijpen zijn.

Scheiding van verantwoordelijkheden

Scheiding van verantwoordelijkheden betekent dat je een programma opsplitst, waarbij elk onderdeel één duidelijk aandachtspunt beheert — houd de gebruikersinterface, bedrijfslogica en gegevenstoegang in afzonderlijke lagen.

Gemengde verantwoordelijkheden

Deze functie verweeft gegevenstoegang, logica en presentatie. Als je één aandachtspunt aanraakt, loop je het risico de andere te breken — gemengde verantwoordelijkheden.

function showTotal(id) {
  const rows = db.query('SELECT * FROM orders WHERE id=' + id);
  const total = rows.reduce((s, r) => s + r.price, 0);
  document.body.innerHTML = 'Total: ' + total;
}

Gescheiden verantwoordelijkheden

Splits dit op in een repository, een rekenmodule en een weergave. Elk aandachtspunt kan nu onafhankelijk worden gewijzigd en getest. Veel overzichtelijker.

const order = repository.findById(id);
const total = calculator.total(order);
view.render(total);

Hoe ze aansluiten op SOLID

Deze eigenschappen vormen de basis van SOLID: het single-responsibilityprincipe bevordert cohesie, dependency inversion bevordert losse koppeling en gelaagdheid geeft uitdrukking aan de scheiding van verantwoordelijkheden.

Korte controle

Hoge cohesie, losse koppeling — kun je ze uit elkaar houden?

Samenvatting

Je kent nu de basis: cohesie houdt gerelateerd werk bij elkaar, losse koppeling beperkt afhankelijkheden en scheiding van verantwoordelijkheden deelt code op basis van doel.

Gratis beginnen

Leer Clean Architecture en ontwerppatronen in de praktijk met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “Cohesie, koppeling en scheiding van verantwoordelijkheden” gratis?

Ja — de volledige tekst van “Cohesie, koppeling en scheiding van verantwoordelijkheden” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Clean Architecture en ontwerppatronen in de praktijk wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Clean Architecture en ontwerppatronen in de praktijk bevat in totaal 4 lessen.

Wat leer ik in “Cohesie, koppeling en scheiding van verantwoordelijkheden”?

Beheers drie fundamentele eigenschappen van softwareontwerp die bepalen of code onderhoudbaar blijft: hoge cohesie, lage koppeling en een duidelijke scheiding van verantwoordelijkheden. Je oefent met Clean Architecture en ontwerppatronen in de praktijk door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Clean Architecture en ontwerppatronen in de praktijk te beginnen?

Ervaring vooraf is niet nodig. Clean Architecture en ontwerppatronen in de praktijk op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Cohesie, koppeling en scheiding van verantwoordelijkheden”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Clean Architecture en ontwerppatronen in de praktijk?

Ja. Elke les over Clean Architecture en ontwerppatronen in de praktijk bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Kennismaking met Clean Code
  2. Overzicht van SOLID-principes
  3. De waarde van goed ontwerp
  4. Cohesie, koppeling en scheiding van verantwoordelijkheden
← Terug naar Clean Architecture en ontwerppatronen in de praktijk