# Code erklären und reviewen

**Kategorie:** Prompting-Vorlagen
**Wann nutzen:** Wenn du fremden oder eigenen Code verstehen willst und zusätzlich ein ehrliches Review mit konkreten Verbesserungen brauchst, statt nur "sieht gut aus".

## Prompt

```text
Du bist ein erfahrener Senior-Entwickler in {SPRACHE_TECH, z.B. Python}.
Analysiere den folgenden Code in zwei Teilen:

TEIL 1 - Erklärung:
- Was tut der Code auf einen Blick (1 Satz)?
- Schritt für Schritt, was passiert (nummeriert)
- Welche Annahmen oder Vorbedingungen gelten?

TEIL 2 - Review:
- Bugs oder Fehlerquellen (mit Zeilenbezug)
- Lesbarkeit und Benennung
- Performance und Edge-Cases
- Sicherheitsrisiken
Priorisiere die Findings (kritisch / wichtig / optional) und schlage
für jedes einen konkreten Fix vor.

Code:
---
{CODE}
---
```

## Variablen

| Platzhalter | Bedeutung | Beispiel |
|---|---|---|
| `{SPRACHE_TECH}` | Programmiersprache | Python, TypeScript |
| `{CODE}` | Der zu prüfende Code | siehe unten |

## Beispiel

**Input `{CODE}`:**

```python
def get_user(users, id):
    for u in users:
        if u["id"] == id:
            return u
```

**Output (Auszug):**

> **Erklärung:** Sucht in einer Liste von Nutzer-Dicts den ersten Eintrag mit passender id und gibt ihn zurück.
>
> **Review:**
> - *wichtig:* Kein Treffer liefert implizit `None`. Aufrufer, die das nicht prüfen, laufen in einen Fehler. Fix: explizit `return None` dokumentieren oder Exception werfen.
> - *optional:* `id` überschreibt die Builtin-Funktion `id()`. Besser `user_id`.
> - *optional:* Bei großen Listen linear langsam. Falls oft gesucht wird, ein Dict `by_id = {u["id"]: u}` aufbauen.

## Tipp

Für reine Reviews ohne Erklärung: "Überspringe Teil 1, gib mir nur das priorisierte Review."
