_CORE
AI & Agentic Systems Core Information Systems Cloud & Platform Engineering Data Platform & Integration Security & Compliance QA, Testing & Observability IoT, Automation & Robotics Mobile & Digital Banking & Finance Insurance Public Administration Defense & Security Healthcare Energy & Utilities Telco & Media Manufacturing Logistics & E-commerce Retail & Loyalty
References Technologies Blog Know-how Tools
About Collaboration Careers
CS EN
Let's talk

SOLID principy prakticky

03. 09. 2025 1 min read intermediate

SOLID principy vedou k udržovatelnému, rozšiřitelnému kódu. Ne dogma, ale užitečné guidelines.

S — Single Responsibility

❌ Špatně — třída dělá vše

class UserManager: def create_user(self, data): … def send_email(self, user): … def generate_report(self, users): …

✅ Správně — oddělené zodpovědnosti

class UserService: def create_user(self, data): … class EmailService: def send_welcome(self, user): … class ReportService: def generate(self, users): …

O — Open/Closed

Otevřený pro rozšíření, uzavřený pro modifikaci

class PaymentProcessor(Protocol): def process(self, amount: float) -> bool: … class StripePayment: def process(self, amount: float) -> bool: … class PayPalPayment: def process(self, amount: float) -> bool: …

Přidání nového typu = nová třída, ne modifikace existující

D — Dependency Inversion

❌ Vysokoúrovňový modul závisí na nízkoúrovňovém

class OrderService: def __init__(self): self.db = PostgresDB() # Hard dependency

✅ Závisí na abstrakci

class OrderService: def __init__(self, db: DatabasePort): self.db = db # Injected, testable

L — Liskov Substitution & I — Interface Segregation

  • Liskov: Podtřída musí být zaměnitelná za rodičovskou
  • Interface Segregation: Malé, specifické interfaces místo jednoho velkého

Key Takeaway

SRP: jedna třída = jedna zodpovědnost. DIP: závisejte na abstrakcích. SOLID jako guidelines, ne dogma.

solidoopdesignbest practices
Share:

CORE SYSTEMS tým

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.