Modül 3 · Hooks and the SDK · ⏱ 12 dakika

Faydalı hook örnekleri

Useful hooks!

Türkçe dublaj (Microsoft Edge Neural TTS). İngilizce orijinali için Skilljar'daki ders'ine bak.

Claude Code hooks, özellikle daha büyük projelerde AI destekli geliştirmedeki yaygın zayıflıkları ele almaya yardımcı olabilir. Bu hooks, Claude kodunuzda değişiklik yaptığında otomatik olarak çalışır, anında geri bildirim sağlar ve yaygın sorunları önler.

TypeScript Type Checking Hook

En faydalı hook’lardan biri temel bir sorunu ele alır: Claude bir function signature’ını değiştirdiğinde, genellikle o function’ın projeniz boyunca çağrıldığı tüm yerleri güncellemez.

Örneğin, Claude’dan schema.ts içindeki bir function’a verbose parametresi eklemesini isterseniz, function tanımını başarıyla günceller ancak main.ts içindeki call site’ı atlar. Bu, Claude’un anında yakalayamadığı type hataları oluşturur.

Çözüm, her dosya düzenlemesinden sonra TypeScript compiler’ını çalıştıran bir post-tool-use hook’tur:

  • Type hatalarını kontrol etmek için tsc --noEmit çalıştırır
  • Bulunan hataları yakalar
  • Hataları anında Claude’a geri besler
  • Claude’u diğer dosyalardaki sorunları düzeltmeye yönlendirir

Bu hook, bir type checker çalıştırabildiğiniz herhangi bir typed dil için işe yarar. Untyped diller için, bunun yerine otomatik testler kullanarak benzer işlevsellik uygulayabilirsiniz.

Query Duplication Prevention Hook

Birçok database query’si olan daha büyük projelerde, Claude bazen mevcut kodu yeniden kullanmak yerine yinelenen işlevsellik oluşturur. Bu, Claude’a database operasyonlarını yalnızca bir bileşen olarak içeren karmaşık, çok adımlı görevler verdiğinizde özellikle sorunludur.

 

Her biri birçok SQL function içeren birden fazla query dosyası olan bir proje yapısını düşünün. Claude’dan “3 günden uzun süredir bekleyen siparişler hakkında uyarı veren bir Slack entegrasyonu oluştur” demesini istediğinizde, mevcut getPendingOrders() function’ını kullanmak yerine yeni bir query yazabilir.

Query duplication problemi

Query duplication hook bunu bir inceleme süreci uygulayarak ele alır:

Query duplication hook akışı

İşte nasıl çalışıyor:

  • Claude ./queries dizinindeki dosyaları değiştirdiğinde tetiklenir
  • Programatik olarak ayrı bir Claude Code instance’ı başlatır
  • İkinci instance’tan değişiklikleri incelemesini ve benzer mevcut query’leri kontrol etmesini ister
  • Duplicate bulunursa, orijinal Claude instance’ına geri bildirim sağlar
  • Claude’u duplicate’ı kaldırıp mevcut işlevselliği kullanmaya yönlendirir

Uygulama Hususları

Her iki hook da pre-tool-use veya post-tool-use hook sistemini kullanır. TypeScript hook nispeten hafiftir ve hızlı çalışır. Query duplication hook, her inceleme için ayrı bir Claude instance’ı başlattığı için daha fazla kaynak gerektirir.

Query hook için şu trade-off’ları göz önünde bulundurun:

  • Faydalar: Daha az tekrar içeren, daha temiz bir codebase
  • Maliyetler: Her query dizini düzenlemesi için ek süre ve API kullanımı
  • Tavsiye: Overhead’i en aza indirmek için yalnızca kritik dizinleri izleyin

Hooks, AI ile programatik olarak etkileşime geçmek için Claude’un Agent SDK’sını kullanır. Bu, bir Claude instance’ının diğerinin çalışmasını inceleyebileceği ve geri bildirim sağlayabileceği gelişmiş workflow’lar oluşturmanıza olanak tanır.

Bu Kavramları Genişletmek

Bu hooks, kendi projelerinize uygulayabileceğiniz daha geniş prensipleri gösterir:

  • Anında geri bildirim sağlamak için compiler/linter çıktısını kullanın
  • Ayrı AI instance’ları kullanarak code review süreçleri uygulayın
  • İzlemeyi tutarlılığın en önemli olduğu yüksek değerli dizinlere odaklayın
  • Otomasyon faydalarını performans maliyetlerine karşı dengeleyin

Anahtar, geliştirme workflow’unuzdaki belirli sıkıntı noktalarını belirlemek ve bu sorunları otomatik olarak ele alan hedeflenmiş hooks oluşturmaktır.