Eliminierung technischer Schulden mit PHPStan, Rector PHP und PHPUnit. Über 20 Jahre Praxiserfahrung in skalierbaren Backends.
- Aktualisiert:
- Autor:
- Roland Golla
Bounded Context: Definition und Einordnung
Inhalt
Bounded Context mit NCA: Schnelle Hilfe vom Experten
Gesetzliche Konformität & Inklusion. Optimierung von Performance und Conversion durch radikal nutzerzentriertes, universelles Design.
Skalierbare KI-Systeme mit echtem Code Ownership. CI/CD, Backup-Strategien und Infrastruktur, die mit deinem Team wächst.
Woran man einen guten Schnitt erkennt
- Sprachwechsel: Dasselbe Wort bedeutet in zwei Abteilungen etwas anderes.
- Eigener Rhythmus: Ein Bereich ändert sich monatlich, der andere einmal im Jahr.
- Klare Verantwortung: Ein Team kann den Bereich alleine ändern und ausrollen.
- Wenige Übergänge: Der Austausch mit anderen Bereichen passt auf eine Seite.
Bounded Context in PHP umsetzen
src/
Vertrieb/
Domain/
Application/
Infrastructure/
Buchhaltung/
Domain/
Application/
Infrastructure/
Shared/
Domain/
deptrac:
layers:
- name: Vertrieb
collectors:
- type: directory
value: src/Vertrieb/.*
- name: Buchhaltung
collectors:
- type: directory
value: src/Buchhaltung/.*
ruleset:
Vertrieb:
- Shared
Buchhaltung:
- Shared
Ein Modell für alles gegen mehrere Bounded Contexts
| Thema | Ein gemeinsames Modell | Mehrere Bounded Contexts |
|---|---|---|
| Begriffe | Ein Wort muss alle Bedeutungen abdecken | Jeder Kontext definiert seine Begriffe selbst |
| Änderungen | Jede Änderung betrifft potenziell alle Teams | Änderungen bleiben innerhalb der Grenze |
| Tests | Lange Laufzeit, viele Abhängigkeiten | Kleine, schnelle Tests pro Bereich |
| KI Agents | Kontext zu groß, Agent ändert Unbeteiligtes | Klarer Arbeitsbereich mit eigenen Tests |
Grenzen als Arbeitsbereich für KI Agents
A model is a selectively simplified and consciously structured form of knowledge.
Die NCA Erfahrung mit Grenzen in gewachsenen Systemen
Erreichen Sie unsere PHP Consultant Spezialisten
Wir sind Experten für PHP und helfen Ihnen, Ihre digitalen Herausforderungen zu meistern. Unser erfahrenes Team unterstützt Sie bei PHP Updates, PHP Refactoring und berät Sie remote zu allen Fragen rund um PHP. Mit unseren vollautomatischen CI/CD Deployments und einer robusten Docker-Infrastruktur bringen wir Ihre PHP-Projekte auf das nächste Level. Vertrauen Sie auf unsere Expertise für zuverlässige und skalierbare PHP-Lösungen.
Häufige Fragen zu Bounded Context
Was ist ein Bounded Context 2026 einfach erklärt?
Ein Bounded Context ist ein abgegrenzter fachlicher Bereich, in dem ein Modell und seine Begriffe eindeutig gelten. Innerhalb der Grenze bedeutet ein Wort genau eine Sache. Außerhalb darf dasselbe Wort etwas anderes heißen, weil dort ein eigenes Modell gilt. Die Grenze ist eine fachliche Vereinbarung, keine technische Ordnerstruktur.
Wie viele Bounded Contexts braucht ein Projekt 2026?
So wenige wie möglich und so viele wie nötig. In der Praxis liegen die meisten Systeme bei einer einstelligen Zahl. Jeder Kontext kostet Übersetzungsaufwand an der Grenze. Wenn zwei Bereiche ständig dieselben Daten austauschen und immer gemeinsam geändert werden, waren es wahrscheinlich zwei Kontexte zu viel.
Braucht ein Bounded Context 2026 einen eigenen Microservice?
Nein. Ein Bounded Context ist eine fachliche Grenze, kein Deployment. Ein modularer Monolith mit klar getrennten Namespaces erfüllt denselben Zweck und ist einfacher zu betreiben. Wenn ein Bereich später eigene Skalierung oder ein eigenes Release braucht, lässt er sich entlang der bestehenden Grenze herauslösen.
Wie sichert man Grenzen 2026 technisch ab?
Mit Werkzeugen in der Pipeline. Deptrac beschreibt Layer und meldet jeden verbotenen Zugriff. PHP Architecture Tester und PHP Arkitect formulieren Architekturregeln als normale Tests, die mit PHPUnit laufen. Ein Verstoß bricht damit den Build und nicht erst das Code Review, in dem ihn ohnehin niemand sieht.
Warum helfen Bounded Contexts 2026 bei KI Agents?
Weil sie einen begrenzten Arbeitsbereich liefern. Der Code eines Kontexts passt ins Kontextfenster, die Begriffe sind eindeutig und die Testsuite ist klein genug für schnelles Feedback. Der Auftrag lautet dann ändere diesen Bereich statt ändere das System. Architekturtests fangen ab, was der Agent falsch verbindet.
Wie findet man die richtigen Grenzen?
Über die Sprache. Wo ein Begriff seine Bedeutung wechselt, liegt fast immer eine Grenze. Zweiter Hinweis ist die Organisation: Bereiche, die von unterschiedlichen Teams mit unterschiedlichem Rhythmus geändert werden, gehören getrennt. Ein Workshop mit den Fachleuten bringt hier mehr als jede Analyse des bestehenden Codes.
Was ist der Unterschied zwischen Bounded Context und Modul?
Ein Modul ist eine technische Gliederung, ein Bounded Context eine fachliche. Ein Modul kann Teil eines Kontexts sein, ein Kontext kann aus mehreren Modulen bestehen. Entscheidend ist die Frage nach dem Modell: Gilt innerhalb der Einheit genau eine Bedeutung je Begriff, handelt es sich um einen Bounded Context.
Wie kommunizieren zwei Bounded Contexts miteinander?
Über eine bewusst gestaltete Schnittstelle. Üblich sind Domain Events, ein schmales Interface oder eine veröffentlichte Sprache, auf die sich beide Seiten einigen. Zum Altsystem hin übersetzt ein Anti Corruption Layer. Direkter Zugriff auf die Datenbank des anderen Kontexts ist der schnellste Weg, die Grenze wieder aufzulösen.
Dürfen zwei Kontexte dieselbe Datenbank nutzen?
Technisch ja, fachlich nur mit getrennten Tabellen und klaren Eigentumsverhältnissen. Jede Tabelle gehört genau einem Kontext, andere lesen nicht direkt mit. Sobald zwei Kontexte auf dieselbe Tabelle schreiben, ist die Grenze weg, und jede Schemaänderung betrifft wieder beide Seiten gleichzeitig.
Wie geht man mit gemeinsam genutztem Code um?
Sparsam. Ein Shared Bereich für echte Allgemeinplätze wie Geldbeträge oder Zeitspannen ist sinnvoll. Sobald dort fachliche Logik landet, entsteht ein neuer Monolith in der Mitte. Im Zweifel lieber doppelter Code in zwei Kontexten als eine gemeinsame Klasse, die von beiden Seiten in verschiedene Richtungen gezogen wird.
Lassen sich Grenzen nachträglich in Legacy Code einziehen?
Ja, das ist der Normalfall. Zuerst wird sichtbar gemacht, was heute zusammenhängt, danach wird das Verhalten mit Tests festgehalten. Erst dann wird verschoben, Stück für Stück, mit Parallel Change für Schema und API. Ein Big Bang Umbau ohne diese Vorarbeit scheitert zuverlässig.
Wie viel Aufwand steckt in der Einführung?
Das hängt vom Zustand des Systems ab. Fehlen Tests und Pipeline, geht der größere Teil in die Absicherung, bevor überhaupt eine Grenze gezogen wird. Bei NCA startet jede Zusammenarbeit mit einem kostenlosen Kennenlernen, danach schätzen wir den Aufwand ein und rechnen transparent minutengenau ab.