Go 1.26'da Fonksiyon Kullanımdan Kaldırmak Artık Otomatik
Go 1.26 ile kütüphane yazarları için yeni bir sorun çözüldü: eski bir API'yi kullanımdan kaldırdığında, bütün çağrı noktalarını elle güncellemek gerekiyordu. Yıllar boyunca Deprecated: uyarısı linterları rahatsız eder ama hiç kimse değişikliği yapmaz. Artık bu değişti.
Go 1.26'nın yeniden yazılmış go fix aracı, //go:fix inline yönergesini destekliyor. Bunu eski fonksiyonun başına koyup, fonksiyonun içini satır içi (inline) olarak açıp yerleştiren bir transformasyon tanımlıyorsun. Geliştirici go fix komutunu çalıştırdığında, tüm çağrı noktaları otomatik olarak güncelleniyor.
Pratik örnek: ioutil.ReadFile Go 1.16'dan beri os.ReadFile'ın tek satırlık sarmalayıcısı. Eski koddaki ioutil.ReadFile(path) çağrılarını os.ReadFile(path) ile değiştirmek için, artık el ile dokunmana gerek yok. Kütüphane yazarı fonksiyona uygun bir //go:fix inline yorumu ekler, kullanıcı go fix -fix=modulename komutunu çalıştırır ve bitmiş olur.
Bu özellik özellikle büyük kod tabanlarında ve açık kaynak projelerde işe yarar. Yüzlerce çağrı noktasını elle değiştirmek yerine, bir satır yorum ve bir komut yeterli. Geliştirici hala kontrol ediyor, go fix çıktısını inceleyip onaylayabiliyor, ama tekrarlayan iş otomatik hale geliyor.
Eğer Go kütüphanesi bakıyorsan ya da API tasarımı yapıyorsan, bu özellik deprecation sürecini çok daha uygulanabilir kılıyor. Eski API'ları gerçekten kullanımdan kaldırabilirsin, çünkü artık geçiş maliyeti düşük.
0 yorum