Beceri Kullanımı

Claude Code ile Yazılım Geliştirme

Dani Zysman

AI Curriculum Manager @ DataCamp

Refaktoring Nedir?

Excalidraw: Refaktoring kavramı - kod yapısı değişir ama davranış aynı kalır

Claude Code ile Yazılım Geliştirme

Birim Testleri Güvenli Refaktoring Sağlar

Güvenli refaktoring iş akışı: testleri çalıştır, refaktor becerisi, gözden geçir, tekrar test et, yeşilse commit et

Claude Code ile Yazılım Geliştirme

Şu Ana Kadarki Proje

music-analytics-api/
  app.py
  routes.py
  test_routes.py     # <- Generated by unit-tests skill
  models.py
  CLAUDE.md
  .claude/
    agents/
    skills/
      unit-tests/    # From previous video
        SKILL.md
      refactor/      # NEW: safe refactoring
        SKILL.md
Claude Code ile Yazılım Geliştirme

Çağırmanın İki Yolu

Beceri tetiklemenin iki yolu: eğik çizgi komutuyla manuel, Claude eşleştirdiğinde otomatik

Claude Code ile Yazılım Geliştirme

Becerilerle Kodu Refaktör Etme

>/unit-tests @routes.py
Eklenen birim testleri:

Temel Test Kalıpları:
- Gerçekçi HTTP testleri için Flask test istemcisi kullanır
- Harici bağımlılıkları taklit eder (music_store, analytics işlevleri)
- Hem mutlu yolları hem kenar durumlarını test eder
- Yanıt biçimleri ve yapısını doğrular
- Tüm testler uygun fikstürlerle izole
Test dosyası kullanıma hazır ve projenin mevcut pytest yapısıyla entegre.
Claude Code ile Yazılım Geliştirme

Becerilerle Kodu Refaktör Etme

> /refactor @routes.py
Refaktoring Tamamlandı
Yapılan değişiklikler:
- _prepare_albums_for_stats() çıkarıldı. 9 satırlık 
  liste üreteci kalktı, niyet netleşti
- _prepare_albums_for_average() çıkarıldı. Yinelenen 
  albümden-sözlüğe dönüşüm mantığı giderildi
Faydalar:
- Daha az tekrar
- Daha temiz route işlemcileri
- Veri hazırlığı merkezileşti

Tüm 21 test geçti: davranış tamamen korundu
Claude Code ile Yazılım Geliştirme

Beceriler Tutarlılık Sağlar

Beceri olmadan: tutarsız ve hataya açık. Beceriyle: tutarlı ve güvenilir

Claude Code ile Yazılım Geliştirme

Hadi pratik yapalım!

Claude Code ile Yazılım Geliştirme

Preparing Video For Download...