Kod Review'larını Kendi Dilinde Dikte Et
İllüstrasyon

Kod Review'larını Kendi Dilinde Dikte Et

Kod İngilizce. Review yorumların olmak zorunda değil. Review geri bildirimini 25 dilden birinde cihazda dikte etmek ve dili sabitlemenin önemi.

Teodor Deleanu3 Eylül 20266 dk okuma

Çoğu geliştirici aracının içine sessizce yerleşmiş bir varsayım var: kod İngilizce, o hâlde geliştirici de İngilizce konuşuyor olmalı. Anahtar kelimeler İngilizce. Kütüphane adları İngilizce. Hata mesajları İngilizce. Ve akıl yürütme şöyle devam ediyor: geliştiriciler için dikte yalnızca İngilizce olabilir, kimse buna itiraz etmez.

Kod review bu varsayımı daha ilk anda kırıyor. Bir review yorumu kod değildir. Bir insana yazılmış bir cümledir ve pek çok ekipte o insan seninle aynı ana dili konuşur. Bir Rust servisini review eden Romen bir ekip, İngilizce identifier'lar hakkında Romence yorum yazar. Polonyalı bir ekip aynısını Lehçe, Alman bir ekip Almanca yapar. Kod İngilizce kalır; kod hakkındaki konuşma kalmaz.

Dikte, review yorumları için alışılmadık ölçüde iyidir; çünkü review bir okuma faaliyetidir ve yazmak okumayı böler. Ama yalnızca yorumun gerçekten yazıldığı dilde çalışıyorsa iyidir. Bu yazı bunu işler hâle getirmekle ilgili: Keebye cihazda hangi dilleri kapsıyor, dil sabitlemesi nasıl davranıyor ve sınırlar nerede. Bunun neden önemli olduğuna dair savı istiyorsan geliştiriciler için dikte yalnızca İngilizce olmamalı onu kuruyor; bu yazı pratik devamı.

Review yorumları neden ideal dikte hedefi

Bir review yorumunun, onu neredeyse her geliştirici metninden daha çok sese uygun kılan üç özelliği var.

Kısadır. Yorumların çoğu bir ila üç cümledir. Bu bir nefes, bir kısayol tuşu basılı tutuşu, bir konuşma demek.

Düzyazıdır. Katı biçimli bir commit mesajından ya da tam söz dizimi isteyen bir yapılandırma dosyasından farklı olarak, review yorumu sorunu sesli anlatma biçiminin ta kendisidir. "Socket hiç cevap vermezse bu sonsuza kadar tekrar deniyor; bir üst sınır koy." Söylenen ve yazılan hâli neredeyse aynıdır.

Gözlerin meşgulken olur. Bir diff okuyorsun. Yazmak için durduğun anda okuduğun yeri kaybediyorsun. Dikte, okumayı sürdürmeni ve yorumu zaten tıkladığın kutuya söylemeni sağlıyor.

Şimdi bir de dil boyutunu ekle. Ekibin Lehçe review yapıyorsa, yalnızca İngilizce çalışan bir dikte aracı seni seçime zorluyor: İngilizce review yapmak (doğal değil, üstelik meslektaşların daha yavaş okuyabilir) ya da yazmak (faydayı kaybetmek). İkisi de istediğin şey değil.

Keebye gerçekte neyi destekliyor

Burada cihazda çalışan iki motor önemli ve onlar hakkında net olmakta fayda var.

Varsayılan motor İngilizceye göre ayarlı. Hızlı, çoğu kişinin kullandığı motor bu ve Lehçe bir review yorumu için isteyeceğin motor bu değil. İngilizce dışı bir konuşmaya doğrultulduğunda, sesçe makul görünen ama söylediğin şey olmayan bir İngilizce üretir.

İkinci motor Canary, tam olarak 25 dili kapsıyor: Bulgarca, Hırvatça, Çekçe, Danca, Felemenkçe, İngilizce, Estonca, Fince, Fransızca, Almanca, Yunanca, Macarca, İtalyanca, Letonca, Litvanca, Maltaca, Lehçe, Portekizce, Romence, Rusça, Slovakça, Slovence, İspanyolca, İsveççe ve Ukraynaca. İsteğe bağlı, bir kez indiriliyor ve sonrasında Keebye'deki her şey gibi çevrimdışı çalışıyor. Yüz dil değil; yirmi beş, listelenmiş hâlde — ve seninki listede yoksa bu yazı sana henüz yardımcı olamaz.

Motor olarak Apple'ın yerleşik konuşma tanımasını kullanma seçeneği de var; o da Mac'inde kendi dil kapsamını getiriyor. Bu, farklı özellikleri olan ayrı bir yol; yazının geri kalanı Canary hakkında.

Dili sabitle; tahmin etmesine izin verme

İngilizce dışı review için tek en önemli ayar dil sabitlemesi.

Otomatik algılama doğru varsayılan gibi duruyor ama geliştiriciler için yanlış olanı. Review yorumları İngilizce identifier'larla yoğundur: fonksiyon adları, paket adları, "null", "async" ve "callback" kelimeleri. Yüzde sekseni Romence, yüzde yirmisi İngilizce token olan bir yorum, dil algılayıcısına en kötü başa çıktığı karışık sinyali verir. Cümlenin ortasında dil değiştirir ya da hepsinin İngilizce olduğuna karar verir ve kendinden emin biçimde yanlış bir transkript alırsın. Dikte dilini sabitle bu başarısızlığı ayrıntısıyla anlatıyor.

