Protokoll #32338

ID32338
Zeitstempel2026-01-02 11:06:17.699892
Clientroot
IP145.224.72.245
Modellclaude-sonnet-4-20250514
Statuscompleted
Tokens258 (Input: 17, Output: 241)
Dauer11484 ms
Request-Zeit2026-01-02 11:06:17.699892
Response-Zeit2026-01-02 11:06:29.183952

Request

{
    "event": "UserPromptSubmit",
    "prompt": "erkläre kurz DI - begriff"
}

Response

{
    "assistant_response": "## Dependency Injection (DI)\n\n**Prinzip:** Abhängigkeiten werden von außen übergeben, nicht intern erstellt.\n\n### Ohne DI (schlecht)\n```python\nclass UserService:\n    def __init__(self):\n        self.db = Database()  # Selbst erstellt - fest verdrahtet\n```\n\n### Mit DI (gut)\n```python\nclass UserService:\n    def __init__(self, db: DatabaseInterface):  # Von außen injiziert\n        self.db = db\n```\n\n### Vorteile\n\n| Aspekt | Ohne DI | Mit DI |\n|--------|---------|--------|\n| Testbar | Schwer (echte DB nötig) | Einfach (Mock übergeben) |\n| Flexibel | Nein (fest verdrahtet) | Ja (austauschbar) |\n| Kopplung | Hoch | Niedrig |\n\n### Beispiel Test\n```python\n# Mit DI: Mock injizieren\nmock_db = MockDatabase()\nservice = UserService(db=mock_db)  # Kein echter DB-Zugriff\n\n# Ohne DI: Unmöglich zu mocken\nservice = UserService()  # Erstellt intern echte DB\n```\n\n**Kurzformel:** \"Don't call us, we'll call you\" - Klassen fordern Abhängigkeiten an, erstellen sie nicht selbst."
}
← Vorheriger Zur Liste Nächster →