Architektura
Pokročilý
Clean Architecture — vrstvy a závislosti
Robert C. Martin's Clean Architecture. Pravidlo závislostí, entity, use cases a implementace.
Čtyři vrstvy
- Entities — enterprise business rules
- Use Cases — application business rules
- Interface Adapters — controllers, gateways
- Frameworks — DB, UI, web framework
Závislosti směřují pouze dovnitř. Vnitřní vrstvy neví o vnějších.
Implementace
# entities/user.py — žádné vnější importy!
class User:
def __init__(self, name: str, email: str):
if '@' not in email: raise ValueError("Invalid email")
self.name = name
self.email = email
# use_cases/create_user.py
class CreateUserUseCase:
def __init__(self, user_repo: UserRepository):
self.user_repo = user_repo
def execute(self, name, email) -> User:
user = User(name, email)
self.user_repo.save(user)
return user
Dependency Inversion
Use case definuje interface, vnější vrstva implementuje. To je klíč k nezávislosti.
Shrnutí
Clean Architecture zajišťuje nezávislost byznys logiky na frameworkách. Clean, Hexagonal a Onion sdílejí stejný princip — izolace domény.
Potřebujete pomoct s implementací?
Náš tým má zkušenosti s návrhem a implementací moderních architektur. Rádi vám pomůžeme.
Nezávazná konzultace