Canary ile Keebye dili açıkça belirlemene izin veriyor. Romence'yi sabitle, model Romence çözümlesin; cümlenin içindeki İngilizce identifier'lar dil değiştirdiğinin kanıtı olarak değil, ödünç kelimeler olarak ele alınır. Alışılmadık bir identifier'ın tanınması yine kusurlu olabilir, ama dilin kendisi yazı tura olmaktan çıkar.

Bilmeye değer bir davranış ayrıntısı: sabitlenen dil bir sonraki konuşma için okunur. Sabitlemeyi değiştirdiğinde, birazdan yapacağın dikte onu kullanır; tuşu çoktan bıraktığın dikte yeniden yazıya dökülmez. Pratikte bu şu demek: önce değiştir, sonra konuş. Gün içinde iki dilde review yapıyorsan geçiş ucuz. Menü çubuğundaki tepsi hızlı geçiş için 11 dillik kısa bir liste sunuyor, Ayarlar ise 25'inin tamamını.

Dikte edilen bir review oturumu

Romence review yapan bir ekipte bir oturum şöyle görünüyor.

Pull request'i açıyorsun. Tepsi dünden kalma Romence sabitlemesini zaten gösteriyor, yapacak bir şey yok. İlk dosyayı okuyorsun. Üçüncü hunk, üst sınırı olmayan bir yeniden deneme döngüsü. Yorum kutusuna tıklıyor, sağ Command'a basılı tutuyor, yorumu Romence söylüyor, bırakıyorsun. Metin yerine oturuyor; "ıı" ve bir yanlış başlangıç kural tabanlı temizlemeyle gitmiş, reconnectSocket identifier'ı ise bir hafta önce özel sözlüğe eklediğin için sapasağlam duruyor.

Sonraki dosya. Bırakmak istediğin yorum düzyazı değil, bir kod önerisi. Onu yazıyorsun; bir diff'i dikte etmek her dilde kötü bir deneyim.

Daha sonra başka bir ekipten bir katkıcı konuya dahil oluyor ve İngilizce yazıyor. Sen de İngilizce cevap vermek istiyorsun. Tepsiye tıklıyor, kısa listeden İngilizce'yi seçiyorsun ve bir sonraki konuşma İngilizce çözümleniyor. Cevaplıyor, sonra geri dönüyorsun.

Bunların hiçbiri bir pencere gerektirmiyor. Keebye menü çubuğunda duruyor; kısayol tuşu odakta hangi uygulama varsa orada çalışıyor — review'un açık olduğu bir tarayıcı sekmesi, bir masaüstü Git istemcisi ya da komut satırı review aracı çalıştıran bir terminal olsun.

Dürüst sınırlar

Yirmi beş dil, hepsi değil. Türkçe, Japonca, Arapça ya da Canary listesi dışındaki herhangi bir dilde review yapıyorsan, ikinci motor bunu kapsamıyor. Apple'ın yerleşik motoru sistemindeki dil desteğine bağlı olarak kapsayabilir, ama o farklı davranışları olan farklı bir motor.

Tepsideki kısa liste on bir. İngilizce, Romence, Fransızca, Almanca, İspanyolca, İtalyanca, Portekizce, Felemenkçe, Lehçe, Rusça ve Ukraynaca iki tık uzakta. Diğer on dördü Ayarlar'da. Günlük çiftin diyelim ki Çekçe ve Fince'yi içeriyorsa, bir tarafı Ayarlar'dan geçiyor.

Identifier'lar yine identifier. Herhangi bir dildeki konuşma modeli snake_case_names ile zorlanır. Sözlük tekrar edenlerde yardımcı olur; gerisini elle düzeltirsin. Yorumu göndermeden önce oku.

Canlı transkripsiyon yok. Canary tuşu bıraktığında, tek parça hâlinde yazıya döküyor. Kelimeleri söylerken görmeyeceksin. Bir ila üç cümlelik bir review yorumu için bu neredeyse fark edilmiyor.

Cila isteğe bağlı ve varsayılan olarak birebir. Cihazdaki yerel LLM cilasını açarsan cümle yapısını toparlıyor ve bir sadakat koruması, çıktı ciddi token kaybı, şişme ya da tekrar gösterdiğinde ham transkripte geri dönüyor. O koruma bir sezgisel yöntem; anlamının hayatta kaldığını denetlemiyor. Ters çevrilmiş bir olumsuzluğun hükmü değiştirdiği review yorumlarında çoğu kişi cilayı kapalı tutup işi kural tabanlı temizlemeye bırakıyor.

Bu nereye oturuyor

En çok önemsediğin özellik dil sabitlemesiyse, Keebye ve Wispr Flow karşılaştırması ikisini konuşmanın nerede çalıştığı ve dilin nasıl ele alındığı üzerinden — Wispr Flow'un daha iyi oturduğu yerler dahil — karşılaştırıyor. Ellerin diff'in üzerindeyken dikte etmenin daha geniş hâli için geliştirici rehberi günlük kullanımı, Mac rehberi ise kurulumu anlatıyor.

Geliştiricilerin yalnızca İngilizce konuştuğu varsayımı hiçbir zaman doğru değildi. Sadece araçlar için kullanışlıydı. Kendi dilinde, sesle ve makineni hiç terk etmeyen bir konuşma tanımayla review yapmak niş bir talep değil. Yazılım yazan insanların büyük bir bölümünün, araçlar izin verse yapacağı şey bu.

Düşündüğün dilde review yap

Ücretsiz denemeni başlat, dilini sabitle ve bir review yorumunu bir meslektaşına söyler gibi dikte et.

Start free trial

Early access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.

Okumaya devam et