Die Schichtenarchitektur ist eine klassische Methode zur Organisation von IT-Systemen, bei der die Anwendung in eine Reihe von Schichten strukturiert wird, von denen jede ein separates Abstraktionsniveau implementiert: Benutzeroberfläche, Geschäftslogik, Datenzugriff und Infrastrukturmechanismen. Üblicherweise werden die Presentation Layer (UI), Business Logic Layer, Data Access Layer und Data Layer unterschieden.
Jede Schicht interagiert nur mit den benachbarten, was zur Modularität beiträgt und die Wartung des Codes erleichtert. Dieser Ansatz ermöglicht es, einzelne Teile des Systems einfach zu testen und zu refaktorisieren.
Beispielcode (Schichtenarchitektur in Python):
# Data Layer class UserRepository: def get_user(self, user_id): # Benutzer aus DB abrufen pass # Business Logic Layer class UserService: def __init__(self, repo): self.repo = repo def get_user_profile(self, user_id): user = self.repo.get_user(user_id) # Geschäftslogik return user # Presentation Layer class UserController: def __init__(self, service): self.service = service def get(self, user_id): user_profile = self.service.get_user_profile(user_id) return user_profile
Wesentliche Merkmale:
Kann man vom oberen Layer direkt auf den unteren zugreifen, ohne die dazwischenliegenden zu durchlaufen?
Nein, gemäß den Ideen der Schichtenarchitektur interagiert jede Schicht nur mit der Schicht direkt unter ihr. Ein Verstoß gegen dieses Prinzip führt zu starken Kopplungen und einer Verschlechterung der Wartbarkeit.
Ist es wahr, dass die Schichtenarchitektur schlecht skalierbar ist?
Nicht immer. Skalierung ist möglich, kann aber im Vergleich zu Mikrodiensten komplexer sein. Die horizontale Skalierung einzelner Schichten (z.B. eines Backend-Dienstes) ist gängige Praxis.
Kann eine Schicht Logik implementieren, die sich auf mehrere Schichten gleichzeitig bezieht?
Im Idealfall – nein. Kreuzende Geschäftslogik führt zu Verwirrung und erschwert die Wartung. Funktionen und Klassen sollten sich auf der entsprechenden Schicht befinden.