# Code Review, Refactor, and Optimization

> Source: https://sukruyusufkaya.com/en/learn/claude-ustaligi/kod-inceleme-refactor
> Updated: 2026-05-11T14:23:26.544Z
> Category: Claude Ustalığı
> Module: 4. Coding with Claude
**TLDR:** Use Claude as a code reviewer: pattern detection, refactor suggestions, performance tuning, and security review.

# Claude — Kıdemli Reviewer

Claude'u sadece kod **yazmak** için değil **incelemek** için kullan. İyi review prompt'u şu üç katmandan oluşur:

1. **Bağlam:** Bu PR ne yapıyor? Hangi sistemde?
2. **İlke:** Hangi standartlara göre değerlendiriyor? (style guide, perf bütçe, güvenlik)
3. **Çıktı:** Yapılandırılmış review (block / line yorumlu).

```text
<role>Sen kıdemli bir Python + TypeScript reviewer'sın.</role>

<project_context>
Backend: FastAPI + Postgres
Frontend: Next.js 15 + TS strict
Testing: pytest, vitest
Style: ruff + black + eslint + prettier
Performans bütçesi: API p99 < 300ms
</project_context>

<review_rubric>
1. Doğruluk
2. Edge case kapsamı
3. Test coverage
4. Performans
5. Güvenlik (özellikle injection, authz)
6. Okunabilirlik
7. Convention uyumu
</review_rubric>

<output_format>
{
  "summary": "...",
  "blocking_issues": [{"file":"...","line":...,"severity":"high|med|low","comment":"..."}],
  "non_blocking_suggestions": [...],
  "praise": [...]
}
</output_format>

<diff>
{{git_diff}}
</diff>
```

**Önce:**
```python
# Önce — issues:
def get_user(uid):
    cur = db.cursor()
    cur.execute("SELECT * FROM users WHERE id = '" + uid + "'")
    return cur.fetchone()
```

**Sonra:**
```python
# Sonra — Claude'un önerdiği refactor:
def get_user(uid: str) -> dict | None:
    """Fetch a user by id. Returns None if not found."""
    with db.cursor() as cur:
        cur.execute("SELECT * FROM users WHERE id = %s", (uid,))
        row = cur.fetchone()
    return dict(row) if row else None
```

### Performans tuning prompt'u

```text
Kod aşağıdadır. Lütfen:
1. Big-O karmaşıklığını çıkar.
2. Sıcak yolda (hot path) gereksiz kopyalama / allocation tespit et.
3. Bir veya iki seçenek öner; her biri için ölçülebilir tahminle.
4. Güvenli olduğundan emin değilsen "varsayım" listesi yaz.
```

### Güvenlik review prompt'u

```text
Aşağıdaki kodu OWASP Top 10 lensinden incele. Özellikle:
- Injection (SQL, NoSQL, OS command, LDAP)
- Authn / authz
- IDOR
- Secrets
- Input validation
- Logging hassas veri sızdırıyor mu

Her bulguyu severity ile etiketle ve düzeltme adımı öner.
```

### Convention enforcement

Mevcut bir kod dosyasını "stil çapası" olarak prompt'a ekle, "yeni kod aynı convention'a uysun" de. Convention belgesi varsa onu da ekle.

## Hot path mikrobenchmark
Claude'un önerdiği iki refactor seçeneğini karşılaştırmak için lokal mikrobenchmark.

```python
import timeit

def opt1(data):
    return [x * 2 for x in data if x > 0]

def opt2(data):
    out = []
    for x in data:
        if x > 0:
            out.append(x * 2)
    return out

veri = list(range(1, 100_000))
print("opt1:", timeit.timeit(lambda: opt1(veri), number=200))
print("opt2:", timeit.timeit(lambda: opt2(veri), number=200))
```

**Boşluk doldurma egzersizi (text):**
```text
İyi bir review prompt'u üç katmandan oluşur: _____ , ilke ve çıktı formatı. Güvenlik review'ında _____ Top 10 lensini öner. Üretimde review çıktısını CI'da _____ olarak parse et.
```

> ✋ Kontrol noktası: `q-402-mc1`